pgsql: Fix bogus logic for reporting which hash partition conflicts.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix bogus logic for reporting which hash partition conflicts.
Date: 2021-06-29 18:34:49
Message-ID: E1lyIZN-0001T1-Ns@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix bogus logic for reporting which hash partition conflicts.

Commit efbfb6424 added logic for reporting exactly which existing
partition conflicts when complaining that a new hash partition's
modulus isn't compatible with the existing ones. However, it
misunderstood the partitioning data structure, and would select
the wrong partition in some cases, or crash outright due to fetching
a bogus table OID in other cases.

Per bug #17076 from Alexander Lakhin. Fix by Amit Langote;
some further work on the code comments by me.

Discussion: https://postgr.es/m/17076-89a16ae835d329b9@postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/dd2364ced98553e0217bfe8f621cd4b0970db74a

Modified Files
--------------
src/backend/partitioning/partbounds.c | 26 ++++++++++++++++++--------
src/test/regress/expected/create_table.out | 10 ++++++++--
src/test/regress/sql/create_table.sql | 3 +++
3 files changed, 29 insertions(+), 10 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Alvaro Herrera 2021-06-29 18:38:38 pgsql: Add PQsendFlushRequest to libpq
Previous Message Tom Lane 2021-06-29 15:46:30 pgsql: Add a build-time check that libpq doesn't call exit() or abort()