From: | tgl(at)postgresql(dot)org (Tom Lane) |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Fix EquivalenceClass code to handle volatile sort expressions in |
Date: | 2007-11-08 21:49:48 |
Message-ID: | 20071108214948.29755754156@cvs.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Log Message:
-----------
Fix EquivalenceClass code to handle volatile sort expressions in a more
predictable manner; in particular that if you say ORDER BY output-column-ref,
it will in fact sort by that specific column even if there are multiple
syntactic matches. An example is
SELECT random() AS a, random() AS b FROM ... ORDER BY b, a;
While the use-case for this might be a bit debatable, it worked as expected
in earlier releases, so we should preserve the behavior for 8.3. Per my
recent proposal.
While at it, fix convert_subquery_pathkeys() to handle RelabelType stripping
in both directions; it needs this for the same reasons make_sort_from_pathkeys
does.
Modified Files:
--------------
pgsql/src/backend/nodes:
outfuncs.c (r1.315 -> r1.316)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c?r1=1.315&r2=1.316)
pgsql/src/backend/optimizer/path:
equivclass.c (r1.3 -> r1.4)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/equivclass.c?r1=1.3&r2=1.4)
pathkeys.c (r1.88 -> r1.89)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/pathkeys.c?r1=1.88&r2=1.89)
pgsql/src/backend/optimizer/plan:
createplan.c (r1.233 -> r1.234)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/createplan.c?r1=1.233&r2=1.234)
pgsql/src/backend/optimizer/util:
tlist.c (r1.75 -> r1.76)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/tlist.c?r1=1.75&r2=1.76)
pgsql/src/include/nodes:
relation.h (r1.147 -> r1.148)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/relation.h?r1=1.147&r2=1.148)
pgsql/src/include/optimizer:
paths.h (r1.99 -> r1.100)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/paths.h?r1=1.99&r2=1.100)
tlist.h (r1.46 -> r1.47)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/tlist.h?r1=1.46&r2=1.47)
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2007-11-08 22:08:18 | pgsql: Add mention of pl/proxy toolset to docs. |
Previous Message | User Mkz | 2007-11-08 21:32:40 | pgbouncer - pgbouncer: jenkins hash: optimize last memcpy compiler |