From: | Manuel Rigger <rigger(dot)manuel(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>, Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com> |
Subject: | Re: ERROR: negative bitmapset member not allowed in SELECT |
Date: | 2019-07-11 11:56:28 |
Message-ID: | CA+u7OA7fmtm3kR+Y6Mgr9djU3WeOsMzQLWtNPMvoEVSm=r9XaQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
I found another, maybe simpler statement sequence to reproduce the
error "ERROR: negative bitmapset member not allowed":
CREATE TABLE t0(c0 BOOLEAN, c1 BOOLEAN, UNIQUE(c1));
CREATE STATISTICS s1 ON c0, c1 FROM t0;
INSERT INTO t0(c0) VALUES(TRUE);
ANALYZE t0;
SELECT * FROM t0 WHERE (t0.c0 AND t0.c1) >= TRUE; -- ERROR: negative
bitmapset member not allowed
I assume that the error is caused by the same underlying bug, right?
Best,
Manuel
On Wed, Jul 10, 2019 at 10:18 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> writes:
> > On 2019-Jul-10, Manuel Rigger wrote:
> >> CREATE TABLE t0(c0 serial, c1 boolean);
> >> CREATE STATISTICS s1 ON c0, c1 FROM t0;
> >> INSERT INTO t0(c1) VALUES(TRUE);
> >> ANALYZE;
> >> CREATE INDEX i0 ON t0(c0, (t0.c1 AND t0.c1));
> >> SELECT * FROM (SELECT t0.c0 FROM t0 WHERE (((t0.c1) AND (t0.c1)) OR
> >> FALSE) IS TRUE) as result WHERE result.c0 IS NULL; -- unexpected:
> >> ERROR: negative bitmapset member not allowed
>
> > Backtrace:
>
> I'd say that mcv_get_match_bitmap has a completely misplaced level of
> faith that any OpExpr it's handed will have a plain Var on one side
> or the other.
>
> Not to mention an untenable assumption that the other side is a plain
> Const.
>
> regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2019-07-11 13:09:46 | Re: BUG #15888: Bogus "idle in transaction" state for logical decoding client after creating a slot |
Previous Message | Magnus Hagander | 2019-07-11 11:21:39 | Re: BUG #15888: Bogus "idle in transaction" state for logical decoding client after creating a slot |