From f94cec64476f2752e91b10d7928a2fcd105e9fc3 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Tue, 18 Dec 2018 16:37:51 +0900 Subject: [PATCH] Include partitioned indexes to system view pg_indexes pg_tables already includes partitioned tables, so for consistency pg_indexes should show partitioned indexes. Author: Suraj Kharage Reviewed-by: Amit Langote, Michael Paquier Discussion: https://postgr.es/m/CAF1DzPVrYo4XNTEnc=PqVp6aLJc7LFYpYR4rX=_5pV=wJ2KdZg@mail.gmail.com --- src/backend/catalog/system_views.sql | 2 +- src/include/catalog/catversion.h | 2 +- src/test/regress/expected/indexing.out | 7 +++++++ src/test/regress/expected/rules.out | 2 +- src/test/regress/sql/indexing.sql | 3 +++ 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql index 8630542bb34..5253837b544 100644 --- a/src/backend/catalog/system_views.sql +++ b/src/backend/catalog/system_views.sql @@ -162,7 +162,7 @@ CREATE VIEW pg_indexes AS JOIN pg_class I ON (I.oid = X.indexrelid) LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) LEFT JOIN pg_tablespace T ON (T.oid = I.reltablespace) - WHERE C.relkind IN ('r', 'm') AND I.relkind = 'i'; + WHERE C.relkind IN ('r', 'm', 'p') AND I.relkind IN ('i', 'I'); CREATE OR REPLACE VIEW pg_sequences AS SELECT diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 838e927547f..3e38f2d9113 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -53,6 +53,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 201812141 +#define CATALOG_VERSION_NO 201812181 #endif diff --git a/src/test/regress/expected/indexing.out b/src/test/regress/expected/indexing.out index 3e61f50e7ce..caacf3f7991 100644 --- a/src/test/regress/expected/indexing.out +++ b/src/test/regress/expected/indexing.out @@ -10,6 +10,13 @@ select relhassubclass from pg_class where relname = 'idxpart_idx'; f (1 row) +-- Check that partitioned indexes are present in pg_indexes. +select indexdef from pg_indexes where indexname like 'idxpart_idx%'; + indexdef +----------------------------------------------------------------- + CREATE INDEX idxpart_idx ON ONLY public.idxpart USING btree (a) +(1 row) + drop index idxpart_idx; create table idxpart1 partition of idxpart for values from (0) to (10); create table idxpart2 partition of idxpart for values from (10) to (100) diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out index b68b8d273f3..e384cd22798 100644 --- a/src/test/regress/expected/rules.out +++ b/src/test/regress/expected/rules.out @@ -1358,7 +1358,7 @@ pg_indexes| SELECT n.nspname AS schemaname, JOIN pg_class i ON ((i.oid = x.indexrelid))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) LEFT JOIN pg_tablespace t ON ((t.oid = i.reltablespace))) - WHERE ((c.relkind = ANY (ARRAY['r'::"char", 'm'::"char"])) AND (i.relkind = 'i'::"char")); + WHERE ((c.relkind = ANY (ARRAY['r'::"char", 'm'::"char", 'p'::"char"])) AND (i.relkind = ANY (ARRAY['i'::"char", 'I'::"char"]))); pg_locks| SELECT l.locktype, l.database, l.relation, diff --git a/src/test/regress/sql/indexing.sql b/src/test/regress/sql/indexing.sql index 400b7eb7ba3..6878cde5098 100644 --- a/src/test/regress/sql/indexing.sql +++ b/src/test/regress/sql/indexing.sql @@ -6,6 +6,9 @@ create table idxpart (a int, b int, c text) partition by range (a); -- It will be set after the first partition is created. create index idxpart_idx on idxpart (a); select relhassubclass from pg_class where relname = 'idxpart_idx'; + +-- Check that partitioned indexes are present in pg_indexes. +select indexdef from pg_indexes where indexname like 'idxpart_idx%'; drop index idxpart_idx; create table idxpart1 partition of idxpart for values from (0) to (10);