create table t (a int, b int) with (fillfactor=10); insert into t select mod((i/22),2), (i/22) from generate_series(0,1000) S(i); create index on t(a); vacuum analyze t;
set enable_indexonlyscan = off; set enable_seqscan = off; explain (analyze, verbose) select 1 from (values (1)) s(x) where exists (select * from t where a = x);
KABOOM!
FWIW, it seems to me that this assert could be triggered in cases where, during a join, not all inner tuples need to be scanned before skipping to next outer tuple. This can happen for 'single_match' or anti-join.
The query provided by Tomas is an example of 'single_match' case. Here is a query for anti-join that can also trigger this assert.
explain (analyze, verbose) select t1.a from t t1 left join t t2 on t2.a = 1 where t2.a is null; server closed the connection unexpectedly