diff options
Diffstat (limited to 'src/backend/executor/execUtils.c')
-rw-r--r-- | src/backend/executor/execUtils.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c index 00564985668..c9c756f8568 100644 --- a/src/backend/executor/execUtils.c +++ b/src/backend/executor/execUtils.c @@ -771,7 +771,8 @@ ExecOpenScanRelation(EState *estate, Index scanrelid, int eflags) * indexed by rangetable index. */ void -ExecInitRangeTable(EState *estate, List *rangeTable, List *permInfos) +ExecInitRangeTable(EState *estate, List *rangeTable, List *permInfos, + Bitmapset *unpruned_relids) { /* Remember the range table List as-is */ estate->es_range_table = rangeTable; @@ -783,6 +784,15 @@ ExecInitRangeTable(EState *estate, List *rangeTable, List *permInfos) estate->es_range_table_size = list_length(rangeTable); /* + * Initialize the bitmapset of RT indexes (es_unpruned_relids) + * representing relations that will be scanned during execution. This set + * is initially populated by the caller and may be extended later by + * ExecDoInitialPruning() to include RT indexes of unpruned leaf + * partitions. + */ + estate->es_unpruned_relids = unpruned_relids; + + /* * Allocate an array to store an open Relation corresponding to each * rangetable entry, and initialize entries to NULL. Relations are opened * and stored here as needed. |