Re: named parameters in SQL functions - Mailing list pgsql-hackers

From Robert Haas
Subject Re: named parameters in SQL functions
Date
Msg-id 603c8f070911151841p7c41f6f2j7265acc02fe8100c@mail.gmail.com
Whole thread Raw
In response to Re: named parameters in SQL functions  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: named parameters in SQL functions
List pgsql-hackers
On Sun, Nov 15, 2009 at 8:40 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Sun, Nov 15, 2009 at 8:22 PM, Andrew Dunstan <andrew@dunslane.net> wrote:
>>> Well, if the funcname.varname gadget will work, as you suggest elsewhere it
>>> could, I think that would suffice. I had assumed that was just something in
>>> the plpgsql engine.
>
>> That gadget isn't horribly convenient for me since my function names
>> tend to be 30 or 40 characters long.  I wish we had something shorter,
>> and maybe constant.  But I guess that's a topic for a separate
>> (inevitably rejected) patch.
>
> You're only going to need that if you insist on choosing parameter names
> that conflict with columns of the tables the function manipulates.  Even
> then, attaching column aliases to the tables could be used instead.
> I don't see that this is any different from or worse than the extra
> typing you'll incur if you insist on using 40-character table names.

It's true, but that often seems like a natural thing to do.  Someone
passes you the ID of a project and you want to look up all the tasks
associated with that project and do some computation on them.  Well
the task table has a project_id column, and that's also the obvious
name for the parameter.  You can call it pid or my_project_id or
v_project_id or any of the other alternatives that are frequently
suggested, or just leave it unnamed and refer to it as $1, but to my
way of thinking project_id is the most natural choice.

> (But having said that, an alternate qualification name is something
> that could be implemented if there were any agreement on what to use.)

Well that is the tricky part, for sure.  I would personally prefer
something like ${name} rather than a prefix, but I think you're likely
to veto that outright.  So, anything reasonably short would be an
improvement over the status quo.  self?  this?  my?

...Robert


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: named parameters in SQL functions
Next
From: Andrew Dunstan
Date:
Subject: Re: named parameters in SQL functions