From c063da1769229efa8d8d21f0d068b3199ea3a6b3 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 22 Feb 2015 14:40:27 -0500 Subject: Add parse location fields to NullTest and BooleanTest structs. We did not need a location tag on NullTest or BooleanTest before, because no error messages referred directly to their locations. That's planned to change though, so add these fields in a separate housekeeping commit. Catversion bump because stored rules may change. --- src/backend/nodes/nodeFuncs.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/backend/nodes/nodeFuncs.c') diff --git a/src/backend/nodes/nodeFuncs.c b/src/backend/nodes/nodeFuncs.c index 21dfda7f795..d6f1f5bb6d7 100644 --- a/src/backend/nodes/nodeFuncs.c +++ b/src/backend/nodes/nodeFuncs.c @@ -1346,12 +1346,22 @@ exprLocation(const Node *expr) } break; case T_NullTest: - /* just use argument's location */ - loc = exprLocation((Node *) ((const NullTest *) expr)->arg); + { + const NullTest *nexpr = (const NullTest *) expr; + + /* Much as above */ + loc = leftmostLoc(nexpr->location, + exprLocation((Node *) nexpr->arg)); + } break; case T_BooleanTest: - /* just use argument's location */ - loc = exprLocation((Node *) ((const BooleanTest *) expr)->arg); + { + const BooleanTest *bexpr = (const BooleanTest *) expr; + + /* Much as above */ + loc = leftmostLoc(bexpr->location, + exprLocation((Node *) bexpr->arg)); + } break; case T_CoerceToDomain: { -- cgit v1.2.3