Added pg_repack runs to check the get_order_by definitions work

This commit is contained in:
Daniele Varrazzo 2012-12-09 12:11:10 +00:00
parent 13cf8679db
commit fcd3f7eaae
2 changed files with 43 additions and 22 deletions

View File

@ -317,39 +317,48 @@ ERROR: relation "tbl_nn_puk" must have a primary key or not-null unique keys
--
-- pg_repack issue #3
--
CREATE TABLE issue3 (col1 int NOT NULL, col2 text NOT NULL);
CREATE UNIQUE INDEX issue3_idx1 ON issue3 (col1, col2 DESC);
CREATE UNIQUE INDEX issue3_idx2 ON issue3 (col1 DESC, col2 text_pattern_ops);
CREATE UNIQUE INDEX issue3_idx3 ON issue3 (col1 DESC, col2 DESC);
CREATE UNIQUE INDEX issue3_idx4 ON issue3 (col1 NULLS FIRST, col2 text_pattern_ops DESC NULLS LAST);
CREATE UNIQUE INDEX issue3_idx5 ON issue3 (col1 DESC NULLS FIRST, col2 COLLATE "POSIX" DESC);
SELECT repack.get_order_by('issue3_idx1'::regclass::oid, 'issue3'::regclass::oid);
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)
SELECT repack.get_order_by('issue3_idx2'::regclass::oid, 'issue3'::regclass::oid);
\! pg_repack --dbname=contrib_regression --no-order --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)
SELECT repack.get_order_by('issue3_idx3'::regclass::oid, 'issue3'::regclass::oid);
\! pg_repack --dbname=contrib_regression --no-order --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)
SELECT repack.get_order_by('issue3_idx4'::regclass::oid, 'issue3'::regclass::oid);
\! pg_repack --dbname=contrib_regression --no-order --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)
SELECT repack.get_order_by('issue3_idx5'::regclass::oid, 'issue3'::regclass::oid);
\! pg_repack --dbname=contrib_regression --no-order --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 --no-order --table=issue3_5

View File

@ -191,15 +191,27 @@ CREATE UNIQUE INDEX tbl_nn_puk_pcol1_idx ON tbl_nn_puk(col1) WHERE col1 < 10;
--
-- pg_repack issue #3
--
CREATE TABLE issue3 (col1 int NOT NULL, col2 text NOT NULL);
CREATE UNIQUE INDEX issue3_idx1 ON issue3 (col1, col2 DESC);
CREATE UNIQUE INDEX issue3_idx2 ON issue3 (col1 DESC, col2 text_pattern_ops);
CREATE UNIQUE INDEX issue3_idx3 ON issue3 (col1 DESC, col2 DESC);
CREATE UNIQUE INDEX issue3_idx4 ON issue3 (col1 NULLS FIRST, col2 text_pattern_ops DESC NULLS LAST);
CREATE UNIQUE INDEX issue3_idx5 ON issue3 (col1 DESC NULLS FIRST, col2 COLLATE "POSIX" DESC);
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 --no-order --table=issue3_1
SELECT repack.get_order_by('issue3_idx1'::regclass::oid, 'issue3'::regclass::oid);
SELECT repack.get_order_by('issue3_idx2'::regclass::oid, 'issue3'::regclass::oid);
SELECT repack.get_order_by('issue3_idx3'::regclass::oid, 'issue3'::regclass::oid);
SELECT repack.get_order_by('issue3_idx4'::regclass::oid, 'issue3'::regclass::oid);
SELECT repack.get_order_by('issue3_idx5'::regclass::oid, 'issue3'::regclass::oid);
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 --no-order --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 --no-order --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 --no-order --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 --no-order --table=issue3_5