Acessing columns of parent tables with PL/pgSQL

From: Hans-Juergen Schoenig <hs(at)cybertec(dot)at>
To: pgsql-general(at)postgresql(dot)org
Subject: Acessing columns of parent tables with PL/pgSQL
Date: 2002-06-27 16:38:10
Message-ID: 3D1B3F72.5000803@cybertec.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I wonder if there is a way to access columns in a parent table when
running a PL/pgSQL trigger.

Here is an example:

CREATE TABLE a (
one text
);

CREATE TABLE b (
two text
) INHERITS (a);

CREATE FUNCTION myinsert() RETURNS opaque AS '
BEGIN
RAISE NOTICE ''1 - NEW: %\n'', NEW.one;
RAISE NOTICE ''2 - NEW: %\n'', NEW.two;
RETURN NEW;
END;
' LANGUAGE 'plpgsql';

CREATE TRIGGER mytrig BEFORE INSERT ON b
FOR EACH ROW EXECUTE PROCEDURE myinsert();

INSERT INTO b VALUES ('a1', 'b2');

An error is displayed:

CREATE
CREATE
ERROR: function myinsert already exists with same argument types
CREATE
NOTICE: NEW: b2

INSERT 455182 1

As you can see the column of the parent table cannot be accessed. Is
there a way to get around the problem?

I guess this would be a damn good feature which could be important for
many developers.

Hans

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Gregory Seidman 2002-06-27 16:51:43 Re: script to keep views "correct"?
Previous Message sid@questions.com 2002-06-27 16:26:02 ecpg help