Tests on COLLATE only run on PG versions supporting it
This commit is contained in:
parent
c314cbda75
commit
dd06f25930
11
bin/Makefile
11
bin/Makefile
@ -16,6 +16,11 @@ SRCS = pg_repack.c pgut/pgut.c pgut/pgut-fe.c
|
|||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=.o)
|
||||||
PROGRAM = pg_repack
|
PROGRAM = pg_repack
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test suite
|
||||||
|
#
|
||||||
|
|
||||||
ifeq ($(shell echo $$(($(INTVERSION) >= 90100))),1)
|
ifeq ($(shell echo $$(($(INTVERSION) >= 90100))),1)
|
||||||
REGRESS = init-extension
|
REGRESS = init-extension
|
||||||
else
|
else
|
||||||
@ -24,6 +29,12 @@ endif
|
|||||||
|
|
||||||
REGRESS += repack tablespace
|
REGRESS += repack tablespace
|
||||||
|
|
||||||
|
# This test depends on collate, not supported before 9.0
|
||||||
|
ifeq ($(shell echo $$(($(INTVERSION) >= 90000))),1)
|
||||||
|
REGRESS += issue3
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
# The version number of the program. It should be the same of the library.
|
# The version number of the program. It should be the same of the library.
|
||||||
REPACK_VERSION = $(shell grep '"version":' ../META.json | head -1 \
|
REPACK_VERSION = $(shell grep '"version":' ../META.json | head -1 \
|
||||||
| sed -e 's/[ ]*"version":[ ]*"\(.*\)",/\1/')
|
| sed -e 's/[ ]*"version":[ ]*"\(.*\)",/\1/')
|
||||||
|
53
bin/expected/issue3.out
Normal file
53
bin/expected/issue3.out
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
--
|
||||||
|
-- pg_repack issue #3
|
||||||
|
--
|
||||||
|
CREATE TABLE issue3_1 (col1 int NOT NULL, col2 text NOT NULL);
|
||||||
|
CREATE UNIQUE INDEX issue3_1_idx ON issue3_1 (col1, col2 DESC);
|
||||||
|
SELECT repack.get_order_by('issue3_1_idx'::regclass::oid, 'issue3_1'::regclass::oid);
|
||||||
|
get_order_by
|
||||||
|
-----------------
|
||||||
|
col1, col2 DESC
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=issue3_1
|
||||||
|
INFO: repacking table "issue3_1"
|
||||||
|
CREATE TABLE issue3_2 (col1 int NOT NULL, col2 text NOT NULL);
|
||||||
|
CREATE UNIQUE INDEX issue3_2_idx ON issue3_2 (col1 DESC, col2 text_pattern_ops);
|
||||||
|
SELECT repack.get_order_by('issue3_2_idx'::regclass::oid, 'issue3_2'::regclass::oid);
|
||||||
|
get_order_by
|
||||||
|
---------------------------
|
||||||
|
col1 DESC, col2 USING ~<~
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=issue3_2
|
||||||
|
INFO: repacking table "issue3_2"
|
||||||
|
CREATE TABLE issue3_3 (col1 int NOT NULL, col2 text NOT NULL);
|
||||||
|
CREATE UNIQUE INDEX issue3_3_idx ON issue3_3 (col1 DESC, col2 DESC);
|
||||||
|
SELECT repack.get_order_by('issue3_3_idx'::regclass::oid, 'issue3_3'::regclass::oid);
|
||||||
|
get_order_by
|
||||||
|
----------------------
|
||||||
|
col1 DESC, col2 DESC
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=issue3_3
|
||||||
|
INFO: repacking table "issue3_3"
|
||||||
|
CREATE TABLE issue3_4 (col1 int NOT NULL, col2 text NOT NULL);
|
||||||
|
CREATE UNIQUE INDEX issue3_4_idx ON issue3_4 (col1 NULLS FIRST, col2 text_pattern_ops DESC NULLS LAST);
|
||||||
|
SELECT repack.get_order_by('issue3_4_idx'::regclass::oid, 'issue3_4'::regclass::oid);
|
||||||
|
get_order_by
|
||||||
|
--------------------------------------------------
|
||||||
|
col1 NULLS FIRST, col2 DESC USING ~<~ NULLS LAST
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=issue3_4
|
||||||
|
INFO: repacking table "issue3_4"
|
||||||
|
CREATE TABLE issue3_5 (col1 int NOT NULL, col2 text NOT NULL);
|
||||||
|
CREATE UNIQUE INDEX issue3_5_idx ON issue3_5 (col1 DESC NULLS FIRST, col2 COLLATE "POSIX" DESC);
|
||||||
|
SELECT repack.get_order_by('issue3_5_idx'::regclass::oid, 'issue3_5'::regclass::oid);
|
||||||
|
get_order_by
|
||||||
|
--------------------------------------
|
||||||
|
col1 DESC, col2 COLLATE "POSIX" DESC
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=issue3_5
|
||||||
|
INFO: repacking table "issue3_5"
|
@ -326,56 +326,3 @@ INFO: repacking table "tbl_pk_uk"
|
|||||||
\! pg_repack --dbname=contrib_regression --table=tbl_nn_puk
|
\! pg_repack --dbname=contrib_regression --table=tbl_nn_puk
|
||||||
WARNING: relation "tbl_nn_puk" must have a primary key or not-null unique keys
|
WARNING: relation "tbl_nn_puk" must have a primary key or not-null unique keys
|
||||||
-- => WARNING
|
-- => WARNING
|
||||||
--
|
|
||||||
-- pg_repack issue #3
|
|
||||||
--
|
|
||||||
CREATE TABLE issue3_1 (col1 int NOT NULL, col2 text NOT NULL);
|
|
||||||
CREATE UNIQUE INDEX issue3_1_idx ON issue3_1 (col1, col2 DESC);
|
|
||||||
SELECT repack.get_order_by('issue3_1_idx'::regclass::oid, 'issue3_1'::regclass::oid);
|
|
||||||
get_order_by
|
|
||||||
-----------------
|
|
||||||
col1, col2 DESC
|
|
||||||
(1 row)
|
|
||||||
|
|
||||||
\! pg_repack --dbname=contrib_regression --table=issue3_1
|
|
||||||
INFO: repacking table "issue3_1"
|
|
||||||
CREATE TABLE issue3_2 (col1 int NOT NULL, col2 text NOT NULL);
|
|
||||||
CREATE UNIQUE INDEX issue3_2_idx ON issue3_2 (col1 DESC, col2 text_pattern_ops);
|
|
||||||
SELECT repack.get_order_by('issue3_2_idx'::regclass::oid, 'issue3_2'::regclass::oid);
|
|
||||||
get_order_by
|
|
||||||
---------------------------
|
|
||||||
col1 DESC, col2 USING ~<~
|
|
||||||
(1 row)
|
|
||||||
|
|
||||||
\! pg_repack --dbname=contrib_regression --table=issue3_2
|
|
||||||
INFO: repacking table "issue3_2"
|
|
||||||
CREATE TABLE issue3_3 (col1 int NOT NULL, col2 text NOT NULL);
|
|
||||||
CREATE UNIQUE INDEX issue3_3_idx ON issue3_3 (col1 DESC, col2 DESC);
|
|
||||||
SELECT repack.get_order_by('issue3_3_idx'::regclass::oid, 'issue3_3'::regclass::oid);
|
|
||||||
get_order_by
|
|
||||||
----------------------
|
|
||||||
col1 DESC, col2 DESC
|
|
||||||
(1 row)
|
|
||||||
|
|
||||||
\! pg_repack --dbname=contrib_regression --table=issue3_3
|
|
||||||
INFO: repacking table "issue3_3"
|
|
||||||
CREATE TABLE issue3_4 (col1 int NOT NULL, col2 text NOT NULL);
|
|
||||||
CREATE UNIQUE INDEX issue3_4_idx ON issue3_4 (col1 NULLS FIRST, col2 text_pattern_ops DESC NULLS LAST);
|
|
||||||
SELECT repack.get_order_by('issue3_4_idx'::regclass::oid, 'issue3_4'::regclass::oid);
|
|
||||||
get_order_by
|
|
||||||
--------------------------------------------------
|
|
||||||
col1 NULLS FIRST, col2 DESC USING ~<~ NULLS LAST
|
|
||||||
(1 row)
|
|
||||||
|
|
||||||
\! pg_repack --dbname=contrib_regression --table=issue3_4
|
|
||||||
INFO: repacking table "issue3_4"
|
|
||||||
CREATE TABLE issue3_5 (col1 int NOT NULL, col2 text NOT NULL);
|
|
||||||
CREATE UNIQUE INDEX issue3_5_idx ON issue3_5 (col1 DESC NULLS FIRST, col2 COLLATE "POSIX" DESC);
|
|
||||||
SELECT repack.get_order_by('issue3_5_idx'::regclass::oid, 'issue3_5'::regclass::oid);
|
|
||||||
get_order_by
|
|
||||||
--------------------------------------
|
|
||||||
col1 DESC, col2 COLLATE "POSIX" DESC
|
|
||||||
(1 row)
|
|
||||||
|
|
||||||
\! pg_repack --dbname=contrib_regression --table=issue3_5
|
|
||||||
INFO: repacking table "issue3_5"
|
|
||||||
|
27
bin/sql/issue3.sql
Normal file
27
bin/sql/issue3.sql
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
--
|
||||||
|
-- pg_repack issue #3
|
||||||
|
--
|
||||||
|
CREATE TABLE issue3_1 (col1 int NOT NULL, col2 text NOT NULL);
|
||||||
|
CREATE UNIQUE INDEX issue3_1_idx ON issue3_1 (col1, col2 DESC);
|
||||||
|
SELECT repack.get_order_by('issue3_1_idx'::regclass::oid, 'issue3_1'::regclass::oid);
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=issue3_1
|
||||||
|
|
||||||
|
CREATE TABLE issue3_2 (col1 int NOT NULL, col2 text NOT NULL);
|
||||||
|
CREATE UNIQUE INDEX issue3_2_idx ON issue3_2 (col1 DESC, col2 text_pattern_ops);
|
||||||
|
SELECT repack.get_order_by('issue3_2_idx'::regclass::oid, 'issue3_2'::regclass::oid);
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=issue3_2
|
||||||
|
|
||||||
|
CREATE TABLE issue3_3 (col1 int NOT NULL, col2 text NOT NULL);
|
||||||
|
CREATE UNIQUE INDEX issue3_3_idx ON issue3_3 (col1 DESC, col2 DESC);
|
||||||
|
SELECT repack.get_order_by('issue3_3_idx'::regclass::oid, 'issue3_3'::regclass::oid);
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=issue3_3
|
||||||
|
|
||||||
|
CREATE TABLE issue3_4 (col1 int NOT NULL, col2 text NOT NULL);
|
||||||
|
CREATE UNIQUE INDEX issue3_4_idx ON issue3_4 (col1 NULLS FIRST, col2 text_pattern_ops DESC NULLS LAST);
|
||||||
|
SELECT repack.get_order_by('issue3_4_idx'::regclass::oid, 'issue3_4'::regclass::oid);
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=issue3_4
|
||||||
|
|
||||||
|
CREATE TABLE issue3_5 (col1 int NOT NULL, col2 text NOT NULL);
|
||||||
|
CREATE UNIQUE INDEX issue3_5_idx ON issue3_5 (col1 DESC NULLS FIRST, col2 COLLATE "POSIX" DESC);
|
||||||
|
SELECT repack.get_order_by('issue3_5_idx'::regclass::oid, 'issue3_5'::regclass::oid);
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=issue3_5
|
@ -187,31 +187,3 @@ CREATE UNIQUE INDEX tbl_nn_puk_pcol1_idx ON tbl_nn_puk(col1) WHERE col1 < 10;
|
|||||||
-- => OK
|
-- => OK
|
||||||
\! pg_repack --dbname=contrib_regression --table=tbl_nn_puk
|
\! pg_repack --dbname=contrib_regression --table=tbl_nn_puk
|
||||||
-- => WARNING
|
-- => WARNING
|
||||||
|
|
||||||
--
|
|
||||||
-- pg_repack issue #3
|
|
||||||
--
|
|
||||||
CREATE TABLE issue3_1 (col1 int NOT NULL, col2 text NOT NULL);
|
|
||||||
CREATE UNIQUE INDEX issue3_1_idx ON issue3_1 (col1, col2 DESC);
|
|
||||||
SELECT repack.get_order_by('issue3_1_idx'::regclass::oid, 'issue3_1'::regclass::oid);
|
|
||||||
\! pg_repack --dbname=contrib_regression --table=issue3_1
|
|
||||||
|
|
||||||
CREATE TABLE issue3_2 (col1 int NOT NULL, col2 text NOT NULL);
|
|
||||||
CREATE UNIQUE INDEX issue3_2_idx ON issue3_2 (col1 DESC, col2 text_pattern_ops);
|
|
||||||
SELECT repack.get_order_by('issue3_2_idx'::regclass::oid, 'issue3_2'::regclass::oid);
|
|
||||||
\! pg_repack --dbname=contrib_regression --table=issue3_2
|
|
||||||
|
|
||||||
CREATE TABLE issue3_3 (col1 int NOT NULL, col2 text NOT NULL);
|
|
||||||
CREATE UNIQUE INDEX issue3_3_idx ON issue3_3 (col1 DESC, col2 DESC);
|
|
||||||
SELECT repack.get_order_by('issue3_3_idx'::regclass::oid, 'issue3_3'::regclass::oid);
|
|
||||||
\! pg_repack --dbname=contrib_regression --table=issue3_3
|
|
||||||
|
|
||||||
CREATE TABLE issue3_4 (col1 int NOT NULL, col2 text NOT NULL);
|
|
||||||
CREATE UNIQUE INDEX issue3_4_idx ON issue3_4 (col1 NULLS FIRST, col2 text_pattern_ops DESC NULLS LAST);
|
|
||||||
SELECT repack.get_order_by('issue3_4_idx'::regclass::oid, 'issue3_4'::regclass::oid);
|
|
||||||
\! pg_repack --dbname=contrib_regression --table=issue3_4
|
|
||||||
|
|
||||||
CREATE TABLE issue3_5 (col1 int NOT NULL, col2 text NOT NULL);
|
|
||||||
CREATE UNIQUE INDEX issue3_5_idx ON issue3_5 (col1 DESC NULLS FIRST, col2 COLLATE "POSIX" DESC);
|
|
||||||
SELECT repack.get_order_by('issue3_5_idx'::regclass::oid, 'issue3_5'::regclass::oid);
|
|
||||||
\! pg_repack --dbname=contrib_regression --table=issue3_5
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user