Test partition functions with legacy inheritance children, too
authorAlvaro Herrera <[email protected]>
Mon, 4 Mar 2019 18:52:41 +0000 (15:52 -0300)
committerAlvaro Herrera <[email protected]>
Mon, 4 Mar 2019 18:52:41 +0000 (15:52 -0300)
It's worth immortalizing this behavior, per discussion.

Discussion: https://postgr.es/m/20190228193203[email protected]

src/test/regress/expected/partition_info.out
src/test/regress/sql/partition_info.sql

index c1ba53d74d1cb17410d085eda0532f81df824cde..6df7a80a9395c9ebf3b73d6a6266000dcf93a7d1 100644 (file)
@@ -180,11 +180,13 @@ SELECT pg_partition_root('ptif_normal_table');
 (1 row)
 
 DROP TABLE ptif_normal_table;
--- Various partitioning-related functions return NULL if passed relations
+-- Various partitioning-related functions return empty/NULL if passed relations
 -- of types that cannot be part of a partition tree; for example, views,
--- materialized views, etc.
+-- materialized views, legacy inheritance children or parents, etc.
 CREATE VIEW ptif_test_view AS SELECT 1;
 CREATE MATERIALIZED VIEW ptif_test_matview AS SELECT 1;
+CREATE TABLE ptif_li_parent ();
+CREATE TABLE ptif_li_child () INHERITS (ptif_li_parent);
 SELECT * FROM pg_partition_tree('ptif_test_view');
  relid | parentrelid | isleaf | level 
 -------+-------------+--------+-------
@@ -195,6 +197,16 @@ SELECT * FROM pg_partition_tree('ptif_test_matview');
 -------+-------------+--------+-------
 (0 rows)
 
+SELECT * FROM pg_partition_tree('ptif_li_parent');
+ relid | parentrelid | isleaf | level 
+-------+-------------+--------+-------
+(0 rows)
+
+SELECT * FROM pg_partition_tree('ptif_li_child');
+ relid | parentrelid | isleaf | level 
+-------+-------------+--------+-------
+(0 rows)
+
 SELECT pg_partition_root('ptif_test_view');
  pg_partition_root 
 -------------------
@@ -207,5 +219,18 @@ SELECT pg_partition_root('ptif_test_matview');
  
 (1 row)
 
+SELECT pg_partition_root('ptif_li_parent');
+ pg_partition_root 
+-------------------
+(1 row)
+
+SELECT pg_partition_root('ptif_li_child');
+ pg_partition_root 
+-------------------
+(1 row)
+
 DROP VIEW ptif_test_view;
 DROP MATERIALIZED VIEW ptif_test_matview;
+DROP TABLE ptif_li_parent, ptif_li_child;
index 44a0abe7e2136f9cb35c018b3afb15b71b136462..a18c15aef218c43cc0c1bfac78631b54c7b39435 100644 (file)
@@ -84,14 +84,21 @@ SELECT relid, parentrelid, level, isleaf
 SELECT pg_partition_root('ptif_normal_table');
 DROP TABLE ptif_normal_table;
 
--- Various partitioning-related functions return NULL if passed relations
+-- Various partitioning-related functions return empty/NULL if passed relations
 -- of types that cannot be part of a partition tree; for example, views,
--- materialized views, etc.
+-- materialized views, legacy inheritance children or parents, etc.
 CREATE VIEW ptif_test_view AS SELECT 1;
 CREATE MATERIALIZED VIEW ptif_test_matview AS SELECT 1;
+CREATE TABLE ptif_li_parent ();
+CREATE TABLE ptif_li_child () INHERITS (ptif_li_parent);
 SELECT * FROM pg_partition_tree('ptif_test_view');
 SELECT * FROM pg_partition_tree('ptif_test_matview');
+SELECT * FROM pg_partition_tree('ptif_li_parent');
+SELECT * FROM pg_partition_tree('ptif_li_child');
 SELECT pg_partition_root('ptif_test_view');
 SELECT pg_partition_root('ptif_test_matview');
+SELECT pg_partition_root('ptif_li_parent');
+SELECT pg_partition_root('ptif_li_child');
 DROP VIEW ptif_test_view;
 DROP MATERIALIZED VIEW ptif_test_matview;
+DROP TABLE ptif_li_parent, ptif_li_child;