aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeRecursiveunion.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2024-12-19 17:02:25 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2024-12-19 17:02:25 -0500
commit8d96f57d5cc79c0c51050bb707c19bf07d2895eb (patch)
tree6d67ac0e73bee8d2d7fc9c977f3539fbc0430a46 /src/backend/executor/nodeRecursiveunion.c
parent27627929528e24a547d1058a5444b35491057a56 (diff)
downloadpostgresql-8d96f57d5cc79c0c51050bb707c19bf07d2895eb.tar.gz
postgresql-8d96f57d5cc79c0c51050bb707c19bf07d2895eb.zip
Improve planner's handling of SetOp plans.
Remove the code for inserting flag columns in the inputs of a SetOp. That was the only reason why there would be resjunk columns in a set-operations plan tree, so we can get rid of some code that supported that, too. Get rid of choose_hashed_setop() in favor of building Paths for the hashed and sorted alternatives, and letting them fight it out within add_path(). Remove set_operation_ordered_results_useful(), which was giving wrong answers due to examining the wrong ancestor node: we need to examine the immediate SetOperationStmt parent not the topmost node. Instead make each caller of recurse_set_operations() pass down the relevant parent node. (This thinko seems to have led only to wasted planning cycles and possibly-inferior plans, not wrong query answers. Perhaps we should back-patch it, but I'm not doing so right now.) Teach generate_nonunion_paths() to consider pre-sorted inputs for sorted SetOps, rather than always generating a Sort node. Patch by me; thanks to Richard Guo and David Rowley for review. Discussion: https://postgr.es/m/1850138.1731549611@sss.pgh.pa.us
Diffstat (limited to 'src/backend/executor/nodeRecursiveunion.c')
0 files changed, 0 insertions, 0 deletions