@@ -12,39 +12,38 @@ PARTITION BY RANGE(id) INTERVAL (100)
12
12
PARTITION abc_inf VALUES LESS THAN (100),
13
13
PARTITION abc_100 VALUES LESS THAN (200)
14
14
);
15
- NOTICE: sequence "abc_seq" does not exist, skipping
16
15
ALTER TABLE abc ADD PARTITION abc_200 VALUES LESS THAN (400);
17
16
ALTER TABLE abc SPLIT PARTITION abc_200 AT (300) INTO (PARTITION abc_200, PARTITION abc_300);
18
17
ALTER TABLE abc MERGE PARTITIONS abc_100, abc_200, abc_300 INTO PARTITION abc_100;
19
18
SELECT * FROM pathman_partition_list;
20
- parent | partition | parttype | partattr | range_min | range_max
21
- --------+-----------+----------+---------- +-----------+-----------
22
- abc | abc_inf | 2 | id | NULL | 100
23
- abc | abc_100 | 2 | id | 100 | 400
19
+ parent | partition | parttype | expr | range_min | range_max
20
+ --------+-----------+----------+------+-----------+-----------
21
+ abc | abc_inf | 2 | id | | 100
22
+ abc | abc_100 | 2 | id | 100 | 400
24
23
(2 rows)
25
24
26
25
/* Drop partition should shift next partition's lower bound */
27
26
ALTER TABLE abc ADD PARTITION abc_400 VALUES LESS THAN (500);
28
27
ALTER TABLE abc DROP PARTITION abc_100;
29
28
SELECT * FROM pathman_partition_list;
30
- parent | partition | parttype | partattr | range_min | range_max
31
- --------+-----------+----------+---------- +-----------+-----------
32
- abc | abc_inf | 2 | id | NULL | 100
33
- abc | abc_400 | 2 | id | 100 | 500
29
+ parent | partition | parttype | expr | range_min | range_max
30
+ --------+-----------+----------+------+-----------+-----------
31
+ abc | abc_inf | 2 | id | | 100
32
+ abc | abc_400 | 2 | id | 100 | 500
34
33
(2 rows)
35
34
36
35
/* Inserting values into area not covered by partitions should create new partition */
37
36
INSERT INTO abc VALUES (550);
38
37
SELECT * FROM pathman_partition_list;
39
- parent | partition | parttype | partattr | range_min | range_max
40
- --------+-----------+----------+---------- +-----------+-----------
41
- abc | abc_inf | 2 | id | NULL | 100
42
- abc | abc_400 | 2 | id | 100 | 500
43
- abc | abc_1 | 2 | id | 500 | 600
38
+ parent | partition | parttype | expr | range_min | range_max
39
+ --------+-----------+----------+------+-----------+-----------
40
+ abc | abc_inf | 2 | id | | 100
41
+ abc | abc_400 | 2 | id | 100 | 500
42
+ abc | abc_1 | 2 | id | 500 | 600
44
43
(3 rows)
45
44
46
45
DROP TABLE abc CASCADE;
47
- NOTICE: drop cascades to 3 other objects
46
+ NOTICE: drop cascades to 4 other objects
48
47
/*
49
48
* Create range partitioned table (in contrast to interval-partitioned in terms
50
49
* of Oracle)
@@ -57,19 +56,19 @@ PARTITION BY RANGE(id)
57
56
);
58
57
/* Inserting should produce an error because interval hasn't been set */
59
58
INSERT INTO abc VALUES (250);
60
- ERROR: cannot find appropriate partition for key '250'
59
+ ERROR: cannot spawn new partition for key '250'
61
60
DROP TABLE abc CASCADE;
62
- NOTICE: drop cascades to 2 other objects
61
+ NOTICE: drop cascades to 3 other objects
63
62
/* Create hash partitioned table */
64
63
CREATE TABLE abc (id serial)
65
64
PARTITION BY HASH (id) PARTITIONS (4);
66
65
SELECT * FROM pathman_partition_list;
67
- parent | partition | parttype | partattr | range_min | range_max
68
- --------+-----------+----------+---------- +-----------+-----------
69
- abc | abc_0 | 1 | id | |
70
- abc | abc_1 | 1 | id | |
71
- abc | abc_2 | 1 | id | |
72
- abc | abc_3 | 1 | id | |
66
+ parent | partition | parttype | expr | range_min | range_max
67
+ --------+-----------+----------+------+-----------+-----------
68
+ abc | abc_0 | 1 | id | |
69
+ abc | abc_1 | 1 | id | |
70
+ abc | abc_2 | 1 | id | |
71
+ abc | abc_3 | 1 | id | |
73
72
(4 rows)
74
73
75
74
DROP TABLE abc CASCADE;
@@ -81,10 +80,10 @@ PARTITION BY HASH (id)
81
80
PARTITION abc_second
82
81
);
83
82
SELECT * FROM pathman_partition_list;
84
- parent | partition | parttype | partattr | range_min | range_max
85
- --------+------------+----------+---------- +-----------+-----------
86
- abc | abc_first | 1 | id | |
87
- abc | abc_second | 1 | id | |
83
+ parent | partition | parttype | expr | range_min | range_max
84
+ --------+------------+----------+------+-----------+-----------
85
+ abc | abc_first | 1 | id | |
86
+ abc | abc_second | 1 | id | |
88
87
(2 rows)
89
88
90
89
DROP TABLE abc CASCADE;
@@ -93,23 +92,22 @@ CREATE TABLE abc(id serial);
93
92
INSERT INTO abc SELECT generate_series(1, 1000);
94
93
ALTER TABLE abc PARTITION BY RANGE (id) START FROM (1) INTERVAL (100);
95
94
SELECT * FROM pathman_partition_list;
96
- parent | partition | parttype | partattr | range_min | range_max
97
- --------+-----------+----------+---------- +-----------+-----------
98
- abc | abc_inf | 2 | id | NULL | 1
99
- abc | abc_1 | 2 | id | 1 | 101
100
- abc | abc_2 | 2 | id | 101 | 201
101
- abc | abc_3 | 2 | id | 201 | 301
102
- abc | abc_4 | 2 | id | 301 | 401
103
- abc | abc_5 | 2 | id | 401 | 501
104
- abc | abc_6 | 2 | id | 501 | 601
105
- abc | abc_7 | 2 | id | 601 | 701
106
- abc | abc_8 | 2 | id | 701 | 801
107
- abc | abc_9 | 2 | id | 801 | 901
108
- abc | abc_10 | 2 | id | 901 | 1001
95
+ parent | partition | parttype | expr | range_min | range_max
96
+ --------+-----------+----------+------+-----------+-----------
97
+ abc | abc_inf | 2 | id | | 1
98
+ abc | abc_1 | 2 | id | 1 | 101
99
+ abc | abc_2 | 2 | id | 101 | 201
100
+ abc | abc_3 | 2 | id | 201 | 301
101
+ abc | abc_4 | 2 | id | 301 | 401
102
+ abc | abc_5 | 2 | id | 401 | 501
103
+ abc | abc_6 | 2 | id | 501 | 601
104
+ abc | abc_7 | 2 | id | 601 | 701
105
+ abc | abc_8 | 2 | id | 701 | 801
106
+ abc | abc_9 | 2 | id | 801 | 901
107
+ abc | abc_10 | 2 | id | 901 | 1001
109
108
(11 rows)
110
109
111
110
SELECT drop_partitions('abc');
112
- NOTICE: function public.abc_upd_trig_func() does not exist, skipping
113
111
NOTICE: 100 rows copied from abc_1
114
112
NOTICE: 100 rows copied from abc_2
115
113
NOTICE: 100 rows copied from abc_3
@@ -128,11 +126,11 @@ NOTICE: 0 rows copied from abc_inf
128
126
129
127
ALTER TABLE abc PARTITION BY HASH (id) PARTITIONS (3);
130
128
SELECT * FROM pathman_partition_list;
131
- parent | partition | parttype | partattr | range_min | range_max
132
- --------+-----------+----------+---------- +-----------+-----------
133
- abc | abc_0 | 1 | id | |
134
- abc | abc_1 | 1 | id | |
135
- abc | abc_2 | 1 | id | |
129
+ parent | partition | parttype | expr | range_min | range_max
130
+ --------+-----------+----------+------+-----------+-----------
131
+ abc | abc_0 | 1 | id | |
132
+ abc | abc_1 | 1 | id | |
133
+ abc | abc_2 | 1 | id | |
136
134
(3 rows)
137
135
138
136
DROP TABLE abc CASCADE;
0 commit comments