add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
Help with an interesting Postgres question: Why isn't an Index Only Scan used on a partition accessed via the parent table?.
6 rows affected
ag_id name cost
1 333 22.00
1 333 33.00
1 333 7.00
2 555 18.00
2 555 2.00
3 777 4.00
agreement_id ag
1 (1,333,22.00)
1 (1,333,33.00)
1 (1,333,7.00)
2 (2,555,18.00)
2 (2,555,2.00)
3 (3,777,4.00)
QUERY PLAN
Subquery Scan on t (cost=0.15..91.50 rows=5 width=112) (actual time=0.060..0.095 rows=3 loops=1)
  Output: t.agreement_id, t.ag, t.total
  Filter: ((t.ag).ag_id = 1)
  Rows Removed by Filter: 3
  Buffers: shared hit=2
  -> WindowAgg (cost=0.15..78.75 rows=1020 width=112) (actual time=0.056..0.089 rows=6 loops=1)
        Output: t_1.ag_id, t_1.*, sum(t_1.cost) OVER (?)
        Buffers: shared hit=2
        -> Index Scan using ag_idx on public.agreement t_1 (cost=0.15..63.45 rows=1020 width=96) (actual time=0.017..0.026 rows=6 loops=1)
              Output: t_1.ag_id, t_1.*, t_1.cost
              Buffers: shared hit=2
Planning:
  Buffers: shared hit=8 read=6
Planning Time: 0.771 ms
Execution Time: 0.190 ms
QUERY PLAN
WindowAgg (cost=4.19..12.74 rows=5 width=112) (actual time=0.040..0.042 rows=3 loops=1)
  Output: t.ag_id, t.*, sum(t.cost) OVER (?)
  Buffers: shared hit=2
  -> Bitmap Heap Scan on public.agreement t (cost=4.19..12.66 rows=5 width=96) (actual time=0.017..0.020 rows=3 loops=1)
        Output: t.ag_id, t.*, t.cost
        Recheck Cond: (t.ag_id = 1)
        Heap Blocks: exact=1
        Buffers: shared hit=2
        -> Bitmap Index Scan on ag_idx (cost=0.00..4.19 rows=5 width=0) (actual time=0.008..0.008 rows=3 loops=1)
              Index Cond: (t.ag_id = 1)
              Buffers: shared hit=1
Planning Time: 0.132 ms
Execution Time: 0.201 ms
QUERY PLAN
Subquery Scan on t (cost=0.15..91.50 rows=5 width=112) (actual time=0.024..0.035 rows=3 loops=1)
  Output: t.agreement_id, t.ag, t.total
  Filter: (t.agreement_id = 1)
  Rows Removed by Filter: 3
  Buffers: shared hit=2
  -> WindowAgg (cost=0.15..78.75 rows=1020 width=116) (actual time=0.023..0.032 rows=6 loops=1)
        Output: t_1.ag_id, t_1.*, sum(t_1.cost) OVER (?), t_1.ag_id
        Buffers: shared hit=2
        -> Index Scan using ag_idx on public.agreement t_1 (cost=0.15..63.45 rows=1020 width=96) (actual time=0.011..0.015 rows=6 loops=1)
              Output: t_1.ag_id, t_1.*, t_1.cost
              Buffers: shared hit=2
Planning Time: 0.120 ms
Execution Time: 0.062 ms
QUERY PLAN
Subquery Scan on t (cost=0.15..91.50 rows=5 width=112) (actual time=0.024..0.035 rows=3 loops=1)
  Output: t.agreement_id, t.ag, t.total
  Filter: ((t.ag).ag_id = 1)
  Rows Removed by Filter: 3
  Buffers: shared hit=2
  -> WindowAgg (cost=0.15..78.75 rows=1020 width=116) (actual time=0.022..0.031 rows=6 loops=1)
        Output: t_1.ag_id, t_1.*, sum(t_1.cost) OVER (?), t_1.ag_id
        Buffers: shared hit=2
        -> Index Scan using ag_idx on public.agreement t_1 (cost=0.15..63.45 rows=1020 width=96) (actual time=0.010..0.015 rows=6 loops=1)
              Output: t_1.ag_id, t_1.*, t_1.cost
              Buffers: shared hit=2
Planning Time: 0.118 ms
Execution Time: 0.062 ms