Second try at fixing join alias variables. Instead of attaching miscellaneous
lists to join RTEs, attach a list of Vars and COALESCE expressions that will replace the join's alias variables during planning. This simplifies flatten_join_alias_vars while still making it easy to fix up varno references when transforming the query tree. Add regression test cases for interactions of subqueries with outer joins.
Showing
- src/backend/nodes/copyfuncs.c 2 additions, 6 deletionssrc/backend/nodes/copyfuncs.c
- src/backend/nodes/equalfuncs.c 2 additions, 8 deletionssrc/backend/nodes/equalfuncs.c
- src/backend/nodes/outfuncs.c 4 additions, 18 deletionssrc/backend/nodes/outfuncs.c
- src/backend/nodes/readfuncs.c 3 additions, 16 deletionssrc/backend/nodes/readfuncs.c
- src/backend/optimizer/plan/createplan.c 22 additions, 46 deletionssrc/backend/optimizer/plan/createplan.c
- src/backend/optimizer/plan/initsplan.c 9 additions, 11 deletionssrc/backend/optimizer/plan/initsplan.c
- src/backend/optimizer/plan/planner.c 106 additions, 44 deletionssrc/backend/optimizer/plan/planner.c
- src/backend/optimizer/plan/setrefs.c 8 additions, 15 deletionssrc/backend/optimizer/plan/setrefs.c
- src/backend/optimizer/util/clauses.c 43 additions, 23 deletionssrc/backend/optimizer/util/clauses.c
- src/backend/optimizer/util/var.c 29 additions, 331 deletionssrc/backend/optimizer/util/var.c
- src/backend/parser/analyze.c 7 additions, 12 deletionssrc/backend/parser/analyze.c
- src/backend/parser/parse_clause.c 150 additions, 72 deletionssrc/backend/parser/parse_clause.c
- src/backend/parser/parse_relation.c 17 additions, 21 deletionssrc/backend/parser/parse_relation.c
- src/include/catalog/catversion.h 2 additions, 2 deletionssrc/include/catalog/catversion.h
- src/include/nodes/parsenodes.h 7 additions, 10 deletionssrc/include/nodes/parsenodes.h
- src/include/nodes/plannodes.h 1 addition, 5 deletionssrc/include/nodes/plannodes.h
- src/include/optimizer/planmain.h 2 additions, 2 deletionssrc/include/optimizer/planmain.h
- src/include/optimizer/var.h 2 additions, 4 deletionssrc/include/optimizer/var.h
- src/include/parser/parse_relation.h 2 additions, 5 deletionssrc/include/parser/parse_relation.h
- src/test/regress/expected/join.out 132 additions, 0 deletionssrc/test/regress/expected/join.out
Loading
Please register or sign in to comment