From 49eb0fd0972d14014dd3533b1f1bf8c94c899883 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 6 Sep 2016 12:00:00 -0400 Subject: Add location field to DefElem Add a location field to the DefElem struct, used to parse many utility commands. Update various error messages to supply error position information. To propogate the error position information in a more systematic way, create a ParseState in standard_ProcessUtility() and pass that to interested functions implementing the utility commands. This seems better than passing the query string and then reassembling a parse state ad hoc, which violates the encapsulation of the ParseState type. Reviewed-by: Pavel Stehule --- src/backend/parser/parse_utilcmd.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/backend/parser/parse_utilcmd.c') diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index e98fad051e4..7a2950e6a92 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -294,7 +294,8 @@ transformCreateStmt(CreateStmt *stmt, const char *queryString) * overridden if an inherited table has oids. */ stmt->options = lcons(makeDefElem("oids", - (Node *) makeInteger(cxt.hasoids)), stmt->options); + (Node *) makeInteger(cxt.hasoids), -1), + stmt->options); } foreach(elements, stmt->tableElts) @@ -482,7 +483,7 @@ transformColumnDefinition(CreateStmtContext *cxt, ColumnDef *column) makeString(cxt->relation->relname), makeString(column->colname)); altseqstmt->options = list_make1(makeDefElem("owned_by", - (Node *) attnamelist)); + (Node *) attnamelist, -1)); cxt->alist = lappend(cxt->alist, altseqstmt); -- cgit v1.2.3