repro.sql
application/sql
-- build the table
select setseed(0);
create unlogged table t (a bigint, b text) with (fillfactor = 20);
insert into t
select 1 * a, b from (
select r, a, b, generate_series(0,2-1) AS p from (
select row_number() over () AS r, a, b from (
select i AS a, md5(i::text) AS b from generate_series(1, 5000000) s(i) ORDER BY (i + 16 * (random() - 0.5))
) foo
) bar
) baz ORDER BY ((r * 2 + p) + 8 * (random() - 0.5));
create index idx on t(a ASC) with (deduplicate_items=false);
vacuum freeze;
analyze t;
checkpoint;
-- query to test
SELECT * FROM ( SELECT * FROM t WHERE a BETWEEN 16150 AND 4540437 ORDER BY a ASC) OFFSET 1000000000;