From: | Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com> |
---|---|
To: | Rajkumar Raghuwanshi <rajkumar(dot)raghuwanshi(at)enterprisedb(dot)com> |
Cc: | "Sven R(dot) Kunze" <srkunze(at)mail(dot)de>, Rahila Syed <rahilasyed90(at)gmail(dot)com>, amul sul <sulamul(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Keith Fiske <keith(at)omniti(dot)com>, Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>, Rushabh Lathia <rushabh(dot)lathia(at)gmail(dot)com>, David Steele <david(at)pgmasters(dot)net>, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Adding support for Default partition in partitioning |
Date: | 2017-05-05 07:16:42 |
Message-ID: | CAOgcT0Ppmv0NBpTenJKDa+5PmpC200cG0f_dk+OwoiquPsM24Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi Rahila,
I am not able add a new partition if default partition is further
partitioned
with default partition.
Consider example below:
postgres=# CREATE TABLE test ( a int, b int, c int) PARTITION BY LIST (a);
CREATE TABLE
postgres=# CREATE TABLE test_p1 PARTITION OF test FOR VALUES IN(4, 5, 6, 7,
8);
CREATE TABLE
postgres=# CREATE TABLE test_pd PARTITION OF test DEFAULT PARTITION BY
LIST(b);
CREATE TABLE
postgres=# CREATE TABLE test_pd_pd PARTITION OF test_pd DEFAULT;
CREATE TABLE
postgres=# INSERT INTO test VALUES (20, 24, 12);
INSERT 0 1
*postgres=# CREATE TABLE test_p2 PARTITION OF test FOR VALUES IN(15);*
*ERROR: could not open file "base/12335/16420": No such file or directory*
Thanks,
Jeevan Ladhe
On Fri, May 5, 2017 at 11:55 AM, Rajkumar Raghuwanshi <
rajkumar(dot)raghuwanshi(at)enterprisedb(dot)com> wrote:
> Hi Rahila,
>
> pg_restore is failing for default partition, dump file still storing old
> syntax of default partition.
>
> create table lpd (a int, b int, c varchar) partition by list(a);
> create table lpd_d partition of lpd DEFAULT;
>
> create database bkp owner 'edb';
> grant all on DATABASE bkp to edb;
>
> --take plain dump of existing database
> \! ./pg_dump -f lpd_test.sql -Fp -d postgres
>
> --restore plain backup to new database bkp
> \! ./psql -f lpd_test.sql -d bkp
>
> psql:lpd_test.sql:63: ERROR: syntax error at or near "DEFAULT"
> LINE 2: FOR VALUES IN (DEFAULT);
> ^
>
>
> vi lpd_test.sql
>
> --
> -- Name: lpd; Type: TABLE; Schema: public; Owner: edb
> --
>
> CREATE TABLE lpd (
> a integer,
> b integer,
> c character varying
> )
> PARTITION BY LIST (a);
>
>
> ALTER TABLE lpd OWNER TO edb;
>
> --
> -- Name: lpd_d; Type: TABLE; Schema: public; Owner: edb
> --
>
> CREATE TABLE lpd_d PARTITION OF lpd
> FOR VALUES IN (DEFAULT);
>
>
> ALTER TABLE lpd_d OWNER TO edb;
>
>
> Thanks,
> Rajkumar
>
From | Date | Subject | |
---|---|---|---|
Next Message | Albe Laurenz | 2017-05-05 07:27:58 | Re: CTE inlining |
Previous Message | Heikki Linnakangas | 2017-05-05 07:15:17 | Re: Authentication tests, and plain 'password' authentication with a SCRAM verifier |