Re: possible proposal plpgsql GET DIAGNOSTICS oid = PG_ROUTINE_OID

From: Kirk Wolak <wolakk(at)gmail(dot)com>
To: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
Cc: Julien Rouhaud <rjuju123(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: possible proposal plpgsql GET DIAGNOSTICS oid = PG_ROUTINE_OID
Date: 2023-02-08 15:56:04
Message-ID: CACLU5mSUj9cbGB9wQAABnOgYGUg95awzBhhTB1P79fL-NfYTDw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Feb 8, 2023 at 3:08 AM Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
wrote:

> hi
>
> st 8. 2. 2023 v 7:33 odesílatel Julien Rouhaud <rjuju123(at)gmail(dot)com>
> napsal:
>
>> On Tue, Feb 07, 2023 at 08:48:22PM +0100, Pavel Stehule wrote:
>> >
>> > GET DIAGNOSTICS _oid = PG_ROUTINE_OID;
>> > RAISE NOTICE '... % ... %', _oid, _oid::regproc::text;
>> >
>> > Do you think it can be useful feature?
>>
>> +1, it would have been quite handy in a few of my projects.
>>
>
> it can looks like that
>
> create or replace function foo(a int)
> returns int as $$
> declare s text; n text; o oid;
> begin
> get diagnostics s = pg_current_routine_signature,
> n = pg_current_routine_name,
> o = pg_current_routine_oid;
> raise notice 'sign:%, name:%, oid:%', s, n, o;
> return a;
> end;
> $$ language plpgsql;
> CREATE FUNCTION
> (2023-02-08 09:04:03) postgres=# select foo(10);
> NOTICE: sign:foo(integer), name:foo, oid:16392
> ┌─────┐
> │ foo │
> ╞═════╡
> │ 10 │
> └─────┘
> (1 row)
>
> The name - pg_routine_oid can be confusing, because there is not clean if
> it is oid of currently executed routine or routine from top of exception
>
> Regards
>
> Pavel
>

I agree that the name changed to pg_current_routine_... makes the most
sense, great call...

+1

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Justin Pryzby 2023-02-08 15:56:44 Re: typos
Previous Message Andres Freund 2023-02-08 15:49:50 Re: [PATCH] Make ON CONFLICT DO NOTHING and ON CONFLICT DO UPDATE consistent