Bug with concurrent CREATE OR REPLACE (?)

From: Daniil Davydov <3danissimo(at)gmail(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Bug with concurrent CREATE OR REPLACE (?)
Date: 2025-06-26 15:08:25
Message-ID: CAJDiXghv2JF5zbLyyybokWKM+-GYsTG+hw7xseLNgJOJwf0+8w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,
I found that this command sequence leads to an error. :

session 1:
begin;
create or replace function *some funcion*;

session 2:
begin;
create or replace function *same function as above*;

session 1:
commit;

session 2:
ERROR: duplicate key value violates unique constraint
"pg_proc_proname_args_nsp_index"

Error causes, because both transactions check catcache, decide that
function doesn't exist and then try to insert appropriate tuples into
pg_proc and its index (which has a unique constraint).
I found thread [1] in which Robert Haas said that this behaviour is
wrong, but nobody has enough time to fix it.

My question is, can we consider this behavior to be a mistake or a
normal occurrence?

[1] https://www.postgresql.org/message-id/flat/4B9EA2FD.8090902%40agliodbs.com

--
Best regards,
Daniil Davydov

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Matheus Alcantara 2025-06-26 15:10:40 Re: SCRAM pass-through authentication for postgres_fdw
Previous Message Fujii Masao 2025-06-26 15:03:43 Re: Extend COPY FROM with HEADER <integer> to skip multiple lines