From: | PG Bug reporting form <noreply(at)postgresql(dot)org> |
---|---|
To: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Cc: | dwilches(at)gmail(dot)com |
Subject: | BUG #15873: Attaching a partition fails because it sees deleted columns |
Date: | 2019-06-25 21:30:44 |
Message-ID: | 15873-8c61945d6b3ef87c@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: 15873
Logged by: DWilches
Email address: dwilches(at)gmail(dot)com
PostgreSQL version: 11.2
Operating system: Red Hat 4.8.5-11
Description:
I'm trying to attach a partition to one of my partitioned tables and I'm
getting an error:
ERROR: 42703: attribute 4 of type my_table_000000_partition has been
dropped
If I query the pg_attribute table I can see a column in position 4 that was
deleted years ago, it says now `pg.dropped.4`. The new 4th column is the one
used for the range partition (`my_timestamp`):
select attrelid::regclass, attnum, attname
from pg_attribute
where attrelid = 'my_table_000000_partition'::regclass::oid and
attnum > 0;
Field `my_timestamp` is the field I'm using for range partitioning.
attrelid | attnum | attname
-------------------------------+--------+------------------------------
my_table_000000_partition | 1 | id
my_table_000000_partition | 2 | cust_id
my_table_000000_partition | 3 | some_field_A
my_table_000000_partition | 4 | ........pg.dropped.4........
my_table_000000_partition | 5 | my_timestamp
my_table_000000_partition | 6 | ........pg.dropped.6........
my_table_000000_partition | 7 | some_field_B
.... some more fields ...
I can reproduce the problem locally, but only with this table that already
has the issue.
This is how I created my partition:
CREATE TABLE my_table_201906_partition (LIKE my_table_000000_partition
INCLUDING ALL)
This CREATE TABLE worked ok. `my_table_000000_partition` is the default
partition of its parent `my_table`.
And this is how I'm trying to attach it to the table:
ALTER TABLE my_table ATTACH PARTITION my_table_201906_partition
FOR VALUES FROM ('2019-06-01 00:00:00+00') TO ('2019-07-01
00:00:00+00');
The full error is:
```
INFO: 00000: partition constraint for table "my_table_201906_partition" is
implied by existing constraints
LOCATION: QueuePartitionConstraintValidation, tablecmds.c:14540
ERROR: 42703: attribute 4 of type my_table_000000_partition has been
dropped
LOCATION: CheckVarSlotCompatibility, execExprInterp.c:1880
Time: 10.571 ms
```
So far my workaround is:
1. Detach the default partition
2. Attach the new partition
3. Reattach the default partition
This way the issue doesn't manifest.
And some technical details that maybe you'll ask for:
* I'm running on RDS. This DB used to be a Postgres 9.5 then we migrated to
9.6 then to 10.x and now to 11.2
* Exact version as returned by `select version()` is:
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 11.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5
20150623 (Red Hat 4.8.5-11), 64-bit
(1 row)
There is a bit more of info here:
https://stackoverflow.com/questions/56744481/postgres-error-on-partitioned-table-error-42703-attribute-4-of-type-x-has-been
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2019-06-25 21:49:56 | Re: BUG #15873: Attaching a partition fails because it sees deleted columns |
Previous Message | Kassym Dorsel | 2019-06-25 15:07:13 | Re: BUG #15869: Custom aggregation returns null when parallelized |