]> granicus.if.org Git - postgresql/commit
Consider only relations part of partition trees in partition functions
authorMichael Paquier <michael@paquier.xyz>
Sat, 2 Mar 2019 09:18:59 +0000 (18:18 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sat, 2 Mar 2019 09:18:59 +0000 (18:18 +0900)
commit3422955735d9b2623532c60c53cb885c9cb6e3b1
treebd11dd3f56e057637fcbf6086dcab0cbdf07b0d5
parent70b9bda65f8174e24eef5d8967705485a314a82e
Consider only relations part of partition trees in partition functions

This changes the partition functions so as tables and indexes which are
not part of partition trees are handled the same way as what is done for
undefined objects and unsupported relkinds: pg_partition_tree() returns
no rows and pg_partition_root() returns a NULL result.  Hence,
partitioned tables, partitioned indexes and relations whose flag
pg_class.relispartition is set are considered as valid objects to
process.

Previously, tables and indexes not included in a partition tree were
processed the same way as a partition or a partitioned table, which
caused the functions to return inconsistent results for inherited
tables, especially when inheriting from multiple tables.

Reported-by: Álvaro Herrera
Author: Amit Langote, Michael Paquier
Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/20190228193203.GA26151@alvherre.pgsql
src/backend/utils/adt/partitionfuncs.c
src/test/regress/expected/partition_info.out
src/test/regress/sql/partition_info.sql