Csaba Nagy <nagy@xxxxxxxxxxxxxx> writes: > create temp table temp_report ...; > ... do some processing using this table... > drop table temp_report; > commit; > This code occasionally triggered the following error (couldn't reliably > reproduce): > ERROR: type "temp_report" already exists BTW, when this happens, does the error persist? If it's a race condition you'd expect not (because the guy who successfully created the temp table would soon drop it again). When we saw this problem before, we were speculating that a temp table's pg_type row had somehow not gotten dropped during table drop, which'd lead to a persistent failure. Note that a "persistent" failure could still only manifest occasionally, if the unwanted pg_type row were in a high-numbered pg_temp_NNN schema that doesn't get used often. So i guess the correct thing to do is "select oid, xmin from pg_type where typname = 'temp_report'" and see if there are any long-lived entries (xmin far away from the others would be a tipoff). regards, tom lane