mirror of
https://github.com/postgres/postgres.git
synced 2025-04-22 23:02:54 +03:00
Test partition functions with legacy inheritance children, too
It's worth immortalizing this behavior, per discussion. Discussion: https://postgr.es/m/20190228193203.GA26151@alvherre.pgsql
This commit is contained in:
parent
278584b526
commit
d12fbe2f8e
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user