@@ -85,8 +85,8 @@ ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
85
85
PARTITION sales_mar2022 FOR VALUES FROM ('2022-03-01') TO ('2022-04-01'),
86
86
PARTITION sales_apr2022 FOR VALUES FROM ('2022-04-01') TO ('2022-06-01'));
87
87
ERROR: upper bound of partition "sales_apr2022" is greater than upper bound of split partition
88
- LINE 4: PARTITION sales_apr2022 FOR VALUES FROM ('2022-04-01') TO...
89
- ^
88
+ LINE 4: ... sales_apr2022 FOR VALUES FROM ('2022-04-01') TO ('2022-06-0 ...
89
+ ^
90
90
-- ERROR: lower bound of partition "sales_mar2022" conflicts with upper bound of previous partition "sales_feb2022"
91
91
ALTER TABLE sales_range SPLIT PARTITION sales_feb_mar_apr2022 INTO
92
92
(PARTITION sales_feb2022 FOR VALUES FROM ('2022-02-01') TO ('2022-03-01'),
@@ -1494,6 +1494,25 @@ SELECT c.oid::pg_catalog.regclass, pg_catalog.pg_get_expr(c.relpartbound, c.oid)
1494
1494
(2 rows)
1495
1495
1496
1496
DROP TABLE t;
1497
+ -- Check new partitions inherits parent's table access method
1498
+ CREATE ACCESS METHOD partition_split_heap TYPE TABLE HANDLER heap_tableam_handler;
1499
+ CREATE TABLE t (i int) PARTITION BY RANGE (i) USING partition_split_heap;
1500
+ CREATE TABLE tp_0_2 PARTITION OF t FOR VALUES FROM (0) TO (2);
1501
+ ALTER TABLE t SPLIT PARTITION tp_0_2 INTO
1502
+ (PARTITION tp_0_1 FOR VALUES FROM (0) TO (1),
1503
+ PARTITION tp_1_2 FOR VALUES FROM (1) TO (2));
1504
+ SELECT c.relname, a.amname
1505
+ FROM pg_class c JOIN pg_am a ON c.relam = a.oid
1506
+ WHERE c.oid IN ('t'::regclass, 'tp_0_1'::regclass, 'tp_1_2'::regclass);
1507
+ relname | amname
1508
+ ---------+----------------------
1509
+ t | partition_split_heap
1510
+ tp_0_1 | partition_split_heap
1511
+ tp_1_2 | partition_split_heap
1512
+ (3 rows)
1513
+
1514
+ DROP TABLE t;
1515
+ DROP ACCESS METHOD partition_split_heap;
1497
1516
--
1498
1517
DROP SCHEMA partition_split_schema;
1499
1518
DROP SCHEMA partition_split_schema2;
0 commit comments