Re: function to operate on same fields, different records?

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: will trillich <will@serensoft.com>
Cc: pgsql-general@postgresql.org, "Eric G. Miller" <egm2@jps.net>
Date: 2001-04-02T14:21:34Z
Lists: pgsql-general
will trillich <will@serensoft.com> writes:
> i've tried
> 	create function gpa(OPAQUE) ....
> and psql tells me it successfully
> 	CREATED
> something, but
> 	\df
> shows no such function.

I believe \df suppresses opaque-argument functions, on the theory that
they're probably just I/O functions.  But OPAQUE won't do you any good
anyway unless you code the function in C.

> what arg to i specify to allow varying records (with a subset of
> exactly-the-same-names field subset) to be passed to a function?

Inheritance seems to work for this in current sources:

regression=# create table p1 (f1 int);
CREATE
regression=# create table p2 (f2 int) inherits (p1);
CREATE
regression=# create function getf1(p1) returns int as '
regression'# select $1.f1' language 'sql';
CREATE
regression=# insert into p1 values(1);
INSERT 1030276 1
regression=# insert into p2 values(11,22);
INSERT 1030277 1
regression=# select getf1(p1) from p1;
 getf1
-------
     1
    11
(2 rows)

regression=#

			regards, tom lane