FOR PORTION OF assertion failure in ExecInitPartitionInfo()
The following test case triggers an assertion failure in
ExecInitPartitionInfo():
CREATE TABLE temporal_partitioned_by_range (
id int4range,
valid_at daterange,
name text
) PARTITION BY RANGE (valid_at);
CREATE TABLE temporal_partitioned_early
PARTITION OF temporal_partitioned_by_range
FOR VALUES FROM (MINVALUE) TO ('[2000-06-01,)');
CREATE TABLE temporal_partitioned_late
PARTITION OF temporal_partitioned_by_range
FOR VALUES FROM ('[2000-06-01,)') TO (MAXVALUE);
INSERT INTO temporal_partitioned_by_range (id, valid_at, name)
VALUES ('[1,2)', daterange('2000-01-01', '2010-01-01'), 'one');
DELETE FROM temporal_partitioned_by_range
FOR PORTION OF valid_at FROM '2000-03-01' TO '2000-07-01'
WHERE valid_at < '[2000-06-01,)'::daterange
RETURNING id, valid_at, name;
It appears to work correctly with assertions disabled, so maybe just
some of the Assert()s in ExecInitPartitionInfo() need some updates?
On Wed, Aug 19, 2026 at 10:26 PM Peter Eisentraut <peter@eisentraut.org> wrote:
The following test case triggers an assertion failure in
ExecInitPartitionInfo():CREATE TABLE temporal_partitioned_by_range (
id int4range,
valid_at daterange,
name text
) PARTITION BY RANGE (valid_at);CREATE TABLE temporal_partitioned_early
PARTITION OF temporal_partitioned_by_range
FOR VALUES FROM (MINVALUE) TO ('[2000-06-01,)');
CREATE TABLE temporal_partitioned_late
PARTITION OF temporal_partitioned_by_range
FOR VALUES FROM ('[2000-06-01,)') TO (MAXVALUE);INSERT INTO temporal_partitioned_by_range (id, valid_at, name)
VALUES ('[1,2)', daterange('2000-01-01', '2010-01-01'), 'one');DELETE FROM temporal_partitioned_by_range
FOR PORTION OF valid_at FROM '2000-03-01' TO '2000-07-01'
WHERE valid_at < '[2000-06-01,)'::daterange
RETURNING id, valid_at, name;It appears to work correctly with assertions disabled, so maybe just
some of the Assert()s in ExecInitPartitionInfo() need some updates?
Thanks for catching this! I'm on a family backpacking trip, so the
earliest I'll be able to look closely is after the 30th.
Yours,
--
Paul ~{:-)
pj@illuminatedcomputing.com