Re: FOR PORTION OF assertion failure in ExecInitPartitionInfo()

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Paul A Jungwirth <pj(at)illuminatedcomputing(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: FOR PORTION OF assertion failure in ExecInitPartitionInfo()
Date: 2026-09-01 19:19:57
Message-ID: a817d6d5-3be9-4ffc-9233-4b13ae1dd978@eisentraut.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 31.08.26 19:44, Paul A Jungwirth wrote:
> On Wed, Aug 19, 2026 at 10:26 PM Peter Eisentraut <peter(at)eisentraut(dot)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?
>
> I looked into this a bit. Here is a patch.

Committed, thanks.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2026-09-01 19:23:58 Re: Speed up COPY FROM text/CSV parsing using SIMD
Previous Message William Bernbaum 2026-09-01 19:14:38 RE: [PATCH] Fix pg_dump emitting OVERRIDING SYSTEM VALUE for tables with dropped identity columns