pgsql: Implement SQL-compliant treatment of row comparisons for < <= >

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Implement SQL-compliant treatment of row comparisons for < <= >
Date: 2005-12-28 01:30:02
Message-ID: 20051228013002.563819DC9E6@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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)

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2005-12-28 02:12:25 pgsql: Done: < * %Make row-wise comparisons work per SQL spec > * -Make
Previous Message Andrew Dunstan 2005-12-27 23:54:01 pgsql: Increase amount of shared buffers initdb tries to allocate to