On Wed, Feb 8, 2023 at 10:56 AM Kirk Wolak <wol...@gmail.com> wrote:
> On Wed, Feb 8, 2023 at 3:08 AM Pavel Stehule <pavel.steh...@gmail.com> > wrote: > >> hi >> >> st 8. 2. 2023 v 7:33 odesílatel Julien Rouhaud <rjuju...@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 > Okay, I reviewed this. I tested it (allocating too small of varchar's for values, various "signature types"), and also a performance test... Wow, on my VM, 10,000 Calls in a loop was 2-4ms... The names are clear. Again, I tested with various options, and including ROW_COUNT, or not. This functions PERFECTLY.... Except there are no documentation changes. Because of that, I set it to Waiting on Author. Which might be unfair, because I could take a stab at doing the documentation (but docs are not compiling on my setup yet). The documentation changes are simple enough. If I can get the docs compiled on my rig, I will see if I can make the changes, and post an updated patch, that contains both... But I don't want to be stepping on toes, or having it look like I am taking credit. Regards - Kirk