Re: PL/Perl function signatures - Mailing list pgsql-general

From Luca Ferrari
Subject Re: PL/Perl function signatures
Date
Msg-id CAKoxK+4T6nKwPMQs3fsZs6x+RT8GOZtcgOTNRRfqihCMndguwA@mail.gmail.com
Whole thread Raw
In response to PL/Perl function signatures  (Luca Ferrari <fluca1978@gmail.com>)
List pgsql-general
On Mon, Aug 28, 2023 at 9:53 AM Luca Ferrari <fluca1978@gmail.com> wrote:
>
> testdb=# create or replace function f( a int )
> returns text
> as $$
> use feature 'signatures';

shame on me!
Clearly this cannot work because at the 'use' stage the function is
already running, so the signatures feature is evaluated in the context
of the function itself.
However, this also does not work:

postgres=# alter system set plperl.on_init to 'use feature q/signatures/;';

As far as I understand, the plperl code in plperl.c does the following
for a non-array input parameter:

sv = (SV *) DatumGetPointer(OidFunctionCall1(funcid, fcinfo->args[i].value));

and that does not put the argument name, so it seems to me there is no
way to handle this at the moment.
But that code is too scary for me!

Luca



pgsql-general by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Postgres service is not starting
Next
From: Erik Wienhold
Date:
Subject: Re: Restoring default privileges on objects