Thread: Bug with concurrent CREATE OR REPLACE (?)
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
Hi On 26.06.25 17:08, Daniil Davydov wrote: > 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 Not entirely sure it's related (different error message), but a similar problem was mentioned in this thread[1] Best, Jim 1 - https://www.postgresql.org/message-id/flat/20250331200057.00a62760966a821d484ea904@sraoss.co.jp