From 7face9e5606c56d22286f4866adc81e39f88bc82 Mon Sep 17 00:00:00 2001 From: Henson Choi Date: Tue, 12 May 2026 15:43:49 +0900 Subject: [PATCH 15/15] Round out README.rpr WindowAggState field coverage Follow-up to the previous commit applying Tatsuo Ishii's review. That commit added three WindowAggState fields to V-3 but left a few related entries out, and Appendix B's diagram still showed the pre-review field list. - Add nfaVisitedMinWord and nfaVisitedMaxWord to V-3 - Note that EXPLAIN ANALYZE instrumentation counters are omitted from V-3 (see execnodes.h) - Mirror the V-3 additions in the Appendix B diagram --- src/backend/executor/README.rpr | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/backend/executor/README.rpr b/src/backend/executor/README.rpr index 6c2bddab455..6ff7f33e62e 100644 --- a/src/backend/executor/README.rpr +++ b/src/backend/executor/README.rpr @@ -522,10 +522,15 @@ V-3. RPR Fields of WindowAggState nfaVarMatched Per-row cache: varMatched[varId] nfaVisitedElems Bitmap for cycle detection nfaVisitedNWords Number of bitmapwords in nfaVisitedElems + nfaVisitedMinWord Lowest bitmapword index touched since last reset + nfaVisitedMaxWord Highest bitmapword index touched since last reset nfaStateSize Precomputed size of RPRNFAState defineMatchStartDependent DEFINE vars needing per-context evaluation (match_start-dependent) nfaLastProcessedRow Last row processed by NFA (-1 = none) + EXPLAIN ANALYZE instrumentation counters are omitted here; see + execnodes.h for the full list. + Memory management: States and contexts are managed through their own free lists. @@ -1480,7 +1485,13 @@ Appendix B. Data Structure Relationship Diagram |--- defineVariableList: List (variable names, DEFINE order) |--- defineClauseList: List |--- nfaVarMatched: bool[] (per-row cache) + |--- defineMatchStartDependent: Bitmapset* (match_start-dependent + | DEFINE vars; see VI-4) |--- nfaVisitedElems: bitmapword* (cycle detection) + |--- nfaVisitedNWords: int (size of nfaVisitedElems) + |--- nfaVisitedMinWord / nfaVisitedMaxWord: int16 + | (touched-word range for fast reset) + |--- nfaLastProcessedRow: int64 (-1 = none) |--- nfaStateSize: Size (pre-calculated RPRNFAState allocation size) |--- nfaContext <-> nfaContextTail (doubly-linked list) | +--- RPRNFAContext -- 2.50.1 (Apple Git-155)