1
0
mirror of https://github.com/postgres/postgres.git synced 2025-09-03 15:22:11 +03:00

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 <pavel.stehule@gmail.com>
This commit is contained in:
Peter Eisentraut
2016-09-06 12:00:00 -04:00
parent 975768f8ea
commit 49eb0fd097
38 changed files with 438 additions and 347 deletions

View File

@@ -148,37 +148,37 @@ base_backup_opt:
K_LABEL SCONST
{
$$ = makeDefElem("label",
(Node *)makeString($2));
(Node *)makeString($2), -1);
}
| K_PROGRESS
{
$$ = makeDefElem("progress",
(Node *)makeInteger(TRUE));
(Node *)makeInteger(TRUE), -1);
}
| K_FAST
{
$$ = makeDefElem("fast",
(Node *)makeInteger(TRUE));
(Node *)makeInteger(TRUE), -1);
}
| K_WAL
{
$$ = makeDefElem("wal",
(Node *)makeInteger(TRUE));
(Node *)makeInteger(TRUE), -1);
}
| K_NOWAIT
{
$$ = makeDefElem("nowait",
(Node *)makeInteger(TRUE));
(Node *)makeInteger(TRUE), -1);
}
| K_MAX_RATE UCONST
{
$$ = makeDefElem("max_rate",
(Node *)makeInteger($2));
(Node *)makeInteger($2), -1);
}
| K_TABLESPACE_MAP
{
$$ = makeDefElem("tablespace_map",
(Node *)makeInteger(TRUE));
(Node *)makeInteger(TRUE), -1);
}
;
@@ -315,7 +315,7 @@ plugin_opt_list:
plugin_opt_elem:
IDENT plugin_opt_arg
{
$$ = makeDefElem($1, $2);
$$ = makeDefElem($1, $2, -1);
}
;