Re: BUG #16293: postgres segfaults and returns SQLSTATE 08006

Daniel WM <dwilches@gmail.com>

From: Daniel WM <dwilches@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-bugs@lists.postgresql.org
Date: 2020-03-14T20:43:32Z
Lists: pgsql-bugs
Hello,

I have finally isolated the issue and I have a set of steps that reliably
cause the segfault:

CREATE TABLE parent_table (
    custdob timestamp with time zone not null,
    closed BOOLEAN NOT NULL DEFAULT FALSE
) PARTITION BY RANGE (custdob);

CREATE TABLE default_partition (
    custdob timestamp with time zone not null,
    CONSTRAINT dummy_check CHECK (custdob  < '2019-08-02T00:00Z')
);

-- This is needed for the crash, if I add this column when creating the
table "default_partition" then I don't get the crash, but when it's added
with an "ALTER TABLE" then I get the crash.
ALTER TABLE default_partition ADD COLUMN closed BOOLEAN NOT NULL DEFAULT
FALSE;

ALTER TABLE parent_table ATTACH PARTITION default_partition DEFAULT;

INSERT INTO parent_table VALUES ('2020-02-02 01:00:00+00:00', 'f');

--
Daniel Wilches

Commits

  1. Add regression tests for constraint errors in partitioned tables.

  2. Fix potential crash after constraint violation errors in partitioned tables.