[sqlsmith] Failed assertion in joinrels.c

From: Andreas Seltenreich <seltenreich(at)gmx(dot)de>
To: pgsql-hackers(at)postgresql(dot)org
Subject: [sqlsmith] Failed assertion in joinrels.c
Date: 2015-08-01 00:56:22
Message-ID: 87wpxfygg9.fsf@credativ.de
Views: Raw Message | Whole Thread | Download mbox
Thread:
Lists: pgsql-hackers

Hi,

sqlsmith triggered the following assertion in master (c188204).

TRAP: FailedAssertion("!(!bms_overlap(joinrelids, sjinfo->min_lefthand))", File: "joinrels.c", Line: 500)

As usual, the query is against the regression database. It is rather
unwieldy… I wonder if I should stop working on new grammar rules and
instead work on some post-processing that prunes the AST as much as
possible while maintaining the failure mode.

regards,
andreas

select
subq_647409.c0 as c0,
subq_647409.c0 as c1
from
public.customer as rel_4116461
left join public.clstr_tst_s as rel_4116555
left join information_schema.columns as rel_4116556
on (rel_4116555.rf_a = rel_4116556.ordinal_position )
right join pg_catalog.pg_roles as rel_4116557
on (rel_4116556.maximum_cardinality = rel_4116557.rolconnlimit )
on (rel_4116461.passwd = rel_4116557.rolpassword )
left join (select
subq_647410.c8 as c0
from
public.char_tbl as rel_4116611,
lateral (select
rel_4116612.name as c0,
rel_4116612.comment as c1,
rel_4116612.nslots as c2,
rel_4116612.comment as c3,
rel_4116612.nslots as c4,
rel_4116612.nslots as c5,
rel_4116612.comment as c6,
rel_4116612.comment as c7,
rel_4116612.nslots as c8,
rel_4116612.nslots as c9,
rel_4116612.nslots as c10
from
public.hub as rel_4116612
where rel_4116612.comment ~>=~ rel_4116612.comment
fetch first 116 rows only) as subq_647410
where (subq_647410.c7 !~~* subq_647410.c7)
or ((subq_647410.c3 = subq_647410.c3)
and ((subq_647410.c7 ~* subq_647410.c6)
and (subq_647410.c7 @@ subq_647410.c7)))
fetch first 152 rows only) as subq_647409
inner join public.int4_tbl as rel_4116661
inner join public.shoe as rel_4116662
on (rel_4116661.f1 = rel_4116662.sh_avail )
inner join public.rtest_vview3 as rel_4116663
on (rel_4116661.f1 = rel_4116663.a )
on (subq_647409.c0 = rel_4116662.sh_avail )
on (rel_4116555.b = rel_4116661.f1 )
where ((rel_4116557.rolvaliduntil is NULL)
or (rel_4116663.b !~ rel_4116461.name))
or (rel_4116661.f1 is not NULL)
fetch first 80 rows only;

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2015-08-01 01:11:23 Re: [sqlsmith] Failed assertion in joinrels.c
Previous Message Tom Lane 2015-08-01 00:27:22 Re: 64-bit XIDs again