- Downloads
Support flattening of empty-FROM subqueries and one-row VALUES tables.
We can't handle this in the general case due to limitations of the planner's data representations; but we can allow it in many useful cases, by being careful to flatten only when we are pulling a single-row subquery up into a FROM (or, equivalently, inner JOIN) node that will still have at least one remaining relation child. Per discussion of an example from Kyotaro Horiguchi.
Showing
- src/backend/nodes/outfuncs.c 1 addition, 0 deletionssrc/backend/nodes/outfuncs.c
- src/backend/optimizer/plan/planner.c 1 addition, 2 deletionssrc/backend/optimizer/plan/planner.c
- src/backend/optimizer/prep/prepjointree.c 393 additions, 59 deletionssrc/backend/optimizer/prep/prepjointree.c
- src/include/nodes/relation.h 1 addition, 0 deletionssrc/include/nodes/relation.h
- src/include/optimizer/prep.h 1 addition, 1 deletionsrc/include/optimizer/prep.h
- src/test/regress/expected/join.out 24 additions, 4 deletionssrc/test/regress/expected/join.out
- src/test/regress/expected/rangefuncs.out 23 additions, 1 deletionsrc/test/regress/expected/rangefuncs.out
- src/test/regress/sql/join.sql 10 additions, 3 deletionssrc/test/regress/sql/join.sql
- src/test/regress/sql/rangefuncs.sql 12 additions, 1 deletionsrc/test/regress/sql/rangefuncs.sql
Loading
Please register or sign in to comment