Re: Possible trigger bug? function call argument literalised

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Thiemo Kellner <thiemo(at)gelassene-pferde(dot)biz>
Cc: PostgreSQL General <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Possible trigger bug? function call argument literalised
Date: 2021-01-03 17:37:32
Message-ID: 2692292.1609695452@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thiemo Kellner <thiemo(at)gelassene-pferde(dot)biz> writes:
> create trigger CALCULATION_METHOD_BR_IU
> before insert on CALCULATION_METHOD
> for each row
> execute function METHOD_CHECK(current_schema);

> Executing such, the string "current_schema" gets literalised, i.e.
> single quoted:

Yup, per the CREATE TRIGGER documentation [1]:

arguments

An optional comma-separated list of arguments to be provided to the
function when the trigger is executed. The arguments are literal
string constants. Simple names and numeric constants can be written
here, too, but they will all be converted to strings. Please check the
description of the implementation language of the trigger function to
find out how these arguments can be accessed within the function; it
might be different from normal function arguments.

> I strongly feel this is a bug,

It's operating as designed. There might be scope for a feature
improvement here, but it'd be a far-from-trivial task, with probably
a lot of ensuing compatibility breakage.

regards, tom lane

[1] https://www.postgresql.org/docs/current/sql-createtrigger.html

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Thomas Flatley 2021-01-03 17:37:52 RE: Max# of tablespaces
Previous Message Thiemo Kellner 2021-01-03 17:34:47 Re: Possible trigger bug? function call argument literalised