mirror of
https://github.com/postgres/postgres.git
synced 2025-10-22 14:32:25 +03:00
Allow executor startup pruning to prune all child nodes.
Previously, if the startup pruning logic proved that all child nodes of an Append or MergeAppend could be pruned, we still kept one, just to keep EXPLAIN from failing. The previous commit removed the ruleutils.c limitation that required this kluge, so drop it. That results in less-confusing EXPLAIN output, as per a complaint from Yuzuko Hosoya. David Rowley Discussion: https://postgr.es/m/001001d4f44b$2a2cca50$7e865ef0$@lab.ntt.co.jp
This commit is contained in:
@@ -1234,8 +1234,6 @@ struct AppendState
|
||||
* slots current output tuple of each subplan
|
||||
* heap heap of active tuples
|
||||
* initialized true if we have fetched first tuple from each subplan
|
||||
* noopscan true if partition pruning proved that none of the
|
||||
* mergeplans can contain a record to satisfy this query.
|
||||
* prune_state details required to allow partitions to be
|
||||
* eliminated from the scan, or NULL if not possible.
|
||||
* valid_subplans for runtime pruning, valid mergeplans indexes to
|
||||
@@ -1252,7 +1250,6 @@ typedef struct MergeAppendState
|
||||
TupleTableSlot **ms_slots; /* array of length ms_nplans */
|
||||
struct binaryheap *ms_heap; /* binary heap of slot indices */
|
||||
bool ms_initialized; /* are subplans started? */
|
||||
bool ms_noopscan;
|
||||
struct PartitionPruneState *ms_prune_state;
|
||||
Bitmapset *ms_valid_subplans;
|
||||
} MergeAppendState;
|
||||
|
Reference in New Issue
Block a user