From fcd3f7eaaea38efa3267d6452966d98e29b45128 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Sun, 9 Dec 2012 12:11:10 +0000 Subject: [PATCH] Added pg_repack runs to check the get_order_by definitions work --- bin/expected/repack.out | 31 ++++++++++++++++++++----------- bin/sql/repack.sql | 34 +++++++++++++++++++++++----------- 2 files changed, 43 insertions(+), 22 deletions(-) diff --git a/bin/expected/repack.out b/bin/expected/repack.out index f1bc1ad..c0b19d2 100644 --- a/bin/expected/repack.out +++ b/bin/expected/repack.out @@ -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 diff --git a/bin/sql/repack.sql b/bin/sql/repack.sql index fc05411..d1a0641 100644 --- a/bin/sql/repack.sql +++ b/bin/sql/repack.sql @@ -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