diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 0f4e8638c3d..c431fce7ac9 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -12758,6 +12758,7 @@ ExplainStmt: n->query = $2; n->options = NIL; + n->explainable_loc = @2; $$ = (Node *) n; } | EXPLAIN analyze_keyword opt_verbose ExplainableStmt @@ -12769,6 +12770,7 @@ ExplainStmt: if ($3) n->options = lappend(n->options, makeDefElem("verbose", NULL, @3)); + n->explainable_loc = @4; $$ = (Node *) n; } | EXPLAIN VERBOSE ExplainableStmt @@ -12777,6 +12779,7 @@ ExplainStmt: n->query = $3; n->options = list_make1(makeDefElem("verbose", NULL, @2)); + n->explainable_loc = @3; $$ = (Node *) n; } | EXPLAIN '(' utility_option_list ')' ExplainableStmt @@ -12785,6 +12788,7 @@ ExplainStmt: n->query = $5; n->options = $3; + n->explainable_loc = @5; $$ = (Node *) n; } ; diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index a92dbda0770..bad933d4f0e 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -4152,4 +4152,5 @@ typedef struct ExplainStmt NodeTag type; Node *query; /* the query (see comments above) */ List *options; /* list of DefElem nodes */ + ParseLoc explainable_loc; } ExplainStmt;