From: | Robert Haas <rhaas(at)postgresql(dot)org> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Teach predtest.c about CHECK clauses to fix partitioning bugs. |
Date: | 2017-06-14 17:13:30 |
Message-ID: | E1dLBrG-000290-7p@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Teach predtest.c about CHECK clauses to fix partitioning bugs.
In a CHECK clause, a null result means true, whereas in a WHERE clause
it means false. predtest.c provided different functions depending on
which set of semantics applied to the predicate being proved, but had
no option to control what a null meant in the clauses provided as
axioms. Add one.
Use that in the partitioning code when figuring out whether the
validation scan on a new partition can be skipped. Rip out the
old logic that attempted (not very successfully) to compensate
for the absence of the necessary support in predtest.c.
Ashutosh Bapat and Robert Haas, reviewed by Amit Langote and
incorporating feedback from Tom Lane.
Discussion: http://postgr.es/m/CAFjFpReT_kq_uwU_B8aWDxR7jNGE=P0iELycdq5oupi=xSQTOw@mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/b08df9cab777427fdafe633ca7b8abf29817aa55
Modified Files
--------------
src/backend/commands/tablecmds.c | 60 +-----------
src/backend/optimizer/path/indxpath.c | 11 ++-
src/backend/optimizer/plan/createplan.c | 7 +-
src/backend/optimizer/util/plancat.c | 6 +-
src/backend/optimizer/util/predtest.c | 152 +++++++++++++++++++-----------
src/backend/utils/adt/selfuncs.c | 4 +-
src/include/optimizer/predtest.h | 8 +-
src/test/regress/expected/alter_table.out | 6 ++
src/test/regress/sql/alter_table.sql | 7 +-
9 files changed, 129 insertions(+), 132 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2017-06-14 17:31:21 | Re: pgindent (was Re: [COMMITTERS] pgsql: Preventive maintenance in advance of pgindent run.) |
Previous Message | Tom Lane | 2017-06-14 15:44:54 | pgsql: Improve release note text about set-returning-function changes. |