Re: Use of %ROWTYPE in plpgsql function declarations

Started by Tom Laneover 20 years ago3 messagesgeneral
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

"Karl O. Pinc" <kop@meme.com> writes:

Speaking of documentation, it's none too clear that
%ROWTYPE does not seem to work when declaring plpgsql
functions.

There is noplace that claims that it does. Perhaps you
are looking for %TYPE?

regards, tom lane

#2Karl O. Pinc
kop@meme.com
In reply to: Tom Lane (#1)

On 12/03/2005 11:31:34 PM, Tom Lane wrote:

"Karl O. Pinc" <kop@meme.com> writes:

Speaking of documentation, it's none too clear that
%ROWTYPE does not seem to work when declaring plpgsql
functions.

There is noplace that claims that it does. Perhaps you
are looking for %TYPE?

Nope. I saw this:
----<snip>-----
36.4.3. Row Types
...
Parameters to a function can be composite types (complete table
rows). In that case, the corresponding identifier $n will be a row
variable, and fields can be selected from it, for example $1.user_id.
----<snip>-----

and figured that if it was a row variable I could/should declare it
as such when defining the function. It just seemed a little wierd
not to have the %ROWTYPE because AFIK you need it when declaring
in plpgsql's DECLARE and otherwise the function argument declarations
look like DECLARE declarations.

No biggie. Figured I'd throw it out there (to keep me away
from my real work. ;)

Karl <kop@meme.com>
Free Software: "You don't pay back, you pay forward."
-- Robert A. Heinlein

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Karl O. Pinc (#2)

"Karl O. Pinc" <kop@meme.com> writes:

... It just seemed a little wierd
not to have the %ROWTYPE because AFIK you need it when declaring
in plpgsql's DECLARE

No, you don't, as 36.4.3 says perfectly clearly. %ROWTYPE is an
Oracle-ism that we support inside plpgsql, but not elsewhere.

regards, tom lane