mirror of
https://github.com/postgres/postgres.git
synced 2025-06-14 18:42:34 +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:
@ -52,8 +52,7 @@
|
||||
* "parameters" is a list of DefElem representing the agg's definition clauses.
|
||||
*/
|
||||
ObjectAddress
|
||||
DefineAggregate(List *name, List *args, bool oldstyle, List *parameters,
|
||||
const char *queryString)
|
||||
DefineAggregate(ParseState *pstate, List *name, List *args, bool oldstyle, List *parameters)
|
||||
{
|
||||
char *aggName;
|
||||
Oid aggNamespace;
|
||||
@ -287,10 +286,10 @@ DefineAggregate(List *name, List *args, bool oldstyle, List *parameters,
|
||||
errmsg("basetype is redundant with aggregate input type specification")));
|
||||
|
||||
numArgs = list_length(args);
|
||||
interpret_function_parameter_list(args,
|
||||
interpret_function_parameter_list(pstate,
|
||||
args,
|
||||
InvalidOid,
|
||||
true, /* is an aggregate */
|
||||
queryString,
|
||||
¶meterTypes,
|
||||
&allParameterTypes,
|
||||
¶meterModes,
|
||||
|
Reference in New Issue
Block a user