summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/Python/object_stack.c
diff options
context:
space:
mode:
authoralexpaniman <[email protected]>2026-06-07 17:01:28 +0300
committerGitHub <[email protected]>2026-06-07 14:01:28 +0000
commit4c78e92e6c9d99cd82d19d2ef380ed2bc7c33c6f (patch)
tree5af1b56402201bf82d0ab1a8017675931784265c /contrib/tools/python3/Python/object_stack.c
parentc06e99f991237c8eece4fabd0fd7d3a5071d42a7 (diff)
[NEW RBO] Eliminate projections (#40533)
This reworks logical Map handling in the new RBO, along with the supporting infrastructure needed to make that model work. Main changes: - Rework the logical Map operator model and remove logical projections. - Rework plan conversion: ignore Project in KqpOpMap, then add renames only where name collisions appear. - Add reusable plan-property analyses that rules can request: - RequireLiveness tracks which columns are needed after each operator. This is used for logical cleanup and later physical narrowing. - RequireConflicts tracks names that cannot be introduced across an edge because they would conflict later downstream. This is needed for diamond-like plans where the same lineage flows through multiple paths, gets renamed or handled differently, and then comes back through a join. - RequireNameAliases tracks equivalent column names, allowing rules to choose better aliases and eliminate older or less useful names. - Replace the old RenameStage logic with a rule-based map/alias stage: - map cleanup: remove identity maps, prune dead map elements, convert safe renames to appends; - append pushing: push appends into maps, through unary operators, aggregates, and joins; - rename pushing: push renames into reads, map producers, aggregate results, aggregate keys, join sides, and through transparent maps/unary operators; - alias/expression normalization: rewrite expressions to preferred aliases; - liveness-based pruning: prune dead read columns, aggregate traits, and logical outputs. - Add liveness-based physical narrowing so reads, aggregates, and stages can drop columns that are no longer needed while preserving dependencies such as OLAP filter inputs. - Rework ApplyCBO infrastructure so CBO can run cleanly on top of arbitrary trees. - Include related correctness fixes found while integrating the new model.
Diffstat (limited to 'contrib/tools/python3/Python/object_stack.c')
0 files changed, 0 insertions, 0 deletions