Peter Eisentraut wrote:
It turns out that the SQL standard uses the function call notation foo(this AS that) for something else: <routine invocation> ::= <routine name> <SQL argument list> <routine name> ::= [ <schema name> <period> ] <qualified identifier> <SQL argument list> ::= <left paren> [ <SQL argument> [ { <comma> <SQL argument> }... ] ] <right paren> <SQL argument> ::= <value expression> | <generalized expression> | <target specification> <generalized expression> ::= <value expression> AS <path-resolved user-defined type name> In systems that have inheritance of composite types, this is used to specify which type the value is supposed to be interpreted as (for example, to treat the value as a supertype). Seems kind of bad to overload this with something completely different. What should we do?
I think we should fix it now. Quick thought: maybe we could use FOR instead of AS: select myfunc(7 for a, 6 for b); IIRC the standard's mechanism for this is 'paramname => value', but I think that has problems because of our possibly use of => as an operator - otherwise that would be by far the best way to go.
cheers andrew -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers