> Thanks for testing! Could you provide a test case to show what exactly is the > problem?
create table a (a int, b int, c int); insert into a (select vs, ks, 10 from generate_series(1,5) vs, generate_series(1, 10000) ks); create index on a (a,b); analyze a; set enable_indexskipscan=1; // setting this to 0 yields different results set random_page_cost=1; explain SELECT DISTINCT ON (a) a,b FROM a; BEGIN; DECLARE c SCROLL CURSOR FOR SELECT DISTINCT ON (a) a,b FROM a; FETCH FROM c; FETCH BACKWARD FROM c; FETCH 6 FROM c; FETCH BACKWARD 6 FROM c; FETCH 6 FROM c; FETCH BACKWARD 6 FROM c; END;