Skip to content

Commit dd06f25

Browse files
committed
Tests on COLLATE only run on PG versions supporting it
1 parent c314cbd commit dd06f25

File tree

5 files changed

+91
-81
lines changed

5 files changed

+91
-81
lines changed

bin/Makefile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ SRCS = pg_repack.c pgut/pgut.c pgut/pgut-fe.c
1616
OBJS = $(SRCS:.c=.o)
1717
PROGRAM = pg_repack
1818

19+
20+
#
21+
# Test suite
22+
#
23+
1924
ifeq ($(shell echo $$(($(INTVERSION) >= 90100))),1)
2025
REGRESS = init-extension
2126
else
@@ -24,6 +29,12 @@ endif
2429

2530
REGRESS += repack tablespace
2631

32+
# This test depends on collate, not supported before 9.0
33+
ifeq ($(shell echo $$(($(INTVERSION) >= 90000))),1)
34+
REGRESS += issue3
35+
endif
36+
37+
2738
# The version number of the program. It should be the same of the library.
2839
REPACK_VERSION = $(shell grep '"version":' ../META.json | head -1 \
2940
| sed -e 's/[ ]*"version":[ ]*"\(.*\)",/\1/')

bin/expected/issue3.out

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
--
2+
-- pg_repack issue #3
3+
--
4+
CREATE TABLE issue3_1 (col1 int NOT NULL, col2 text NOT NULL);
5+
CREATE UNIQUE INDEX issue3_1_idx ON issue3_1 (col1, col2 DESC);
6+
SELECT repack.get_order_by('issue3_1_idx'::regclass::oid, 'issue3_1'::regclass::oid);
7+
get_order_by
8+
-----------------
9+
col1, col2 DESC
10+
(1 row)
11+
12+
\! pg_repack --dbname=contrib_regression --table=issue3_1
13+
INFO: repacking table "issue3_1"
14+
CREATE TABLE issue3_2 (col1 int NOT NULL, col2 text NOT NULL);
15+
CREATE UNIQUE INDEX issue3_2_idx ON issue3_2 (col1 DESC, col2 text_pattern_ops);
16+
SELECT repack.get_order_by('issue3_2_idx'::regclass::oid, 'issue3_2'::regclass::oid);
17+
get_order_by
18+
---------------------------
19+
col1 DESC, col2 USING ~<~
20+
(1 row)
21+
22+
\! pg_repack --dbname=contrib_regression --table=issue3_2
23+
INFO: repacking table "issue3_2"
24+
CREATE TABLE issue3_3 (col1 int NOT NULL, col2 text NOT NULL);
25+
CREATE UNIQUE INDEX issue3_3_idx ON issue3_3 (col1 DESC, col2 DESC);
26+
SELECT repack.get_order_by('issue3_3_idx'::regclass::oid, 'issue3_3'::regclass::oid);
27+
get_order_by
28+
----------------------
29+
col1 DESC, col2 DESC
30+
(1 row)
31+
32+
\! pg_repack --dbname=contrib_regression --table=issue3_3
33+
INFO: repacking table "issue3_3"
34+
CREATE TABLE issue3_4 (col1 int NOT NULL, col2 text NOT NULL);
35+
CREATE UNIQUE INDEX issue3_4_idx ON issue3_4 (col1 NULLS FIRST, col2 text_pattern_ops DESC NULLS LAST);
36+
SELECT repack.get_order_by('issue3_4_idx'::regclass::oid, 'issue3_4'::regclass::oid);
37+
get_order_by
38+
--------------------------------------------------
39+
col1 NULLS FIRST, col2 DESC USING ~<~ NULLS LAST
40+
(1 row)
41+
42+
\! pg_repack --dbname=contrib_regression --table=issue3_4
43+
INFO: repacking table "issue3_4"
44+
CREATE TABLE issue3_5 (col1 int NOT NULL, col2 text NOT NULL);
45+
CREATE UNIQUE INDEX issue3_5_idx ON issue3_5 (col1 DESC NULLS FIRST, col2 COLLATE "POSIX" DESC);
46+
SELECT repack.get_order_by('issue3_5_idx'::regclass::oid, 'issue3_5'::regclass::oid);
47+
get_order_by
48+
--------------------------------------
49+
col1 DESC, col2 COLLATE "POSIX" DESC
50+
(1 row)
51+
52+
\! pg_repack --dbname=contrib_regression --table=issue3_5
53+
INFO: repacking table "issue3_5"

bin/expected/repack.out

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -326,56 +326,3 @@ INFO: repacking table "tbl_pk_uk"
326326
\! pg_repack --dbname=contrib_regression --table=tbl_nn_puk
327327
WARNING: relation "tbl_nn_puk" must have a primary key or not-null unique keys
328328
-- => WARNING
329-
--
330-
-- pg_repack issue #3
331-
--
332-
CREATE TABLE issue3_1 (col1 int NOT NULL, col2 text NOT NULL);
333-
CREATE UNIQUE INDEX issue3_1_idx ON issue3_1 (col1, col2 DESC);
334-
SELECT repack.get_order_by('issue3_1_idx'::regclass::oid, 'issue3_1'::regclass::oid);
335-
get_order_by
336-
-----------------
337-
col1, col2 DESC
338-
(1 row)
339-
340-
\! pg_repack --dbname=contrib_regression --table=issue3_1
341-
INFO: repacking table "issue3_1"
342-
CREATE TABLE issue3_2 (col1 int NOT NULL, col2 text NOT NULL);
343-
CREATE UNIQUE INDEX issue3_2_idx ON issue3_2 (col1 DESC, col2 text_pattern_ops);
344-
SELECT repack.get_order_by('issue3_2_idx'::regclass::oid, 'issue3_2'::regclass::oid);
345-
get_order_by
346-
---------------------------
347-
col1 DESC, col2 USING ~<~
348-
(1 row)
349-
350-
\! pg_repack --dbname=contrib_regression --table=issue3_2
351-
INFO: repacking table "issue3_2"
352-
CREATE TABLE issue3_3 (col1 int NOT NULL, col2 text NOT NULL);
353-
CREATE UNIQUE INDEX issue3_3_idx ON issue3_3 (col1 DESC, col2 DESC);
354-
SELECT repack.get_order_by('issue3_3_idx'::regclass::oid, 'issue3_3'::regclass::oid);
355-
get_order_by
356-
----------------------
357-
col1 DESC, col2 DESC
358-
(1 row)
359-
360-
\! pg_repack --dbname=contrib_regression --table=issue3_3
361-
INFO: repacking table "issue3_3"
362-
CREATE TABLE issue3_4 (col1 int NOT NULL, col2 text NOT NULL);
363-
CREATE UNIQUE INDEX issue3_4_idx ON issue3_4 (col1 NULLS FIRST, col2 text_pattern_ops DESC NULLS LAST);
364-
SELECT repack.get_order_by('issue3_4_idx'::regclass::oid, 'issue3_4'::regclass::oid);
365-
get_order_by
366-
--------------------------------------------------
367-
col1 NULLS FIRST, col2 DESC USING ~<~ NULLS LAST
368-
(1 row)
369-
370-
\! pg_repack --dbname=contrib_regression --table=issue3_4
371-
INFO: repacking table "issue3_4"
372-
CREATE TABLE issue3_5 (col1 int NOT NULL, col2 text NOT NULL);
373-
CREATE UNIQUE INDEX issue3_5_idx ON issue3_5 (col1 DESC NULLS FIRST, col2 COLLATE "POSIX" DESC);
374-
SELECT repack.get_order_by('issue3_5_idx'::regclass::oid, 'issue3_5'::regclass::oid);
375-
get_order_by
376-
--------------------------------------
377-
col1 DESC, col2 COLLATE "POSIX" DESC
378-
(1 row)
379-
380-
\! pg_repack --dbname=contrib_regression --table=issue3_5
381-
INFO: repacking table "issue3_5"

bin/sql/issue3.sql

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--
2+
-- pg_repack issue #3
3+
--
4+
CREATE TABLE issue3_1 (col1 int NOT NULL, col2 text NOT NULL);
5+
CREATE UNIQUE INDEX issue3_1_idx ON issue3_1 (col1, col2 DESC);
6+
SELECT repack.get_order_by('issue3_1_idx'::regclass::oid, 'issue3_1'::regclass::oid);
7+
\! pg_repack --dbname=contrib_regression --table=issue3_1
8+
9+
CREATE TABLE issue3_2 (col1 int NOT NULL, col2 text NOT NULL);
10+
CREATE UNIQUE INDEX issue3_2_idx ON issue3_2 (col1 DESC, col2 text_pattern_ops);
11+
SELECT repack.get_order_by('issue3_2_idx'::regclass::oid, 'issue3_2'::regclass::oid);
12+
\! pg_repack --dbname=contrib_regression --table=issue3_2
13+
14+
CREATE TABLE issue3_3 (col1 int NOT NULL, col2 text NOT NULL);
15+
CREATE UNIQUE INDEX issue3_3_idx ON issue3_3 (col1 DESC, col2 DESC);
16+
SELECT repack.get_order_by('issue3_3_idx'::regclass::oid, 'issue3_3'::regclass::oid);
17+
\! pg_repack --dbname=contrib_regression --table=issue3_3
18+
19+
CREATE TABLE issue3_4 (col1 int NOT NULL, col2 text NOT NULL);
20+
CREATE UNIQUE INDEX issue3_4_idx ON issue3_4 (col1 NULLS FIRST, col2 text_pattern_ops DESC NULLS LAST);
21+
SELECT repack.get_order_by('issue3_4_idx'::regclass::oid, 'issue3_4'::regclass::oid);
22+
\! pg_repack --dbname=contrib_regression --table=issue3_4
23+
24+
CREATE TABLE issue3_5 (col1 int NOT NULL, col2 text NOT NULL);
25+
CREATE UNIQUE INDEX issue3_5_idx ON issue3_5 (col1 DESC NULLS FIRST, col2 COLLATE "POSIX" DESC);
26+
SELECT repack.get_order_by('issue3_5_idx'::regclass::oid, 'issue3_5'::regclass::oid);
27+
\! pg_repack --dbname=contrib_regression --table=issue3_5

bin/sql/repack.sql

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -187,31 +187,3 @@ CREATE UNIQUE INDEX tbl_nn_puk_pcol1_idx ON tbl_nn_puk(col1) WHERE col1 < 10;
187187
-- => OK
188188
\! pg_repack --dbname=contrib_regression --table=tbl_nn_puk
189189
-- => WARNING
190-
191-
--
192-
-- pg_repack issue #3
193-
--
194-
CREATE TABLE issue3_1 (col1 int NOT NULL, col2 text NOT NULL);
195-
CREATE UNIQUE INDEX issue3_1_idx ON issue3_1 (col1, col2 DESC);
196-
SELECT repack.get_order_by('issue3_1_idx'::regclass::oid, 'issue3_1'::regclass::oid);
197-
\! pg_repack --dbname=contrib_regression --table=issue3_1
198-
199-
CREATE TABLE issue3_2 (col1 int NOT NULL, col2 text NOT NULL);
200-
CREATE UNIQUE INDEX issue3_2_idx ON issue3_2 (col1 DESC, col2 text_pattern_ops);
201-
SELECT repack.get_order_by('issue3_2_idx'::regclass::oid, 'issue3_2'::regclass::oid);
202-
\! pg_repack --dbname=contrib_regression --table=issue3_2
203-
204-
CREATE TABLE issue3_3 (col1 int NOT NULL, col2 text NOT NULL);
205-
CREATE UNIQUE INDEX issue3_3_idx ON issue3_3 (col1 DESC, col2 DESC);
206-
SELECT repack.get_order_by('issue3_3_idx'::regclass::oid, 'issue3_3'::regclass::oid);
207-
\! pg_repack --dbname=contrib_regression --table=issue3_3
208-
209-
CREATE TABLE issue3_4 (col1 int NOT NULL, col2 text NOT NULL);
210-
CREATE UNIQUE INDEX issue3_4_idx ON issue3_4 (col1 NULLS FIRST, col2 text_pattern_ops DESC NULLS LAST);
211-
SELECT repack.get_order_by('issue3_4_idx'::regclass::oid, 'issue3_4'::regclass::oid);
212-
\! pg_repack --dbname=contrib_regression --table=issue3_4
213-
214-
CREATE TABLE issue3_5 (col1 int NOT NULL, col2 text NOT NULL);
215-
CREATE UNIQUE INDEX issue3_5_idx ON issue3_5 (col1 DESC NULLS FIRST, col2 COLLATE "POSIX" DESC);
216-
SELECT repack.get_order_by('issue3_5_idx'::regclass::oid, 'issue3_5'::regclass::oid);
217-
\! pg_repack --dbname=contrib_regression --table=issue3_5

0 commit comments

Comments
 (0)