diff options
Diffstat (limited to 'src/backend/rewrite')
-rw-r--r-- | src/backend/rewrite/rewriteHandler.c | 4 | ||||
-rw-r--r-- | src/backend/rewrite/rewriteManip.c | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c index 87d39174a44..a695b012399 100644 --- a/src/backend/rewrite/rewriteHandler.c +++ b/src/backend/rewrite/rewriteHandler.c @@ -208,7 +208,7 @@ AcquireRewriteLocks(Query *parsetree, bool forUpdatePushedDown) * now-dropped type OID, but it doesn't really * matter what type the Const claims to be. */ - aliasvar = (Var *) makeNullConst(INT4OID, -1); + aliasvar = (Var *) makeNullConst(INT4OID, -1, InvalidOid); } } newaliasvars = lappend(newaliasvars, aliasvar); @@ -719,6 +719,7 @@ rewriteTargetListIU(Query *parsetree, Relation target_relation, { new_expr = (Node *) makeConst(att_tup->atttypid, -1, + att_tup->attcollation, att_tup->attlen, (Datum) 0, true, /* isnull */ @@ -1082,6 +1083,7 @@ rewriteValuesRTE(RangeTblEntry *rte, Relation target_relation, List *attrnos) { new_expr = (Node *) makeConst(att_tup->atttypid, -1, + att_tup->attcollation, att_tup->attlen, (Datum) 0, true, /* isnull */ diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c index 49a6df0e807..d3985b2093e 100644 --- a/src/backend/rewrite/rewriteManip.c +++ b/src/backend/rewrite/rewriteManip.c @@ -1281,7 +1281,8 @@ ResolveNew_callback(Var *var, /* Otherwise replace unmatched var with a null */ /* need coerce_to_domain in case of NOT NULL domain constraint */ return coerce_to_domain((Node *) makeNullConst(var->vartype, - var->vartypmod), + var->vartypmod, + var->varcollid), InvalidOid, -1, var->vartype, COERCE_IMPLICIT_CAST, |