BUG #18131: PL/pgSQL: regclass procedure parameter wrongly memoized(?)
От | PG Bug reporting form |
---|---|
Тема | BUG #18131: PL/pgSQL: regclass procedure parameter wrongly memoized(?) |
Дата | |
Msg-id | 18131-576854e79c5cd264@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #18131: PL/pgSQL: regclass procedure parameter wrongly memoized(?)
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 18131 Logged by: Christian Stork Email address: cstork+postgresql@gmail.com PostgreSQL version: 14.9 Operating system: Ubuntu 22.04 Description: The following condensed recipe reproduces the error: create procedure callee(t regclass) language plpgsql as $body$ begin raise notice 'callee: oid = %', t::oid; execute 'table ' || t; end; $body$; create procedure caller() language plpgsql as $body$ begin create table table_name (); raise notice 'caller: oid = %', 'table_name'::regclass::oid; call callee('table_name'); drop table table_name; end; $body$; call caller(); -- OK call caller(); -- ERROR: callee executed with OID of previous invocation! -- Relevant output (Ubuntu 14.9-1.pgdg22.04+1): -- ... -- NOTICE: caller: oid = 24769724 -- NOTICE: callee: oid = 24769724 -- CALL <---- first statement completed successfully -- NOTICE: caller: oid = 24769727 -- NOTICE: callee: oid = 24769724 <---- should be the same as line above -- ERROR: syntax error at or near "24769724" -- LINE 1: table 24769724 <---- no more table with this OID in pg_catalog, hence OID instead of table name, I assume -- ...
В списке pgsql-bugs по дате отправления: