[HACKERS] Default Partition for Range - Mailing list pgsql-hackers

From Beena Emerson
Subject [HACKERS] Default Partition for Range
Date
Msg-id CAOG9ApEYj34fWMcvBMBQ-YtqR9fTdXhdN82QEKG0SVZ6zeL1xg@mail.gmail.com
Whole thread Raw
Responses Re: [HACKERS] Default Partition for Range  (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>)
List pgsql-hackers
Hello,

Many were in favour of the default partition for tables partitioned by range [1]. 
Please find attached the WIP patch for the same which can be applied over the default_partition_v12.patch.

Syntax: Same as agreed for list:
CREATE PARTITION <part_name> PARTITION OF <parent_tbl> DEFAULT;

Default Constraint:
Negation constraints of all existing partitions.

One case:
CREATE TABLE range1 (a int, b int) PARTITION by range (a);
CREATE TABLE range1_1 PARTITION OF range1 FOR VALUES FROM (1) TO (5);
CREATE TABLE range1_2 PARTITION OF range1 FOR VALUES FROM (7) TO (10);
CREATE TABLE range1_def PARTITION OF range1 DEFAULT;
\d+ range1_def
                                Table "public.range1_def"
 Column |  Type   | Collation | Nullable | Default | Storage | Stats target | Description
--------+---------+-----------+----------+---------+---------+--------------+-------------
 a      | integer |           | not null |         | plain   |              |
 b      | integer |           |          |         | plain   |              |
Partition of: range1 DEFAULT
Partition constraint: (((a < 1) OR (a >= 5)) AND ((a < 7) OR (a >= 10)))

It still needs more work: 
1. Handling addition of new partition after default, insertion of data, few more bugs
2. Documentation
3. Regression tests


--

Beena Emerson

EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment

pgsql-hackers by date:

Previous
From: Masahiko Sawada
Date:
Subject: Re: [HACKERS] Multiple table synchronizations are processed serially
Next
From: Beena Emerson
Date:
Subject: Re: [HACKERS] Adding support for Default partition in partitioning