-- L15 keyset WITHOUT the sort-key index — same query, ix_feed_items_keyset absent
-- FeedKeysetIT.l15ExplainOffsetScansThenDiscardsKeysetSeeksAndNeedsIndex (seed 2000)
-- 읽기 포인트: 결과 행(20)은 필터로 같지만, 정렬키 인덱스가 없어 Seq Scan 으로 2000 heap 행을 훑고
--            (Rows Removed by Filter: 1980) Sort 한다 → buffers shared hit=141 (Index Only Scan 판의 ~140배).
--            OFFSET(141)과 같은 buffers = 둘 다 전량 heap 접근. 정렬키 인덱스가 keyset 의 전제라는 증거.

Limit  (cost=204.50..204.55 rows=20 width=24) (actual time=0.338..0.341 rows=20 loops=1)
  Buffers: shared hit=141
  ->  Sort  (cost=204.50..206.72 rows=887 width=24) (actual time=0.337..0.339 rows=20 loops=1)
        Sort Key: first_highlighted_at DESC, id DESC
        Sort Method: quicksort  Memory: 26kB
        Buffers: shared hit=141
        ->  Seq Scan on feed_items fi  (cost=0.00..180.90 rows=887 width=24) (actual time=0.314..0.317 rows=20 loops=1)
              Filter: (ROW(first_highlighted_at, id) < ROW('2026-04-17 13:00:00+00'::timestamp with time zone, '17ab2b68-0981-43cc-a673-5757f7214899'::uuid))
              Rows Removed by Filter: 1980
              Buffers: shared hit=141
Planning Time: 0.074 ms
Execution Time: 0.373 ms
