Re: possible proposal plpgsql GET DIAGNOSTICS oid = PG_ROUTINE_OID - Mailing list pgsql-hackers

From Kirk Wolak
Subject Re: possible proposal plpgsql GET DIAGNOSTICS oid = PG_ROUTINE_OID
Date
Msg-id CACLU5mSUj9cbGB9wQAABnOgYGUg95awzBhhTB1P79fL-NfYTDw@mail.gmail.com
Whole thread Raw
In response to Re: possible proposal plpgsql GET DIAGNOSTICS oid = PG_ROUTINE_OID  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: possible proposal plpgsql GET DIAGNOSTICS oid = PG_ROUTINE_OID
List pgsql-hackers
On Wed, Feb 8, 2023 at 3:08 AM Pavel Stehule <pavel.stehule@gmail.com> wrote:
hi

st 8. 2. 2023 v 7:33 odesílatel Julien Rouhaud <rjuju123@gmail.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   

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: [PATCH] Make ON CONFLICT DO NOTHING and ON CONFLICT DO UPDATE consistent
Next
From: Justin Pryzby
Date:
Subject: Re: typos