Сценарий 03: Генерация документации¶
Технический писатель создаёт документацию по API на основе исходного кода.
Быстрый старт¶
# Выберите сценарий документации
/select 03
Генерация документации по функции¶
> Создать документацию для heap_insert
╭─────────────── Документация по API ─────────────────────────╮
│ │
│ ## heap_insert │
│ │
│ Вставляет кортеж в отношение кучи. │
│ │
│ ### Сигнатура │
│ │
│ ```c │
│ void heap_insert(Relation relation, │
│ HeapTuple tup, │
│ CommandId cid, │
│ int options, │
│ BulkInsertState bistate) │
│ ``` │
│ │
│ ### Параметры │
│ │
│ | Параметр | Тип | Описание │
│ |------------|-------------|----------------------------│
│ | relation | Relation | Целевое отношение кучи │
│ | tup | HeapTuple | Кортеж для вставки │
│ | cid | CommandId | Идентификатор команды для MVCC │
│ │
│ ### Пример │
│ │
│ ```c │
│ HeapTuple tuple = heap_form_tuple(desc, values, nulls); │
│ heap_insert(rel, tuple, GetCurrentCommandId(true), │
│ 0, NULL); │
│ ``` │
│ │
│ ### Смотрите также │
│ - heap_update() - Обновление существующего кортежа │
│ - heap_delete() - Удаление кортежа │
│ │
╰───────────────────────────────────────────────────────────╯
Документация по архитектуре модуля¶
> Объяснить архитектуру модуля исполнителя
╭─────────────── Архитектура ──────────────────────────────╮
│ │
│ Архитектура модуля исполнителя │
│ ═══════════════════════════ │
│ │
│ Назначение: Выполнение планов запросов, созданных планировщиком │
│ │
│ Каталог: src/backend/executor/ │
│ │
│ Основные компоненты: │
│ │
│ 1. execMain.c - Основные точки входа исполнителя │
│ - ExecutorStart(): Инициализация состояния выполнения │
│ - ExecutorRun(): Основной цикл выполнения │
│ - ExecutorEnd(): Очистка и завершение │
│ │
│ 2. execProcnode.c - Диспетчеризация узлов │
│ - ExecProcNode(): Перенаправление на конкретные типы узлов │
│ │
│ Поток данных: │
│ Дерево плана → Дерево состояния плана → Вывод кортежей │
│ │
╰───────────────────────────────────────────────────────────╯
Списки справочных функций¶
> Перечислить все публичные функции в модуле исполнителя
╭─────────────── Справочник функций ────────────────────────╮
│ │
│ Публичные функции исполнителя │
│ │
│ Точки входа: │
│ ExecutorStart() Инициализация выполнения │
│ ExecutorRun() Выполнение плана │
│ ExecutorFinish() Последующая обработка │
│ ExecutorEnd() Очистка │
│ │
│ Операции с узлами: │
│ ExecProcNode() Выполнение одного узла │
│ ExecInitNode() Инициализация узла │
│ ExecEndNode() Очистка узла │
│ │
│ Всего: 156 публичных функций │
│ │
╰───────────────────────────────────────────────────────────╯
Примеры запросов¶
- “Создать документацию для [function_name]”
- “Объяснить архитектуру [module_name]”
- “Описать функции интерфейса SPI”
- “Перечислить все публичные функции в [module]”
- “Каковы основные компоненты [subsystem]?”
Связанные сценарии¶
- Архитектура — Более глубокий анализ архитектуры
- Ознакомление — Исследование кодовой базы