Ed Sabol <edwardjsabol@gmail.com> writes:
> Using PostgreSQL 15.16, I have some SQL for creating a materialized view that's inside a larger transaction which
randomlyemits the following error:
> ERROR: duplicate key value violates unique constraint "pg_type_typname_nsp_index"
> DETAIL: Key (typname, typnamespace)=(largetable, 20488) already exists.
Huh. Does it always mention 20488?
> I've tried the following queries to try to figure out what typnamespace = 20488 refers to:
> SELECT nspname FROM pg_namespace WHERE oid = 20488;
> SELECT count(*) FROM pg_catalog.pg_type WHERE typname = 'targetable' AND typnamespace = 20488;
> Neither query provides any useful information.
What do you mean by "any useful information", exactly? Do these show
that there is no pg_namespace row with oid = 20488?
If that is the case, I'd bet on index corruption in the indexes of
pg_type and/or pg_namespace. REINDEX might help.
regards, tom lane