Patch: Allow SQL-language functions to reference parameters by parameter name
От | Matthew Draper |
---|---|
Тема | Patch: Allow SQL-language functions to reference parameters by parameter name |
Дата | |
Msg-id | 4F11A8FD.9060802@trebex.net обсуждение исходный текст |
Ответы |
Re: Patch: Allow SQL-language functions to reference
parameters by parameter name
|
Список | pgsql-hackers |
I just remembered to make time to advance this from WIP to proposed patch this week... and then worked out I'm rudely dropping it into the last commitfest at the last minute. :/ Anyway, my interpretation of the previous discussion is a general consensus that permitting ambiguous parameter/column references is somewhat unsavoury, but better than the alternatives: http://archives.postgresql.org/pgsql-hackers/2011-04/msg00433.php http://archives.postgresql.org/pgsql-hackers/2011-04/msg00744.php (and surrounds) The attached patch is essentially unchanged from my WIP version; it's updated to current master (d0dcb31), and fixes a trivial copy/paste error. It passes `make check`. Also attached is a rather light doc patch, which I've separated because I'm hesitant about which approach to take. The attached version just changes the existing mention of naming parameters in: http://www.postgresql.org/docs/9.1/static/xfunc-sql.html#XFUNC-NAMED-PARAMETERS It presumably ought to be clearer about the name resolution priorities... in a quick look, I failed to locate the corresponding discussion of column name references to link to (beyond a terse sentence in 4.2.1). The alternative would be to adjust most of the examples in section 35.4, using parameter names as the preferred option, and thus make $n "the other way". I'm happy to do that, but I figure it'd be a bit presumptuous to present such a patch without some discussion; it's effectively rewriting the project's opinion of how to reference function parameters. With regard to the discussion about aliasing the function name when used as a qualifier (http://archives.postgresql.org/pgsql-hackers/2011-04/msg00871.php), my only suggestion would be that using $0 (as in, '$0.paramname') appears safe -- surely any spec change causing it issues would equally affect the existing $1 etc. '$.paramname' seems to look better, but presumably runs into trouble by looking like an operator. That whole discussion seems above my pay grade, however. Original WIP post: http://archives.postgresql.org/pgsql-hackers/2011-03/msg01479.php This is an open TODO: http://wiki.postgresql.org/wiki/Todo#SQL-Language_Functions I've just added the above post to the CF app; I'll update it to point to this one once it appears. Thanks! Matthew -- matthew@trebex.net
Вложения
В списке pgsql-hackers по дате отправления: