Skip to content

Commit 5577a71

Browse files
committed
Use half-open interval notation in without_overlaps tests
This way, the input literals match the output in any error messages. Author: Paul A. Jungwirth <pj@illuminatedcomputing.com> Discussion: https://www.postgresql.org/message-id/flat/CA+renyUApHgSZF9-nd-a0+OPGharLQLO=mDHcY4_qQ0+noCUVg@mail.gmail.com
1 parent 49b579f commit 5577a71

File tree

2 files changed

+42
-42
lines changed

2 files changed

+42
-42
lines changed

src/test/regress/expected/without_overlaps.out

+21-21
Original file line numberDiff line numberDiff line change
@@ -276,18 +276,18 @@ DROP TABLE temporal3;
276276
-- test PK inserts
277277
--
278278
-- okay:
279-
INSERT INTO temporal_rng VALUES ('[1,1]', daterange('2018-01-02', '2018-02-03'));
280-
INSERT INTO temporal_rng VALUES ('[1,1]', daterange('2018-03-03', '2018-04-04'));
281-
INSERT INTO temporal_rng VALUES ('[2,2]', daterange('2018-01-01', '2018-01-05'));
282-
INSERT INTO temporal_rng VALUES ('[3,3]', daterange('2018-01-01', NULL));
279+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[1,2)', daterange('2018-01-02', '2018-02-03'));
280+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[1,2)', daterange('2018-03-03', '2018-04-04'));
281+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[2,3)', daterange('2018-01-01', '2018-01-05'));
282+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[3,4)', daterange('2018-01-01', NULL));
283283
-- should fail:
284-
INSERT INTO temporal_rng VALUES ('[1,1]', daterange('2018-01-01', '2018-01-05'));
284+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[1,2)', daterange('2018-01-01', '2018-01-05'));
285285
ERROR: conflicting key value violates exclusion constraint "temporal_rng_pk"
286286
DETAIL: Key (id, valid_at)=([1,2), [2018-01-01,2018-01-05)) conflicts with existing key (id, valid_at)=([1,2), [2018-01-02,2018-02-03)).
287-
INSERT INTO temporal_rng VALUES (NULL, daterange('2018-01-01', '2018-01-05'));
287+
INSERT INTO temporal_rng (id, valid_at) VALUES (NULL, daterange('2018-01-01', '2018-01-05'));
288288
ERROR: null value in column "id" of relation "temporal_rng" violates not-null constraint
289289
DETAIL: Failing row contains (null, [2018-01-01,2018-01-05)).
290-
INSERT INTO temporal_rng VALUES ('[3,3]', NULL);
290+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[3,4)', NULL);
291291
ERROR: null value in column "valid_at" of relation "temporal_rng" violates not-null constraint
292292
DETAIL: Failing row contains ([3,4), null).
293293
--
@@ -303,8 +303,8 @@ CREATE TABLE temporal3 (
303303
);
304304
INSERT INTO temporal3 (id, valid_at, id2, name)
305305
VALUES
306-
('[1,1]', daterange('2000-01-01', '2010-01-01'), '[7,7]', 'foo'),
307-
('[2,2]', daterange('2000-01-01', '2010-01-01'), '[9,9]', 'bar')
306+
('[1,2)', daterange('2000-01-01', '2010-01-01'), '[7,8)', 'foo'),
307+
('[2,3)', daterange('2000-01-01', '2010-01-01'), '[9,10)', 'bar')
308308
;
309309
DROP TABLE temporal3;
310310
--
@@ -331,12 +331,12 @@ CREATE TABLE temporal_partitioned (
331331
name text,
332332
CONSTRAINT temporal_paritioned_pk PRIMARY KEY (id, valid_at WITHOUT OVERLAPS)
333333
) PARTITION BY LIST (id);
334-
CREATE TABLE tp1 PARTITION OF temporal_partitioned FOR VALUES IN ('[1,1]', '[2,2]');
335-
CREATE TABLE tp2 PARTITION OF temporal_partitioned FOR VALUES IN ('[3,3]', '[4,4]');
336-
INSERT INTO temporal_partitioned VALUES
337-
('[1,1]', daterange('2000-01-01', '2000-02-01'), 'one'),
338-
('[1,1]', daterange('2000-02-01', '2000-03-01'), 'one'),
339-
('[3,3]', daterange('2000-01-01', '2010-01-01'), 'three');
334+
CREATE TABLE tp1 PARTITION OF temporal_partitioned FOR VALUES IN ('[1,2)', '[2,3)');
335+
CREATE TABLE tp2 PARTITION OF temporal_partitioned FOR VALUES IN ('[3,4)', '[4,5)');
336+
INSERT INTO temporal_partitioned (id, valid_at, name) VALUES
337+
('[1,2)', daterange('2000-01-01', '2000-02-01'), 'one'),
338+
('[1,2)', daterange('2000-02-01', '2000-03-01'), 'one'),
339+
('[3,4)', daterange('2000-01-01', '2010-01-01'), 'three');
340340
SELECT * FROM temporal_partitioned ORDER BY id, valid_at;
341341
id | valid_at | name
342342
-------+-------------------------+-------
@@ -366,12 +366,12 @@ CREATE TABLE temporal_partitioned (
366366
name text,
367367
CONSTRAINT temporal_paritioned_uq UNIQUE (id, valid_at WITHOUT OVERLAPS)
368368
) PARTITION BY LIST (id);
369-
CREATE TABLE tp1 PARTITION OF temporal_partitioned FOR VALUES IN ('[1,1]', '[2,2]');
370-
CREATE TABLE tp2 PARTITION OF temporal_partitioned FOR VALUES IN ('[3,3]', '[4,4]');
371-
INSERT INTO temporal_partitioned VALUES
372-
('[1,1]', daterange('2000-01-01', '2000-02-01'), 'one'),
373-
('[1,1]', daterange('2000-02-01', '2000-03-01'), 'one'),
374-
('[3,3]', daterange('2000-01-01', '2010-01-01'), 'three');
369+
CREATE TABLE tp1 PARTITION OF temporal_partitioned FOR VALUES IN ('[1,2)', '[2,3)');
370+
CREATE TABLE tp2 PARTITION OF temporal_partitioned FOR VALUES IN ('[3,4)', '[4,5)');
371+
INSERT INTO temporal_partitioned (id, valid_at, name) VALUES
372+
('[1,2)', daterange('2000-01-01', '2000-02-01'), 'one'),
373+
('[1,2)', daterange('2000-02-01', '2000-03-01'), 'one'),
374+
('[3,4)', daterange('2000-01-01', '2010-01-01'), 'three');
375375
SELECT * FROM temporal_partitioned ORDER BY id, valid_at;
376376
id | valid_at | name
377377
-------+-------------------------+-------

src/test/regress/sql/without_overlaps.sql

+21-21
Original file line numberDiff line numberDiff line change
@@ -206,15 +206,15 @@ DROP TABLE temporal3;
206206
--
207207

208208
-- okay:
209-
INSERT INTO temporal_rng VALUES ('[1,1]', daterange('2018-01-02', '2018-02-03'));
210-
INSERT INTO temporal_rng VALUES ('[1,1]', daterange('2018-03-03', '2018-04-04'));
211-
INSERT INTO temporal_rng VALUES ('[2,2]', daterange('2018-01-01', '2018-01-05'));
212-
INSERT INTO temporal_rng VALUES ('[3,3]', daterange('2018-01-01', NULL));
209+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[1,2)', daterange('2018-01-02', '2018-02-03'));
210+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[1,2)', daterange('2018-03-03', '2018-04-04'));
211+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[2,3)', daterange('2018-01-01', '2018-01-05'));
212+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[3,4)', daterange('2018-01-01', NULL));
213213

214214
-- should fail:
215-
INSERT INTO temporal_rng VALUES ('[1,1]', daterange('2018-01-01', '2018-01-05'));
216-
INSERT INTO temporal_rng VALUES (NULL, daterange('2018-01-01', '2018-01-05'));
217-
INSERT INTO temporal_rng VALUES ('[3,3]', NULL);
215+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[1,2)', daterange('2018-01-01', '2018-01-05'));
216+
INSERT INTO temporal_rng (id, valid_at) VALUES (NULL, daterange('2018-01-01', '2018-01-05'));
217+
INSERT INTO temporal_rng (id, valid_at) VALUES ('[3,4)', NULL);
218218

219219
--
220220
-- test a range with both a PK and a UNIQUE constraint
@@ -230,8 +230,8 @@ CREATE TABLE temporal3 (
230230
);
231231
INSERT INTO temporal3 (id, valid_at, id2, name)
232232
VALUES
233-
('[1,1]', daterange('2000-01-01', '2010-01-01'), '[7,7]', 'foo'),
234-
('[2,2]', daterange('2000-01-01', '2010-01-01'), '[9,9]', 'bar')
233+
('[1,2)', daterange('2000-01-01', '2010-01-01'), '[7,8)', 'foo'),
234+
('[2,3)', daterange('2000-01-01', '2010-01-01'), '[9,10)', 'bar')
235235
;
236236
DROP TABLE temporal3;
237237

@@ -262,12 +262,12 @@ CREATE TABLE temporal_partitioned (
262262
name text,
263263
CONSTRAINT temporal_paritioned_pk PRIMARY KEY (id, valid_at WITHOUT OVERLAPS)
264264
) PARTITION BY LIST (id);
265-
CREATE TABLE tp1 PARTITION OF temporal_partitioned FOR VALUES IN ('[1,1]', '[2,2]');
266-
CREATE TABLE tp2 PARTITION OF temporal_partitioned FOR VALUES IN ('[3,3]', '[4,4]');
267-
INSERT INTO temporal_partitioned VALUES
268-
('[1,1]', daterange('2000-01-01', '2000-02-01'), 'one'),
269-
('[1,1]', daterange('2000-02-01', '2000-03-01'), 'one'),
270-
('[3,3]', daterange('2000-01-01', '2010-01-01'), 'three');
265+
CREATE TABLE tp1 PARTITION OF temporal_partitioned FOR VALUES IN ('[1,2)', '[2,3)');
266+
CREATE TABLE tp2 PARTITION OF temporal_partitioned FOR VALUES IN ('[3,4)', '[4,5)');
267+
INSERT INTO temporal_partitioned (id, valid_at, name) VALUES
268+
('[1,2)', daterange('2000-01-01', '2000-02-01'), 'one'),
269+
('[1,2)', daterange('2000-02-01', '2000-03-01'), 'one'),
270+
('[3,4)', daterange('2000-01-01', '2010-01-01'), 'three');
271271
SELECT * FROM temporal_partitioned ORDER BY id, valid_at;
272272
SELECT * FROM tp1 ORDER BY id, valid_at;
273273
SELECT * FROM tp2 ORDER BY id, valid_at;
@@ -280,12 +280,12 @@ CREATE TABLE temporal_partitioned (
280280
name text,
281281
CONSTRAINT temporal_paritioned_uq UNIQUE (id, valid_at WITHOUT OVERLAPS)
282282
) PARTITION BY LIST (id);
283-
CREATE TABLE tp1 PARTITION OF temporal_partitioned FOR VALUES IN ('[1,1]', '[2,2]');
284-
CREATE TABLE tp2 PARTITION OF temporal_partitioned FOR VALUES IN ('[3,3]', '[4,4]');
285-
INSERT INTO temporal_partitioned VALUES
286-
('[1,1]', daterange('2000-01-01', '2000-02-01'), 'one'),
287-
('[1,1]', daterange('2000-02-01', '2000-03-01'), 'one'),
288-
('[3,3]', daterange('2000-01-01', '2010-01-01'), 'three');
283+
CREATE TABLE tp1 PARTITION OF temporal_partitioned FOR VALUES IN ('[1,2)', '[2,3)');
284+
CREATE TABLE tp2 PARTITION OF temporal_partitioned FOR VALUES IN ('[3,4)', '[4,5)');
285+
INSERT INTO temporal_partitioned (id, valid_at, name) VALUES
286+
('[1,2)', daterange('2000-01-01', '2000-02-01'), 'one'),
287+
('[1,2)', daterange('2000-02-01', '2000-03-01'), 'one'),
288+
('[3,4)', daterange('2000-01-01', '2010-01-01'), 'three');
289289
SELECT * FROM temporal_partitioned ORDER BY id, valid_at;
290290
SELECT * FROM tp1 ORDER BY id, valid_at;
291291
SELECT * FROM tp2 ORDER BY id, valid_at;

0 commit comments

Comments
 (0)