You can avoid duplicating the ereport like this:
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("option \"%s\" specified more than once", defel->defname),
+ parser ? parser_errposition(pstate, defel->location) : 0));
... also, since e3a87b4991cc you can now elide the parens around the
auxiliary function calls:
+ ereport(ERROR,
+ errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("option \"%s\" specified more than once", defel->defname),
+ parser ? parser_errposition(pstate, defel->location) : 0));
Please do add a pg_attribute_noreturn() decorator. I'm not sure if any
compilers will complain about the code flow if you have that, but I
expect many (all?) will if you don't.
--
Álvaro Herrera Valdivia, Chile
"Java is clearly an example of money oriented programming" (A. Stepanov)