BUG #16758: create temporary table with the same name loses defaults, indexes

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: marc(at)guidance(dot)nl
Subject: BUG #16758: create temporary table with the same name loses defaults, indexes
Date: 2020-12-01 14:09:49
Message-ID: 16758-840e84a6cfab276d@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 16758
Logged by: Marc Boeren
Email address: marc(at)guidance(dot)nl
PostgreSQL version: 12.5
Operating system: macOS / docker-debian / CentOR
Description:

In 12.5 (and later), in a clean, empty database (in this case the default
12.5 docker image), when I execute the following lines:

create table xx (name text NOT NULL default '', PRIMARY KEY(name));

create temporary table xx
(like xx including DEFAULTS including CONSTRAINTS including
INDEXES);

select c.relname, n.nspname
from pg_namespace n
join pg_class c on n.oid=c.relnamespace
where (c.relname LIKE 'x%') order by n.nspname, c.relname;

I get this:

relname nspname
"xx" "pg_temp_8"
"xx" "public"
"xx_pkey" "public"

I expected the primary key to be copied too. Comparing the results from 12.4
(and earlier versions):

relname nspname
"xx" "pg_temp_8"
"xx_pkey" "pg_temp_8"
"xx" "public"
"xx_pkey" "public"

I couldn't find anything in the changelog for 12.5 that indicates it is
intentional. I checked against 13.1 too, same problem.
The actual table is a bit larger (about 100 fields, no relations) and loses
the primary key and all indexes and defaults since 12.5. The SQL above is
the shortest form that demonstrates the issue.

Thanks, Marc

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Marc Boeren 2020-12-01 14:18:12 Re: BUG #16758: create temporary table with the same name loses defaults, indexes
Previous Message Zhiyu ZY13 Xu 2020-12-01 12:38:27 答复: [External] Re: pgadmin--pgagent---the process hang by unknow reasons