-
- Downloads
Implement SQL-compliant treatment of row comparisons for < <= > >= cases
(previously we only did = and <> correctly). Also, allow row comparisons with any operators that are in btree opclasses, not only those with these specific names. This gets rid of a whole lot of indefensible assumptions about the behavior of particular operators based on their names ... though it's still true that IN and NOT IN expand to "= ANY". The patch adds a RowCompareExpr expression node type, and makes some changes in the representation of ANY/ALL/ROWCOMPARE SubLinks so that they can share code with RowCompareExpr. I have not yet done anything about making RowCompareExpr an indexable operator, but will look at that soon. initdb forced due to changes in stored rules.
Showing
- doc/src/sgml/func.sgml 93 additions, 65 deletionsdoc/src/sgml/func.sgml
- src/backend/catalog/dependency.c 16 additions, 11 deletionssrc/backend/catalog/dependency.c
- src/backend/executor/execQual.c 144 additions, 4 deletionssrc/backend/executor/execQual.c
- src/backend/executor/nodeSubplan.c 50 additions, 76 deletionssrc/backend/executor/nodeSubplan.c
- src/backend/nodes/copyfuncs.c 23 additions, 6 deletionssrc/backend/nodes/copyfuncs.c
- src/backend/nodes/equalfuncs.c 19 additions, 6 deletionssrc/backend/nodes/equalfuncs.c
- src/backend/nodes/outfuncs.c 18 additions, 6 deletionssrc/backend/nodes/outfuncs.c
- src/backend/nodes/readfuncs.c 21 additions, 4 deletionssrc/backend/nodes/readfuncs.c
- src/backend/optimizer/path/costsize.c 9 additions, 3 deletionssrc/backend/optimizer/path/costsize.c
- src/backend/optimizer/plan/subselect.c 178 additions, 160 deletionssrc/backend/optimizer/plan/subselect.c
- src/backend/optimizer/util/clauses.c 45 additions, 19 deletionssrc/backend/optimizer/util/clauses.c
- src/backend/parser/gram.y 7 additions, 16 deletionssrc/backend/parser/gram.y
- src/backend/parser/parse_expr.c 288 additions, 162 deletionssrc/backend/parser/parse_expr.c
- src/backend/parser/parse_oper.c 5 additions, 2 deletionssrc/backend/parser/parse_oper.c
- src/backend/utils/adt/ruleutils.c 107 additions, 53 deletionssrc/backend/utils/adt/ruleutils.c
- src/backend/utils/cache/lsyscache.c 143 additions, 1 deletionsrc/backend/utils/cache/lsyscache.c
- src/include/catalog/catversion.h 2 additions, 2 deletionssrc/include/catalog/catversion.h
- src/include/nodes/execnodes.h 14 additions, 2 deletionssrc/include/nodes/execnodes.h
- src/include/nodes/nodes.h 3 additions, 1 deletionsrc/include/nodes/nodes.h
- src/include/nodes/params.h 7 additions, 1 deletionsrc/include/nodes/params.h
Loading
Please register or sign in to comment