pgsql: Change build_index_pathkeys() so that the expressions it builds

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Change build_index_pathkeys() so that the expressions it builds
Date: 2007-05-31 16:57:34
Message-ID: 20070531165734.D09549FBA2F@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Change build_index_pathkeys() so that the expressions it builds to represent
index key columns always have the type expected by the index's associated
operators, ie, we add RelabelType nodes when dealing with binary-compatible
index opclasses. This is needed to get varchar indexes to play nicely with
the new EquivalenceClass machinery, as per recent gripe from Josh Berkus that
CVS HEAD was failing to match a varchar index column to a constant restriction
in the query.

It seems likely that this change will allow removal of a lot of ugly ad-hoc
RelabelType-stripping that the planner has traditionally done while matching
expressions to other expressions, but I'll worry about that some other day.

Modified Files:
--------------
pgsql/src/backend/optimizer/path:
pathkeys.c (r1.84 -> r1.85)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/pathkeys.c.diff?r1=1.84&r2=1.85)
pgsql/src/backend/optimizer/util:
plancat.c (r1.135 -> r1.136)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/plancat.c.diff?r1=1.135&r2=1.136)
pgsql/src/include/nodes:
relation.h (r1.143 -> r1.144)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/relation.h.diff?r1=1.143&r2=1.144)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2007-05-31 20:45:26 pgsql: The shortcut exit that I recently added to ExecInitIndexScan()
Previous Message Peter Eisentraut 2007-05-31 15:13:06 pgsql: Make some messages more consistent