diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 99242911e8b68c2a03aebd395b7f71c1cccfcd28..5d2311fcc5becb354cad4d753ed69ec96101007f 100755 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -12086,6 +12086,7 @@ case_expr: CASE case_arg when_clause_list case_default END_P c->arg = (Expr *) $2; c->args = $3; c->defresult = (Expr *) $4; + c->location = @1; $$ = (Node *)c; } ; @@ -12102,6 +12103,7 @@ when_clause: CaseWhen *w = makeNode(CaseWhen); w->expr = (Expr *) $2; w->result = (Expr *) $4; + w->location = @1; $$ = (Node *)w; } ; diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index 799a266c3b5c9b48e444c2c41b51fc5eb72e6b2d..5fb93df296c4bf96b709a88f7e2e09cd5144c6d9 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -1910,6 +1910,7 @@ transformCoalesceExpr(ParseState *pstate, CoalesceExpr *c) } newc->args = newcoercedargs; + newc->location = c->location; return (Node *) newc; } @@ -1948,6 +1949,7 @@ transformMinMaxExpr(ParseState *pstate, MinMaxExpr *m) } newm->args = newcoercedargs; + newm->location = m->location; return (Node *) newm; }