@@ -72,12 +72,11 @@ EXPLAIN (COSTS OFF) SELECT * FROM test.hash_rel WHERE (value * value2) = 5;
72
72
(3 rows)
73
73
74
74
/* range */
75
- CREATE TABLE test.range_rel (
76
- id SERIAL PRIMARY KEY,
77
- dt TIMESTAMP,
78
- txt TEXT);
75
+ CREATE TABLE test.range_rel (id SERIAL PRIMARY KEY, dt TIMESTAMP, txt TEXT);
79
76
INSERT INTO test.range_rel (dt, txt)
80
77
SELECT g, md5(g::TEXT) FROM generate_series('2015-01-01', '2020-04-30', '1 month'::interval) as g;
78
+ SELECT pathman.create_range_partitions('test.range_rel', 'RANDOM()', '15 years'::INTERVAL, '1 year'::INTERVAL, 10);
79
+ ERROR: start value is less than min value of "random()"
81
80
SELECT pathman.create_range_partitions('test.range_rel', 'AGE(dt, ''2000-01-01''::DATE)',
82
81
'15 years'::INTERVAL, '1 year'::INTERVAL, 10);
83
82
NOTICE: sequence "range_rel_seq" does not exist, skipping
@@ -88,13 +87,68 @@ NOTICE: sequence "range_rel_seq" does not exist, skipping
88
87
89
88
INSERT INTO test.range_rel_1 (dt, txt) VALUES ('2020-01-01'::DATE, md5('asdf'));
90
89
ERROR: new row for relation "range_rel_1" violates check constraint "pathman_range_rel_1_check"
91
- SELECT * FROM test.range_rel_6;
92
- id | dt | txt
93
- ----+--------------------------+----------------------------------
94
- 61 | Wed Jan 01 00:00:00 2020 | 339e0b1f73322ffca5ec77523ff1adfa
95
- 62 | Sat Feb 01 00:00:00 2020 | 3c09dde93bf2730744668c266845a828
96
- 63 | Sun Mar 01 00:00:00 2020 | e6c8aaac1e4a1eb6594309a2fd24a5e5
97
- 64 | Wed Apr 01 00:00:00 2020 | 8cea991c596b35cc412ad489af424341
98
- (4 rows)
90
+ SELECT COUNT(*) FROM test.range_rel_6;
91
+ count
92
+ -------
93
+ 4
94
+ (1 row)
99
95
100
96
INSERT INTO test.range_rel_6 (dt, txt) VALUES ('2020-01-01'::DATE, md5('asdf'));
97
+ SELECT COUNT(*) FROM test.range_rel_6;
98
+ count
99
+ -------
100
+ 5
101
+ (1 row)
102
+
103
+ EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel WHERE (AGE(dt, '2000-01-01'::DATE)) = '18 years'::interval;
104
+ QUERY PLAN
105
+ -------------------------------------------------------------------------------------------------------------
106
+ Append
107
+ -> Seq Scan on range_rel_4
108
+ Filter: (age(dt, 'Sat Jan 01 00:00:00 2000'::timestamp without time zone) = '@ 18 years'::interval)
109
+ (3 rows)
110
+
111
+ SELECT pathman.create_update_triggers('test.range_rel');
112
+ create_update_triggers
113
+ ------------------------
114
+
115
+ (1 row)
116
+
117
+ SELECT COUNT(*) FROM test.range_rel;
118
+ count
119
+ -------
120
+ 65
121
+ (1 row)
122
+
123
+ SELECT COUNT(*) FROM test.range_rel_1;
124
+ count
125
+ -------
126
+ 12
127
+ (1 row)
128
+
129
+ SELECT COUNT(*) FROM test.range_rel_2;
130
+ count
131
+ -------
132
+ 12
133
+ (1 row)
134
+
135
+ UPDATE test.range_rel SET dt = '2016-12-01' WHERE dt >= '2015-10-10' AND dt <= '2017-10-10';
136
+ /* counts in partitions should be changed */
137
+ SELECT COUNT(*) FROM test.range_rel;
138
+ count
139
+ -------
140
+ 65
141
+ (1 row)
142
+
143
+ SELECT COUNT(*) FROM test.range_rel_1;
144
+ count
145
+ -------
146
+ 10
147
+ (1 row)
148
+
149
+ SELECT COUNT(*) FROM test.range_rel_2;
150
+ count
151
+ -------
152
+ 24
153
+ (1 row)
154
+
0 commit comments