Re: functional call named notation clashes with SQL feature
От | Andrew Dunstan |
---|---|
Тема | Re: functional call named notation clashes with SQL feature |
Дата | |
Msg-id | 4BFDA631.7030309@dunslane.net обсуждение исходный текст |
Ответ на | functional call named notation clashes with SQL feature (Peter Eisentraut <peter_e@gmx.net>) |
Ответы |
Re: functional call named notation clashes with SQL feature
Re: functional call named notation clashes with SQL feature Re: functional call named notation clashes with SQL feature |
Список | pgsql-hackers |
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
В списке pgsql-hackers по дате отправления: