pgsql: Implement SQL-compliant treatment of row comparisons for < <= >
От | tgl@postgresql.org (Tom Lane) |
---|---|
Тема | pgsql: Implement SQL-compliant treatment of row comparisons for < <= > |
Дата | |
Msg-id | 20051228013002.563819DC9E6@postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Log Message: ----------- 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. Modified Files: -------------- pgsql/doc/src/sgml: func.sgml (r1.300 -> r1.301) (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/func.sgml.diff?r1=1.300&r2=1.301) pgsql/src/backend/catalog: dependency.c (r1.48 -> r1.49) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/dependency.c.diff?r1=1.48&r2=1.49) pgsql/src/backend/executor: execQual.c (r1.186 -> r1.187) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execQual.c.diff?r1=1.186&r2=1.187) nodeSubplan.c (r1.71 -> r1.72) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSubplan.c.diff?r1=1.71&r2=1.72) pgsql/src/backend/nodes: copyfuncs.c (r1.323 -> r1.324) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c.diff?r1=1.323&r2=1.324) equalfuncs.c (r1.259 -> r1.260) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/equalfuncs.c.diff?r1=1.259&r2=1.260) outfuncs.c (r1.265 -> r1.266) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c.diff?r1=1.265&r2=1.266) readfuncs.c (r1.182 -> r1.183) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/readfuncs.c.diff?r1=1.182&r2=1.183) pgsql/src/backend/optimizer/path: costsize.c (r1.151 -> r1.152) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/costsize.c.diff?r1=1.151&r2=1.152) pgsql/src/backend/optimizer/plan: subselect.c (r1.102 -> r1.103) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/subselect.c.diff?r1=1.102&r2=1.103) pgsql/src/backend/optimizer/util: clauses.c (r1.204 -> r1.205) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c.diff?r1=1.204&r2=1.205) pgsql/src/backend/parser: gram.y (r2.519 -> r2.520) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y.diff?r1=2.519&r2=2.520) parse_expr.c (r1.188 -> r1.189) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_expr.c.diff?r1=1.188&r2=1.189) parse_oper.c (r1.83 -> r1.84) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_oper.c.diff?r1=1.83&r2=1.84) pgsql/src/backend/utils/adt: ruleutils.c (r1.210 -> r1.211) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ruleutils.c.diff?r1=1.210&r2=1.211) pgsql/src/backend/utils/cache: lsyscache.c (r1.130 -> r1.131) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/lsyscache.c.diff?r1=1.130&r2=1.131) pgsql/src/include/catalog: catversion.h (r1.307 -> r1.308) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catversion.h.diff?r1=1.307&r2=1.308) pgsql/src/include/nodes: execnodes.h (r1.146 -> r1.147) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/execnodes.h.diff?r1=1.146&r2=1.147) nodes.h (r1.179 -> r1.180) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/nodes.h.diff?r1=1.179&r2=1.180) params.h (r1.28 -> r1.29) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/params.h.diff?r1=1.28&r2=1.29) primnodes.h (r1.110 -> r1.111) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/primnodes.h.diff?r1=1.110&r2=1.111) pgsql/src/include/parser: parse_oper.h (r1.36 -> r1.37) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/parse_oper.h.diff?r1=1.36&r2=1.37) pgsql/src/include/utils: lsyscache.h (r1.101 -> r1.102) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/lsyscache.h.diff?r1=1.101&r2=1.102) pgsql/src/pl/plpgsql/src: pl_exec.c (r1.157 -> r1.158) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/pl_exec.c.diff?r1=1.157&r2=1.158) pgsql/src/test/regress/expected: rowtypes.out (r1.3 -> r1.4) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/rowtypes.out.diff?r1=1.3&r2=1.4) pgsql/src/test/regress/sql: rowtypes.sql (r1.3 -> r1.4) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/rowtypes.sql.diff?r1=1.3&r2=1.4)
В списке pgsql-committers по дате отправления:
Предыдущее
От: jwp@pgfoundry.org (James William Pye)Дата:
Сообщение: python - be: Add path accessors.
Следующее
От: momjian@postgresql.org (Bruce Momjian)Дата:
Сообщение: pgsql: Done: < * %Make row-wise comparisons work per SQL spec > * -Make