From 6a51ed209d8e6c7b72f97cd8e7b56e80c73828d1 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Wed, 22 Mar 2017 15:04:27 +0300 Subject: [PATCH] add regression tests for '--parent-table' option --- regress/expected/repack.out | 59 +++++++++++++++++++++++++++++++++++++ regress/sql/repack.sql | 27 +++++++++++++++++ 2 files changed, 86 insertions(+) diff --git a/regress/expected/repack.out b/regress/expected/repack.out index 17e3666..1f9de83 100644 --- a/regress/expected/repack.out +++ b/regress/expected/repack.out @@ -403,3 +403,62 @@ ERROR: pg_repack failed with error: ERROR: permission denied for schema repack LINE 1: select repack.version(), repack.version_sql() ^ DROP ROLE IF EXISTS nosuper; +-- +-- table inheritance check +-- +CREATE TABLE parent_a(val integer primary key); +CREATE TABLE child_a_1(val integer primary key) INHERITS(parent_a); +CREATE TABLE child_a_2(val integer primary key) INHERITS(parent_a); +CREATE TABLE parent_b(val integer primary key); +CREATE TABLE child_b_1(val integer primary key) INHERITS(parent_b); +CREATE TABLE child_b_2(val integer primary key) INHERITS(parent_b); +-- => ERROR +\! pg_repack --dbname=contrib_regression --parent-table=dummy_table +ERROR: pg_repack failed with error: ERROR: relation "dummy_table" does not exist +-- => ERROR +\! pg_repack --dbname=contrib_regression --parent-table=dummy_index --index=dummy_index +ERROR: cannot specify --index (-i) and --parent-table (-I) +-- => ERROR +\! pg_repack --dbname=contrib_regression --parent-table=dummy_table --schema=dummy_schema +ERROR: cannot repack specific table(s) in schema, use schema.table notation instead +-- => ERROR +\! pg_repack --dbname=contrib_regression --parent-table=dummy_table --all +ERROR: cannot repack specific table(s) in all databases +-- => OK +\! pg_repack --dbname=contrib_regression --table=parent_a --parent-table=parent_b +INFO: repacking table "parent_a" +INFO: repacking table "parent_b" +INFO: repacking table "child_b_1" +INFO: repacking table "child_b_2" +-- => OK +\! pg_repack --dbname=contrib_regression --parent-table=parent_a --parent-table=parent_b +INFO: repacking table "parent_a" +INFO: repacking table "child_a_1" +INFO: repacking table "child_a_2" +INFO: repacking table "parent_b" +INFO: repacking table "child_b_1" +INFO: repacking table "child_b_2" +-- => OK +\! pg_repack --dbname=contrib_regression --table=parent_a --parent-table=parent_b --only-indexes +INFO: repacking indexes of "parent_a" +INFO: repacking index "public"."parent_a_pkey" +INFO: repacking indexes of "public.child_b_1" +INFO: repacking index "public"."child_b_1_pkey" +INFO: repacking indexes of "public.child_b_2" +INFO: repacking index "public"."child_b_2_pkey" +INFO: repacking indexes of "public.parent_b" +INFO: repacking index "public"."parent_b_pkey" +-- => OK +\! pg_repack --dbname=contrib_regression --parent-table=parent_a --parent-table=parent_b --only-indexes +INFO: repacking indexes of "public.child_a_1" +INFO: repacking index "public"."child_a_1_pkey" +INFO: repacking indexes of "public.child_a_2" +INFO: repacking index "public"."child_a_2_pkey" +INFO: repacking indexes of "public.parent_a" +INFO: repacking index "public"."parent_a_pkey" +INFO: repacking indexes of "public.child_b_1" +INFO: repacking index "public"."child_b_1_pkey" +INFO: repacking indexes of "public.child_b_2" +INFO: repacking index "public"."child_b_2_pkey" +INFO: repacking indexes of "public.parent_b" +INFO: repacking index "public"."parent_b_pkey" diff --git a/regress/sql/repack.sql b/regress/sql/repack.sql index e613d63..91f64ce 100644 --- a/regress/sql/repack.sql +++ b/regress/sql/repack.sql @@ -245,3 +245,30 @@ CREATE ROLE nosuper WITH LOGIN; -- => ERROR \! pg_repack --dbname=contrib_regression --table=tbl_cluster --username=nosuper --no-superuser-check DROP ROLE IF EXISTS nosuper; + +-- +-- table inheritance check +-- +CREATE TABLE parent_a(val integer primary key); +CREATE TABLE child_a_1(val integer primary key) INHERITS(parent_a); +CREATE TABLE child_a_2(val integer primary key) INHERITS(parent_a); +CREATE TABLE parent_b(val integer primary key); +CREATE TABLE child_b_1(val integer primary key) INHERITS(parent_b); +CREATE TABLE child_b_2(val integer primary key) INHERITS(parent_b); +-- => ERROR +\! pg_repack --dbname=contrib_regression --parent-table=dummy_table +-- => ERROR +\! pg_repack --dbname=contrib_regression --parent-table=dummy_index --index=dummy_index +-- => ERROR +\! pg_repack --dbname=contrib_regression --parent-table=dummy_table --schema=dummy_schema +-- => ERROR +\! pg_repack --dbname=contrib_regression --parent-table=dummy_table --all +-- => OK +\! pg_repack --dbname=contrib_regression --table=parent_a --parent-table=parent_b +-- => OK +\! pg_repack --dbname=contrib_regression --parent-table=parent_a --parent-table=parent_b +-- => OK +\! pg_repack --dbname=contrib_regression --table=parent_a --parent-table=parent_b --only-indexes +-- => OK +\! pg_repack --dbname=contrib_regression --parent-table=parent_a --parent-table=parent_b --only-indexes +