Trouble using TG_TABLE_NAME in BEFORE INSERT OR UPDATE trigger

From: Stephen Cuppett <steve(at)cuppett(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Trouble using TG_TABLE_NAME in BEFORE INSERT OR UPDATE trigger
Date: 2009-08-30 12:11:13
Message-ID: 3e04a6990908300511j2e7658edqea1864a48497857@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Using PostgreSQL 8.4.0, I have the following generic trigger defined for use
by a collection of the same structured tables:

CREATE OR REPLACE FUNCTION pdf_active_check() RETURNS trigger AS $BODY$
DECLARE
var_active BOOLEAN;
BEGIN
SELECT p.active INTO STRICT var_active FROM TG_TABLE_NAME pv INNER
JOIN pdfs p ON p.id = pv.pdf_id;
IF active THEN
RETURN NEW;
ELSE
RETURN NULL;
END IF;
END;
$BODY$ LANGUAGE 'plpgsql';

ERROR: syntax error at or near "$1"
LINE 1: SELECT p.active FROM $1 pv INNER JOIN pdfs p ON p.id = pv....
^
QUERY: SELECT p.active FROM $1 pv INNER JOIN pdfs p ON p.id = pv.pdf_id
CONTEXT: SQL statement in PL/PgSQL function "pdf_active_check" near line 4

When I try this kind of substitution with TEXT type variables, there isn't
any problem. I can imagine it has something to do with TG_TABLE_NAME being
of type NAME, but I can't find anything in the manual about the difference
or how to convert. Google wasn't much help either, but I figured this is
fairly trivial for those on this list...

Stephen Cuppett
steve at cuppett dot com

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jasen Betts 2009-08-30 12:22:00 Re: export a schema / import as new schema
Previous Message Jasen Betts 2009-08-30 12:00:27 Re: best practise/pattern for large OR / LIKE searches