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...