Сценарий 03: Генерация документации

Сценарий 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]?”

Связанные сценарии