pgsql: Make eval_const_expressions() preserve typmod when simplifying

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Make eval_const_expressions() preserve typmod when simplifying
Date: 2007-09-06 17:31:58
Message-ID: 20070906173158.B206B754201@cvs.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Make eval_const_expressions() preserve typmod when simplifying something like
null::char(3) to a simple Const node. (It already worked for non-null values,
but not when we skipped evaluation of a strict coercion function.) This
prevents loss of typmod knowledge in situations such as exhibited in bug
#3598. Unfortunately there seems no good way to fix that bug in 8.1 and 8.2,
because they simply don't carry a typmod for a plain Const node.

In passing I made all the other callers of makeNullConst supply "real" typmod
values too, though I think it probably doesn't matter anywhere else.

Modified Files:
--------------
pgsql/src/backend/commands:
tablecmds.c (r1.231 -> r1.232)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/tablecmds.c?r1=1.231&r2=1.232)
pgsql/src/backend/executor:
execQual.c (r1.221 -> r1.222)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execQual.c?r1=1.221&r2=1.222)
pgsql/src/backend/nodes:
makefuncs.c (r1.56 -> r1.57)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/makefuncs.c?r1=1.56&r2=1.57)
pgsql/src/backend/optimizer/util:
clauses.c (r1.248 -> r1.249)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c?r1=1.248&r2=1.249)
pgsql/src/backend/parser:
parse_coerce.c (r2.156 -> r2.157)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_coerce.c?r1=2.156&r2=2.157)
parse_relation.c (r1.127 -> r1.128)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_relation.c?r1=1.127&r2=1.128)
parse_target.c (r1.154 -> r1.155)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_target.c?r1=1.154&r2=1.155)
pgsql/src/backend/rewrite:
rewriteHandler.c (r1.173 -> r1.174)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/rewrite/rewriteHandler.c?r1=1.173&r2=1.174)
rewriteManip.c (r1.104 -> r1.105)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/rewrite/rewriteManip.c?r1=1.104&r2=1.105)
pgsql/src/include/nodes:
makefuncs.h (r1.59 -> r1.60)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/makefuncs.h?r1=1.59&r2=1.60)

Browse pgsql-committers by date

  From Date Subject
Next Message User Mkz 2007-09-06 19:29:25 pgbouncer - pgbouncer: doc updates - check if asciidoc & xmlto - accept
Previous Message Bruce Momjian 2007-09-05 21:58:47 pgsql: Done: < * Reduce XID consumption of read-only queries < <