-
- Downloads
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.
Showing
- src/backend/commands/tablecmds.c 7 additions, 4 deletionssrc/backend/commands/tablecmds.c
- src/backend/executor/execQual.c 2 additions, 2 deletionssrc/backend/executor/execQual.c
- src/backend/nodes/makefuncs.c 6 additions, 5 deletionssrc/backend/nodes/makefuncs.c
- src/backend/optimizer/util/clauses.c 3 additions, 3 deletionssrc/backend/optimizer/util/clauses.c
- src/backend/parser/parse_coerce.c 2 additions, 2 deletionssrc/backend/parser/parse_coerce.c
- src/backend/parser/parse_relation.c 2 additions, 2 deletionssrc/backend/parser/parse_relation.c
- src/backend/parser/parse_target.c 2 additions, 2 deletionssrc/backend/parser/parse_target.c
- src/backend/rewrite/rewriteHandler.c 2 additions, 2 deletionssrc/backend/rewrite/rewriteHandler.c
- src/backend/rewrite/rewriteManip.c 3 additions, 2 deletionssrc/backend/rewrite/rewriteManip.c
- src/include/nodes/makefuncs.h 2 additions, 2 deletionssrc/include/nodes/makefuncs.h
Loading
Please register or sign in to comment