콘텐츠로 이동

(KO) PostgreSQL 코드 분석 커버리지 맵

목차

이 문서는 knowledge/code-analysis/postgres/커버리지 맵이다. 단 하나의 질문에 답하는 것이 목적이다: 무엇이 계획되어 있고, 무엇이 작성되었으며, 무엇이 의도적으로 범위 밖인가?

이 문서는 cubrid-coverage.md의 PostgreSQL 대응물이지만, 성격이 다르다. CUBRID 트리는 대부분의 문서가 이미 존재한 뒤에 추적이 시작되어 “covered / open” 형태로 기록되었다. PostgreSQL 트리는 고정된 저작 백로그를 기반으로 구축 중이므로, 이 맵은 그 백로그를 “planned / in progress / done” 형태로 기록한다. 아래의 모든 모듈 슬러그는 분석 계획의 모듈 카탈로그에서 가져온 것이며, 이 맵에서 임의로 추가한 슬러그는 없다.

이 문서가 아닌 것을 명확히 한다:

  • 요약이 포함된 문서별 카탈로그 — 그것은 각 문서의 summary: 프론트매터에서 자동 생성되는 README.md다.
  • 시스템의 아키텍처 맵 — 그것은 공유 메모리 머신 테제와 함께 모든 세부 문서를 forward-reference하는 7축 라우터인 postgres-architecture-overview.md다.
  • 모든 PostgreSQL 소스 파일의 완전한 열거. 이 맵의 커버리지 단위는 모듈 수준이다. 계획된 postgres-<module>.md 파일이 행 하나에 대응한다. 함수·구조체 단위의 공백은 추적하지 않는다. 그 역할은 각 문서의 position-hint 테이블이 담당한다.

다음 저작 배치를 계획할 때, 또는 “X가 이미 계획/작성되었는가, 범위 밖인가?”에 대한 단일 화면 답을 원할 때 이 문서를 활용한다.

트리 전체는 /data/hgryoo/references/postgres 경로에 클론된 REL_18_STABLE, 커밋 273fe94 (REL_18_4-39-g273fe94852b, PostgreSQL 18.x) 소스를 기준으로 작성된다. 버전 핀은 내구성을 중시한 선택이다. 릴리스된 안정 브랜치를 대상으로 하므로, 문서별 “Source verification (as of )” 기록이 베타 업데이트로 부패하지 않는다.

PG18 기능은 범위 내다. storage/aio/의 async I/O (비동기 I/O), WAL 요약, 증분 백업, 공유 메모리 기반 누적 통계 서브시스템(PG15 도입)이 포함된다. PG19 전용 항목은 범위 밖이며 사실로 기술해서는 안 된다(비목표 참조). references: 프론트매터 경로는 해당 트리를 기준으로 전체 src/... 접두사를 붙여 기록한다(예: src/backend/access/transam/xlog.c).

트리에는 네 가지 문서 타입이 존재한다. 처음 셋은 CUBRID 트리와 동일하고, 넷째는 PostgreSQL 트리에 새로 추가된 타입이다.

타입형태프론트매터 마커
Module doc7절 템플릿 (Theoretical Background → Common DBMS Design → PostgreSQL’s Approach → Source Walkthrough → Source verification → Beyond PostgreSQL → Sources)subcategory: <subcat>
Overview doc라우터 / 축(axis) 형태 (7절 구조 아님)subcategory: overview
Detail doc챕터별 심층 탐구 동반 문서doc_type: detail
Evolution doc단일 서브시스템의 버전별 진화 기록doc_type: evolution
상태의미
done작성 완료, EN 리뷰어 루프 종료 (KO 미러는 뒤처질 수 있음)
in progress현재 저작 중
planned백로그에 등록됨, 아직 시작하지 않음

캠페인이 완료되었다. 117개 모듈 문서, 15개 개요/커버리지/상태 문서(이 맵 포함), 7개 진화 문서 모두 done 상태다 — EN 저작, KO 미러, 메타 프론트매터 모두 완비. PG 관련 연구 논문 13편이 knowledge/research/dbms-papers/에 수록되었다.

캠페인 결과: 모듈 문서 117개 + 개요/커버리지/상태 문서 15개 (아키텍처 개요 1개 + 섹션 개요 라우터 13개 + 이 커버리지 맵 + 번역 상태 문서 1개) + 진화 문서 7개 = 총 139개, 모두 REL_18_STABLE(커밋 273fe94) 기준 EN+KO+메타 완성. CUBRID 기준(약 88개 모듈 문서)보다 의도적으로 더 넓다. PostgreSQL은 플러그형 접근 방법, 진정한 확장성 인터페이스, 논리 복제, 누적 통계 서브시스템 등 일급 서브시스템이 더 많기 때문이다. KO 미러는 knowledge/ko/code-analysis/postgres/ 아래에 위치한다. PG 관련 연구 논문 13편이 knowledge/research/dbms-papers/에 수록되었다(design-of-postgres, implementation-of-postgres, postgres-storage-system, postgres-data-model, postgres-next-generation, ssi-ports-grittner, ssi-cahill, making-si-serializable, berenson-isolation, gist, lehman-yao, seltzer-yigit-hash, fong-optimizer).

“P” 열은 계획의 모듈 카탈로그에서 가져온 상호 참조 우선순위다(1 = 먼저 작성). “Source anchor” 열은 해당 모듈의 정식 소스 루트를 이름으로 명시한다(라인 번호가 아닌 심볼 기준).

문서 (슬러그)Source anchorP상태
postgres-architecture-overview7축 스파인; postmaster/, storage/ipc/, access/transam/, miscadmin.h1done
postgres-coverage— (이 맵)2done
postgres-overview-storage-enginestorage-engine 라우터2done
postgres-overview-txn-recoverytxn-recovery 라우터2done
postgres-overview-query-processingquery-processing 라우터2done
postgres-overview-server-architectureserver-architecture 라우터2done
postgres-overview-monitoring-statsmonitoring-stats 라우터3done
postgres-overview-system-catalogsystem-catalog 라우터3done
postgres-overview-ddl-schemaddl-schema 라우터3done
postgres-overview-replication-hareplication-ha 라우터3done
postgres-overview-client-protocolclient-protocol 라우터3done
postgres-overview-extensibilityextensibility 라우터3done
postgres-overview-base-infrabase-infra 라우터3done
postgres-overview-i18n-texti18n-text 라우터3done
postgres-overview-utilitiesutilities 라우터3done

소스 루트: access/{heap,nbtree,gin,gist,spgist,brin,hash,index,table,common,tablesample}, storage/{buffer,smgr,page,freespace,file,large_object,aio}.

문서 (슬러그)Source anchorP상태
postgres-page-layoutstorage/page/{bufpage,checksum}.c, include/storage/{bufpage,itemptr}.h1done
postgres-buffer-managerstorage/buffer/{bufmgr,freelist,buf_init,localbuf}.c, README1done
postgres-smgr-mdstorage/smgr/{smgr,md}.c2done
postgres-aiostorage/aio/* (PG18 async I/O)2done
postgres-table-amaccess/table/*, include/access/tableam.h1done
postgres-heap-amaccess/heap/{heapam,heapam_handler,hio,pruneheap}.c, README.HOT1done
postgres-toastaccess/common/{toast_internals,detoast,toast_compression}.c, access/heap/heaptoast.c2done
postgres-visibility-mapaccess/heap/visibilitymap.c2done
postgres-free-space-mapstorage/freespace/*3done
postgres-nbtreeaccess/nbtree/*, README1done
postgres-ginaccess/gin/*, README3done
postgres-gistaccess/gist/*, README3done
postgres-spgistaccess/spgist/*, README4done
postgres-brinaccess/brin/*, README4done
postgres-hash-indexaccess/hash/*, README4done
postgres-index-amaccess/index/*, include/access/amapi.h2done
postgres-table-samplingaccess/tablesample/*, include/access/tsmapi.h4done
postgres-data-checksumsstorage/page/checksum.c, common/checksum_helper.c, src/bin/pg_checksums3done
postgres-large-objectsstorage/large_object/*, libpq/be-fsstubs.c4done
postgres-sequencesaccess/sequence/*, commands/sequence.c3done

소스 루트: access/transam/*, storage/ipc/procarray.c, commands/vacuum*, utils/time/snapmgr.c.

문서 (슬러그)Source anchorP상태
postgres-mvcc-snapshotsutils/time/snapmgr.c, access/heap/heapam_visibility.c, storage/ipc/procarray.c1done
postgres-procarraystorage/ipc/procarray.c (procarray 내부 소유; mvcc-snapshots가 참조)1done
postgres-xactaccess/transam/xact.c, README1done
postgres-xlog-walaccess/transam/{xlog,xloginsert,xlogreader}.c, README1done
postgres-wal-records-rmgraccess/transam/{rmgr,xlogutils,generic_xlog}.c, access/rmgrdesc/*3done
postgres-slruaccess/transam/slru.c (기반 레이어)2done
postgres-clog-commit-tsaccess/transam/{clog,subtrans,commit_ts}.c2done
postgres-multixactaccess/transam/multixact.c3done
postgres-two-phase-commitaccess/transam/{twophase,twophase_rmgr}.c2done
postgres-recovery-redoaccess/transam/{xlogrecovery,xlogprefetcher,timeline}.c1done
postgres-checkpointaccess/transam/xlog.c (ckpt 경로), postmaster/checkpointer.c2done
postgres-vacuumcommands/{vacuum,vacuumparallel}.c, access/heap/vacuumlazy.c1done
postgres-autovacuumpostmaster/autovacuum.c2done
postgres-xid-wraparound-freezeaccess/heap/heapam.c (freeze), access/transam/varsup.c2done

소스 루트: parser, rewrite, optimizer, executor, nodes, statistics, jit.

문서 (슬러그)Source anchorP상태
postgres-parserparser/{gram.y,scan.l,parse_*}.c1done
postgres-analyze-transformparser/analyze.c, parser/parse_*2done
postgres-rewriterrewrite/{rewriteHandler,rewriteDefine}.c2done
postgres-planner-overviewoptimizer/plan/planner.c, README1done
postgres-path-generationoptimizer/path/*1done
postgres-join-orderingoptimizer/path/{joinpath,joinrels}.c, optimizer/geqo/*2done
postgres-cost-modeloptimizer/path/costsize.c, utils/adt/selfuncs.c2done
postgres-plan-creationoptimizer/plan/{createplan,setrefs,subselect}.c2done
postgres-prep-rewritesoptimizer/prep/*3done
postgres-extended-statisticsstatistics/*, commands/analyze.c2done
postgres-executorexecutor/{execMain,execProcnode,execTuples}.c1done
postgres-expression-evalexecutor/{execExpr,execExprInterp}.c2done
postgres-scan-nodesexecutor/{nodeSeqscan,nodeIndexscan,nodeIndexonlyscan,nodeBitmapHeapscan,nodeTidscan,nodeTidrangescan}.c2done
postgres-join-nodesexecutor/{nodeNestloop,nodeHashjoin,nodeMergejoin,nodeHash}.c2done
postgres-agg-sort-nodesexecutor/{nodeAgg,nodeSort,nodeGroup,nodeWindowAgg,nodeIncrementalSort}.c2done
postgres-parallel-queryexecutor/{execParallel,nodeGather,nodeGatherMerge}.c, access/transam/README.parallel2done
postgres-portals-preparedtcop/pquery.c, commands/{prepare,portalcmds}.c, utils/cache/plancache.c2done
postgres-jitjit/*, jit/llvm/*4done
postgres-tuplesortutils/sort/{tuplesort,tuplestore}.c3done
postgres-node-treesnodes/*, include/nodes/*2done

소스 루트: postmaster, tcop, storage/{lmgr,ipc,sync}, utils/init.

문서 (슬러그)Source anchorP상태
postgres-postmasterpostmaster/{postmaster,launch_backend,pmchild}.c1done
postgres-backend-lifecycletcop/{postgres,utility}.c, utils/init/{postinit,miscinit}.c1done
postgres-shared-memory-ipcstorage/ipc/{shmem,ipci,procsignal,shm_mq,dsm,dsa}.c1done
postgres-lock-managerstorage/lmgr/{lock,proc,deadlock,lmgr}.c, README1done
postgres-lwlock-spinlockstorage/lmgr/{lwlock,s_lock}.c, include/storage/spin.h, port/atomics1done
postgres-ssi-predicate-lockingstorage/lmgr/predicate.c, include/storage/predicate_internals.h, README-SSI2done
postgres-latch-signalsstorage/ipc/{latch,waiteventset}.c, postmaster/interrupt.c2done
postgres-background-workerspostmaster/bgworker.c, storage/ipc/{dsm,dsa}.c3done
postgres-aux-processespostmaster/{bgwriter,walwriter,checkpointer,startup,syslogger}.c2done

소스 루트: utils/activity/*.

문서 (슬러그)Source anchorP상태
postgres-cumulative-statsutils/activity/pgstat*.c (공유 메모리 통계, PG15 재설계)2done
postgres-wait-events-progressutils/activity/{wait_event,backend_status,backend_progress}.c, wait_event_names.txt 코드 생성3done

소스 루트: catalog, utils/cache.

문서 (슬러그)Source anchorP상태
postgres-system-catalogscatalog/{catalog,heap,pg_*}.c, include/catalog/*1done
postgres-relcacheutils/cache/relcache.c1done
postgres-catcache-syscacheutils/cache/{catcache,syscache,lsyscache}.c1done
postgres-cache-invalidationutils/cache/inval.c, storage/ipc/sinvaladt.c2done
postgres-dependency-trackingcatalog/{dependency,objectaddress}.c2done
postgres-namespace-search-pathcatalog/namespace.c3done

소스 루트: commands, partitioning, rewrite/rowsecurity.c.

문서 (슬러그)Source anchorP상태
postgres-ddl-executiontcop/utility.c, commands/{tablecmds,define}.c1done
postgres-alter-tablecommands/tablecmds.c2done
postgres-index-creationcommands/indexcmds.c, catalog/index.c2done
postgres-constraintscommands/{typecmds,constraint}.c, catalog/pg_constraint.c3done
postgres-triggerscommands/trigger.c2done
postgres-event-triggerscommands/event_trigger.c4done
postgres-partitioningpartitioning/*, catalog/partition.c, executor/execPartition.c2done
postgres-row-level-securityrewrite/rowsecurity.c, commands/policy.c3done
postgres-copycommands/{copy,copyfrom,copyto,copyfromparse}.c3done
postgres-matviewcommands/matview.c4done

소스 루트: replication/*, backup, postmaster/{walsummarizer,pgarch}.

문서 (슬러그)Source anchorP상태
postgres-wal-sender-receiverreplication/{walsender,walreceiver,walreceiverfuncs}.c1done
postgres-replication-slotsreplication/{slot,slotfuncs}.c2done
postgres-logical-decodingreplication/logical/{decode,reorderbuffer,snapbuild,logical}.c2done
postgres-logical-replication-applyreplication/logical/{worker,launcher,tablesync}.c3done
postgres-pgoutputreplication/pgoutput/*4done
postgres-synchronous-replicationreplication/syncrep.c3done
postgres-archiving-walsummarypostmaster/{pgarch,walsummarizer}.c, access/transam/xlogarchive.c3done
postgres-backup-basebackupbackup/*2done
postgres-incremental-backupbackup/* (summary consumer), src/bin/pg_combinebackup3done

소스 루트: libpq, tcop/postgres.c. (백엔드 측 libpq만 해당 — 비목표 참조.)

문서 (슬러그)Source anchorP상태
postgres-wire-protocoltcop/postgres.c (메시지 루프), libpq/{pqcomm,pqformat}.c1done
postgres-authenticationlibpq/{auth,auth-scram,auth-sasl,crypt}.c2done
postgres-tls-gssapilibpq/{be-secure,be-secure-gssapi,be-secure-openssl}.c3done

소스 루트: foreign, commands/{extension,foreigncmds}, src/pl.

문서 (슬러그)Source anchorP상태
postgres-fdwforeign/foreign.c, commands/foreigncmds.c, include/foreign/fdwapi.h (인코어 메커니즘만)2done
postgres-extensionscommands/extension.c2done
postgres-hooks분산된 *_hook 전역 변수 (planner/executor/ProcessUtility/shmem)3done
postgres-plpgsqlsrc/pl/plpgsql/src/*2done
postgres-spiexecutor/spi.c3done
postgres-custom-scaninclude/nodes/extensible.h, executor/nodeCustom.c4done

소스 루트: utils/{mmgr,error,fmgr,adt,mb,misc,sort,resowner,hash}.

문서 (슬러그)Source anchorP상태
postgres-memory-contextsutils/mmgr/{mcxt,aset,generation,slab,bump}.c, README1done
postgres-error-handlingutils/error/{elog,assert}.c1done
postgres-fmgrutils/fmgr/{fmgr,funcapi}.c2done
postgres-datatypes-adtutils/adt/* (numeric, varlena, datetime, jsonb, arrays, ranges)2done
postgres-guc-parametersutils/misc/{guc,guc_tables}.c2done
postgres-resource-ownersutils/resowner/resowner.c3done
postgres-dynahashutils/hash/dynahash.c, lib/*3done

소스 루트: tsearch, utils/adt/pg_locale*.

문서 (슬러그)Source anchorP상태
postgres-collation-providersutils/adt/{pg_locale,pg_locale_icu,pg_locale_libc,pg_locale_builtin}.c, commands/collationcmds.c3done
postgres-encodingutils/mb/*3done
postgres-full-text-searchtsearch/*, GIN 연동3done

소스 루트: src/bin/*, bootstrap, catalog/genbki.pl.

문서 (슬러그)Source anchorP상태
postgres-initdb-bootstrap-genbkisrc/bin/initdb, bootstrap/bootstrap.c, catalog/genbki.pl + pg_*.dat.bki 코드 생성2done
postgres-pg-dump-restoresrc/bin/pg_dump/*2done
postgres-pg-upgradesrc/bin/pg_upgrade/*3done
postgres-pg-basebackupsrc/bin/pg_basebackup/*3done
postgres-pg-rewindsrc/bin/pg_rewind/*4done
postgres-pg-waldumpsrc/bin/pg_waldump/*4done
postgres-psqlsrc/bin/psql/*3done
postgres-pg-ctl-controldatasrc/bin/{pg_ctl,pg_controldata}, xlog.c의 control-file 처리3done

진화 문서(doc_type: evolution)는 단일 서브시스템의 아키텍처 변천을 주요 릴리스 단위로 추적한다. ## 절 하나가 하나의 시대(era)를 담당하며, 타임라인 Mermaid 다이어그램, 이전/이후 구조 비교, 현재 상태 모듈 문서 교차 링크를 포함한다. 진화 문서는 서브시스템이 ≥3개의 구조적으로 뚜렷한 시대를 가진 경우에만 작성 근거가 생긴다. 모두 planned 상태이며, 각 서브시스템의 현재 상태 모듈 문서 이후에 위치한다.

진화 문서 (슬러그)아크상태
postgres-evolution-replicationWAL 파일 배송 → 스트리밍(9.0) → 동기/캐스케이딩(9.1–9.2) → 논리 디코딩(9.4) → pub/sub 논리 복제(10) → 개선(14–18, failover 슬롯 포함)done
postgres-evolution-vacuum-visibilitylazy vacuum → HOT(8.3) → visibility map(8.4) → freeze map(9.6) → 병렬 vacuum(13) → autovacuum + wraparound 강화done
postgres-evolution-partitioning상속/제약 제외 → 선언적 파티셔닝(10) → partition-wise join/agg(11) → 런타임 pruning(11) → 이후 개선done
postgres-evolution-parallel-query도입(9.6) → 병렬 join/agg(10) → 병렬 인덱스 빌드(11), 병렬 vacuum(13), parallel-aware 노드done
postgres-evolution-statisticsstats-collector 프로세스 → 확장 통계(10) → 공유 메모리 누적 통계(15)done
postgres-evolution-pluggable-storage고정 힙 → table access method API(12) → 커스텀 AM, 컬럼형 스토리지 환경done
postgres-evolution-io-async버퍼 I/O → posix_fadvise 프리페치 → WAL 프리페치(15) → async I/O io_uring/worker(18)done

각 모듈 문서의 “Theoretical Background”(§1)와 “Beyond PostgreSQL”(§6)은 우선순위 순으로 네 가지 앵커 소스에서 내용을 가져온다.

  1. 해당 서브시스템의 in-tree README — CUBRID의 벤더 덱과 유사하지만, 항상 최신이고 정확하다. PostgreSQL의 in-tree README는 일급 설계 문서이며, Theoretical/Approach 절에서 반드시 활용하고 sources:에 인용해야 한다. 확인된 README 목록(모듈별로 존재 여부 확인 필요): access/transam/README(+ README.parallel), access/nbtree/README, access/gin/README, access/gist/README, access/spgist/README, access/brin/README, access/hash/README, access/heap/README.HOT, storage/buffer/README, storage/lmgr/README + README-SSI, optimizer/README, replication/README, utils/mmgr/README.
  2. knowledge/research/dbms-papers/ — 큐레이션된 1차 소스 트리. PG 관련 캡처 중 이미 존재하는 것: aries.md(→ recovery-redo, xlog-wal), systemr.md + systemr-optimizer.md(→ planner, cost-model), occ.md(→ mvcc, ssi), btree.md(→ nbtree), rstar-tree.md(→ gist), scalable-lock-manager.md(→ lock-manager), goes-around.md + fntdb07-architecture.md(→ architecture-overview, design-philosophy).
  3. knowledge/research/dbms-general/database-internals.md, database-system-concepts.md (일반 교재 프레임); 복제/일관성 분야는 Designing Data-Intensive Applications도 참조.
  4. PG 관련 논문 (수록 완료 — dbms-papers/에 캡처 13편 + raw/dbms/papers/에 원본 PDF): design-of-postgres(→ architecture-overview, design-philosophy, extensibility), implementation-of-postgres(→ storage, no-overwrite/MVCC 계보), postgres-storage-system, postgres-data-model, postgres-next-generation, ssi-ports-grittner + ssi-cahill + making-si-serializable(→ ssi-predicate-locking), berenson-isolation(→ mvcc-snapshots, ssi), gist(→ gist), lehman-yao(→ nbtree), seltzer-yigit-hash(→ hash-index), fong-optimizer(→ planner, cost-model). 13편 모두 수록 완료; 모듈 문서에서 직접 인용 가능하다.

아래 항목은 제약이 변경되지 않는 한 독립 문서를 작성하지 않는다.

  • contrib/ 전체. 트리는 코어 전용이다. contrib/postgres_fdw, pg_stat_statements, bloom 및 기타 모든 contrib 모듈은 분석 대상이 아니다. 이들이 기반으로 삼는 인코어 메커니즘은 커버된다. postgres-fdw.md는 인코어 FDW 기계(foreign/, fdwapi.h)를 문서화하며 postgres_fdw는 정식 예시로 이름만 언급할 수 있다. postgres-hooks.mdpg_stat_statements가 활용하는 hook 전역 변수를 문서화하고 해당 익스텐션 자체는 다루지 않는다.
  • PG19 전용 기능. 버전 핀은 REL_18_STABLE(커밋 273fe94)이다. PG19 전용 항목은 존재한다고 기술해서는 안 된다. 특히 XLOG2 리소스 매니저와 온라인 데이터 체크섬 워커 BackendType(B_DATACHECKSUMSWORKER_*)이 해당된다. PG18 기능(async I/O, WAL 요약, 증분 백업, 누적 통계)은 범위 내다.
  • 백엔드 libpq 이외의 클라이언트 드라이버. client-protocol 서브카테고리는 src/backend/libpq/ + tcop/postgres.c의 백엔드(서버 측) FE/BE 와이어 프로토콜, 인증, TLS/GSSAPI를 다룬다. 클라이언트 측 libpq 라이브러리(src/interfaces/libpq), ECPG, 기타 언어 드라이버(JDBC, psqlODBC, Python/Go/Rust 드라이버)는 범위 밖이다.
  • 테스트 프레임워크. 회귀 테스트 하네스(src/test/regress, pg_regress), TAP 테스트(src/test/perl, src/bin/**/t/*.pl), isolation tester(src/test/isolation), src/test/modules는 문서화 대상이 아니다. 해당 테스트가 검증하는 엔진 불변성은 테스트 하네스 문서가 아닌 대응 서브시스템 문서에 기술한다.
  • 심볼 단위 커버리지. 이 맵은 모듈 단위 커버리지를 다룬다. 어떤 함수·구조체가 산문으로 설명되지 않았는지는 추적하지 않는다. 그 역할은 각 문서의 position-hint 테이블이 담당한다.
  • 빌드/패키징 및 플랫폼 글루. src/tools, config/, meson / autoconf 빌드, src/port / src/common은 모듈 문서가 필요로 하는 범위(예: spinlock의 port/atomics)에서만 언급되며 독립 문서를 갖지 않는다.

문서의 상태가 변경될 때(예: 저자가 시작하거나 완료할 때):

  1. 해당 서브카테고리 테이블의 Status 셀을 수정한다(plannedin progressdone).
  2. 이 문서(및 bilingual 규칙에 따라 KO 미러)의 updated:를 갱신한다.
  3. /kb-index knowledge/code-analysis/postgres를 실행하여 README.md를 갱신한다.

계획의 카탈로그에 없던 새 모듈이 소스 트리에 등장할 때:

  1. 13개 서브카테고리 중 하나를 결정한다.
  2. 슬러그와 소스 앵커를 포함한 planned 행을 추가하고, 두 문서가 동기화 상태를 유지하도록 계획의 모듈 카탈로그(.omc/plans/postgres-analysis-plan.md §6)에도 결정 사항을 기록한다.

비목표 항목이 목표로 전환될 때(예: 특정 contrib 모듈 분석을 결정할 때):

  1. 해당 항목을 비목표에서 적절한 서브카테고리 테이블로 이동시키고, planned 행으로 추가하면서 변경 이유를 간략히 기록한다.
  • README.md — 프론트매터 summary:에서 자동 생성되는 문서별 카탈로그.
  • postgres-architecture-overview.md — 7축 스파인: 프로세스 모델, 공유 메모리/IPC 기반, WAL 내구성 스파인, 스토리지 및 플러그형 접근 방법, 쿼리 파이프라인, 카탈로그+캐시 레이어, 확장성 인터페이스. 축마다 Mermaid 다이어그램 하나씩, 모든 세부 문서를 forward-reference한다.
  • .omc/plans/postgres-analysis-plan.md — 이 맵이 추적하는 운영 저작 계획(축 집합 §4, 분류 체계 §5, 모듈 카탈로그 §6, DoD §8).
  • knowledge/methodology/code-analysis-doc.md — 모듈 문서 작성에 사용하는 7절 플레이북.
  • cubrid-coverage.md — 이 맵의 모델이 된 CUBRID 커버리지 맵.