Assert failure when CREATE TEMP TABLE

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: Assert failure when CREATE TEMP TABLE
Date: 2023-10-16 11:02:29
Message-ID: CAMbWs4-x26=_QxxgdJyNbiCDzvtr2WV5ZDso_v-CukKEe6cBZw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

I came across an Assert failure while running sqlancer. The repro query
is

CREATE TEMP TABLE t0 (c0 int4range CHECK ((('')||(0.005014271491241007) NOT
IN (upper(''), ((' 9O')||FALSE))) BETWEEN SYMMETRIC
(initcap('dj')LIKE(((('EizW~')||t0.c0) COLLATE "en_AG.utf8"))) AND
((((0.18773675)::MONEY) IN (0.52246463::MONEY))AND(t0.c0 BETWEEN SYMMETRIC
((t0.c0+t0.c0)) AND t0.c0)))) USING heap ON COMMIT DROP;

The failure happens in init_toast_snapshot():

/*
* Catalog snapshots can be returned by GetOldestSnapshot() even if not
* registered or active. That easily hides bugs around not having a
* snapshot set up - most of the time there is a valid catalog snapshot.
* So additionally insist that the current snapshot is registered or
* active.
*/
Assert(HaveRegisteredOrActiveSnapshot());

And 'git bisect' says that the first bad commit is 2489d76c, which makes
me confused because the problemed query does not seem to involve
nullingrels stuff.

Thanks
Richard

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2023-10-16 15:46:54 Re: Assert failure when CREATE TEMP TABLE
Previous Message PG Bug reporting form 2023-10-16 09:00:00 BUG #18158: Assert in pgstat_report_stat() fails when a backend shutting down with stats pending