It's kind of difficult to figure out what is going on. Apparently, the
function that is called "store.add_history_master()" thinks tg_table_name
is a COLUMN in a table, as evidenced by
"ERROR: column "tg_table_name" does not exist"

Offhand, you probably want to assign TG_TABLE_NAME to a var and then call
the function using the var.
EG:
DECLARE
  V_TABLE name := TG_TABLE_NAME;

SELECT store.add_history_master($V_TABLE, ....


Would you be so kind as to grace us with
A. The VERSION of PostgreSQL you are working with
B. The O/S you are working with.
C. The complete called function IE: store.add_history_master(..)

On Sun, Dec 27, 2015 at 1:27 PM, Susan Hurst <susan.hu...@brookhurstdata.com
> wrote:

>
> What is the correct syntax for calling a function from within an event
> trigger, passing in the table name and schema name as parameters to the
> function?
>
> The goal is to capture DDL changes to tables for the purpose of turning on
> (or off) auditing for production tables.  The history_master table controls
> which tables are to be audited.  I already have a procedure that creates
> the trigger for an new (or altered) table that tracks DML changes in a
> history table.  While I would be conscientious about including DML triggers
> in my tables definitions, I cannot count on others to do so.
>
> After I get this to work, I want to capture altered DDL as well so that I
> can alter the corresponding history table with the correct column
> definitions.
>
> The following code does not work, but I think you can get the idea of what
> I'm trying to accomplish.  I would welcome any alternate suggestions that
> you may have.  I'm using version 9.4.4. on FreeBSD 8.4.
>
> Thanks for your help!
>
> Sue
>
> Code:
> -----
>
> CREATE OR REPLACE FUNCTION insert_history_master()
>         RETURNS event_trigger
>         LANGUAGE plpgsql
> AS $$
> BEGIN
>         select store.add_history_master (tg_table_name, tg_schema_name)
>         ;
> END;
> $$;
>
> CREATE EVENT TRIGGER insert_history_master ON ddl_command_start
>    EXECUTE PROCEDURE insert_history_master();
>
> Error Message:
> --------------
>
> ERROR:  column "tg_table_name" does not exist
> LINE 1: select store.add_history_master (tg_table_name, tg_schema_na...
>                                          ^
> QUERY:  select store.add_history_master (tg_table_name, tg_schema_name)
> CONTEXT:  PL/pgSQL function insert_history_master() line 3 at SQL statement
>
> ********** Error **********
>
> ERROR: column "tg_table_name" does not exist
> SQL state: 42703
> Context: PL/pgSQL function insert_history_master() line 3 at SQL statement
>
>
>
>
> --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Susan E Hurst
> Principal Consultant
> Email: susan.hu...@brookhurstdata.com
> Mobile: 314-486-3261
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>



-- 
*Melvin Davidson*
I reserve the right to fantasize.  Whether or not you
wish to share my fantasy is entirely up to you.

Reply via email to