pgsql: Consider only relations part of partition trees in partition fun

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Consider only relations part of partition trees in partition fun
Date: 2019-03-02 09:20:14
Message-ID: E1h00oY-0003Ym-Nz@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/3422955735d9b2623532c60c53cb885c9cb6e3b1

Modified Files
--------------
src/backend/utils/adt/partitionfuncs.c | 13 ++------
src/test/regress/expected/partition_info.out | 48 +++++++++++++++++++++-------
src/test/regress/sql/partition_info.sql | 17 ++++++++--
3 files changed, 55 insertions(+), 23 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Dean Rasheed 2019-03-03 11:08:27 pgsql: Further fixing for multi-row VALUES lists for updatable views.
Previous Message Andres Freund 2019-03-02 01:44:58 pgsql: Use a virtual rather than a heap slot in two places where that s