-
- Downloads
IN clauses appearing at top level of WHERE can now be handled as joins.
There are two implementation techniques: the executor understands a new JOIN_IN jointype, which emits at most one matching row per left-hand row, or the result of the IN's sub-select can be fed through a DISTINCT filter and then joined as an ordinary relation. Along the way, some minor code cleanup in the optimizer; notably, break out most of the jointree-rearrangement preprocessing in planner.c and put it in a new file prep/prepjointree.c.
Showing
- doc/src/sgml/release.sgml 2 additions, 1 deletiondoc/src/sgml/release.sgml
- src/backend/executor/nodeHashjoin.c 11 additions, 1 deletionsrc/backend/executor/nodeHashjoin.c
- src/backend/executor/nodeMergejoin.c 12 additions, 4 deletionssrc/backend/executor/nodeMergejoin.c
- src/backend/executor/nodeNestloop.c 11 additions, 1 deletionsrc/backend/executor/nodeNestloop.c
- src/backend/nodes/copyfuncs.c 22 additions, 4 deletionssrc/backend/nodes/copyfuncs.c
- src/backend/nodes/equalfuncs.c 17 additions, 4 deletionssrc/backend/nodes/equalfuncs.c
- src/backend/nodes/list.c 5 additions, 5 deletionssrc/backend/nodes/list.c
- src/backend/nodes/outfuncs.c 29 additions, 1 deletionsrc/backend/nodes/outfuncs.c
- src/backend/optimizer/README 1 addition, 0 deletionssrc/backend/optimizer/README
- src/backend/optimizer/geqo/geqo_eval.c 11 additions, 4 deletionssrc/backend/optimizer/geqo/geqo_eval.c
- src/backend/optimizer/geqo/geqo_main.c 14 additions, 9 deletionssrc/backend/optimizer/geqo/geqo_main.c
- src/backend/optimizer/path/allpaths.c 5 additions, 1 deletionsrc/backend/optimizer/path/allpaths.c
- src/backend/optimizer/path/costsize.c 38 additions, 8 deletionssrc/backend/optimizer/path/costsize.c
- src/backend/optimizer/path/indxpath.c 4 additions, 2 deletionssrc/backend/optimizer/path/indxpath.c
- src/backend/optimizer/path/joinpath.c 110 additions, 177 deletionssrc/backend/optimizer/path/joinpath.c
- src/backend/optimizer/path/joinrels.c 144 additions, 7 deletionssrc/backend/optimizer/path/joinrels.c
- src/backend/optimizer/plan/createplan.c 144 additions, 1 deletionsrc/backend/optimizer/plan/createplan.c
- src/backend/optimizer/plan/initsplan.c 9 additions, 4 deletionssrc/backend/optimizer/plan/initsplan.c
- src/backend/optimizer/plan/planmain.c 3 additions, 1 deletionsrc/backend/optimizer/plan/planmain.c
- src/backend/optimizer/plan/planner.c 43 additions, 486 deletionssrc/backend/optimizer/plan/planner.c
Loading
Please register or sign in to comment