Re: Function valid only for one table

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Martin Knipper <knipper(at)mk-os(dot)de>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Function valid only for one table
Date: 2004-05-19 17:33:19
Message-ID: 18520.1084987999@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Martin Knipper <knipper(at)mk-os(dot)de> writes:
> I thought about a mixture of object orientation and a normal table
> for a relational database.
> someFunction() is a method for the object/table someTable.

Perhaps you could do what you want with functions accepting table
rowtypes.

create function someFunction(someTable) returns ...

select someFunction(t.*) from someTable t where ...
-- works

select someFunction(t.*) from anotherTable t where ...
-- fails

create function someFunction(anotherTable) returns ...

select someFunction(t.*) from someTable t where ...
-- still works

select someFunction(t.*) from anotherTable t where ...
-- now calls the second someFunction()

As of existing releases this doesn't scale well to large tables, because
passing a whole table row to a function leaks memory intraquery. That
is fixed for 7.5 though.

regards, tom lane

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Martin Knipper 2004-05-19 17:41:21 Re: Function valid only for one table
Previous Message Kornelije Rabuzin 2004-05-19 17:31:49 Re: Replace function ...