

======================================================================
 QUERY FILE: 8 (8.sql)
 TIMESTAMP:  Mon Dec 15 19:10:03 CST 2025
======================================================================

--- [ CONFIG: dp ] ----------------------------------------
Limit  (cost=262519.37..262519.41 rows=1 width=64) (actual time=799.485..799.488 rows=1.00 loops=1)
  Output: (EXTRACT(year FROM orders.o_orderdate)), ((sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)))))
  Buffers: shared hit=146600
  ->  GroupAggregate  (cost=262519.37..262622.14 rows=2406 width=64) (actual time=799.484..799.487 rows=1.00 loops=1)
        Output: (EXTRACT(year FROM orders.o_orderdate)), (sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount))))
        Group Key: (EXTRACT(year FROM orders.o_orderdate))
        Buffers: shared hit=146600
        ->  Sort  (cost=262519.37..262525.44 rows=2429 width=70) (actual time=799.226..799.254 rows=1248.00 loops=1)
              Output: (EXTRACT(year FROM orders.o_orderdate)), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
              Sort Key: (EXTRACT(year FROM orders.o_orderdate))
              Sort Method: quicksort  Memory: 250kB
              Buffers: shared hit=146600
              ->  Nested Loop  (cost=65789.09..262382.78 rows=2429 width=70) (actual time=211.199..798.670 rows=2450.00 loops=1)
                    Output: EXTRACT(year FROM orders.o_orderdate), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
                    Join Filter: (supplier.s_nationkey = n2.n_nationkey)
                    Rows Removed by Join Filter: 58800
                    Buffers: shared hit=146597
                    ->  Hash Join  (cost=65789.09..261464.52 rows=2429 width=20) (actual time=211.174..794.825 rows=2450.00 loops=1)
                          Output: lineitem.l_extendedprice, lineitem.l_discount, supplier.s_nationkey, orders.o_orderdate
                          Hash Cond: (lineitem.l_suppkey = supplier.s_suppkey)
                          Buffers: shared hit=146596
                          ->  Hash Join  (cost=65341.09..260983.12 rows=2429 width=20) (actual time=209.722..792.235 rows=2450.00 loops=1)
                                Output: lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey, orders.o_orderdate
                                Hash Cond: (lineitem.l_orderkey = orders.o_orderkey)
                                Buffers: shared hit=146373
                                ->  Hash Join  (cost=6613.61..202081.82 rows=39877 width=20) (actual time=13.751..585.114 rows=40100.00 loops=1)
                                      Output: lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey, lineitem.l_orderkey
                                      Hash Cond: (lineitem.l_partkey = part.p_partkey)
                                      Buffers: shared hit=116652
                                      ->  Seq Scan on public.lineitem  (cost=0.00..172565.50 rows=6001050 width=24) (actual time=0.007..259.342 rows=6001215.00 loops=1)
                                            Output: lineitem.l_orderkey, lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_linenumber, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_tax, lineitem.l_returnflag, lineitem.l_linestatus, lineitem.l_shipdate, lineitem.l_commitdate, lineitem.l_receiptdate, lineitem.l_shipinstruct, lineitem.l_shipmode, lineitem.l_comment
                                            Buffers: shared hit=112555
                                      ->  Hash  (cost=6597.00..6597.00 rows=1329 width=4) (actual time=13.735..13.735 rows=1349.00 loops=1)
                                            Output: part.p_partkey
                                            Buckets: 2048  Batches: 1  Memory Usage: 64kB
                                            Buffers: shared hit=4097
                                            ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=1329 width=4) (actual time=0.017..13.611 rows=1349.00 loops=1)
                                                  Output: part.p_partkey
                                                  Filter: ((part.p_type)::text = 'STANDARD BURNISHED COPPER'::text)
                                                  Rows Removed by Filter: 198651
                                                  Buffers: shared hit=4097
                                ->  Hash  (cost=57585.52..57585.52 rows=91356 width=8) (actual time=195.758..195.759 rows=91174.00 loops=1)
                                      Output: orders.o_orderdate, orders.o_orderkey
                                      Buckets: 131072  Batches: 1  Memory Usage: 4586kB
                                      Buffers: shared hit=29721
                                      ->  Hash Join  (cost=6334.03..57585.52 rows=91356 width=8) (actual time=18.923..183.519 rows=91174.00 loops=1)
                                            Output: orders.o_orderdate, orders.o_orderkey
                                            Hash Cond: (orders.o_custkey = customer.c_custkey)
                                            Buffers: shared hit=29721
                                            ->  Seq Scan on public.orders  (cost=0.00..48625.00 rows=456782 width=12) (actual time=0.016..116.445 rows=457263.00 loops=1)
                                                  Output: orders.o_orderkey, orders.o_custkey, orders.o_orderstatus, orders.o_totalprice, orders.o_orderdate, orders.o_orderpriority, orders.o_clerk, orders.o_shippriority, orders.o_comment
                                                  Filter: ((orders.o_orderdate >= '1995-01-01'::date) AND (orders.o_orderdate <= '1996-12-31'::date))
                                                  Rows Removed by Filter: 1042737
                                                  Buffers: shared hit=26125
                                            ->  Hash  (cost=5959.03..5959.03 rows=30000 width=4) (actual time=18.878..18.879 rows=29764.00 loops=1)
                                                  Output: customer.c_custkey
                                                  Buckets: 32768  Batches: 1  Memory Usage: 1303kB
                                                  Buffers: shared hit=3596
                                                  ->  Hash Join  (cost=2.53..5959.03 rows=30000 width=4) (actual time=0.028..16.896 rows=29764.00 loops=1)
                                                        Output: customer.c_custkey
                                                        Hash Cond: (customer.c_nationkey = n1.n_nationkey)
                                                        Buffers: shared hit=3596
                                                        ->  Seq Scan on public.customer  (cost=0.00..5094.00 rows=150000 width=8) (actual time=0.007..6.969 rows=150000.00 loops=1)
                                                              Output: customer.c_custkey, customer.c_name, customer.c_address, customer.c_nationkey, customer.c_phone, customer.c_acctbal, customer.c_mktsegment, customer.c_comment
                                                              Buffers: shared hit=3594
                                                        ->  Hash  (cost=2.47..2.47 rows=5 width=4) (actual time=0.018..0.019 rows=5.00 loops=1)
                                                              Output: n1.n_nationkey
                                                              Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                                              Buffers: shared hit=2
                                                              ->  Hash Join  (cost=1.07..2.47 rows=5 width=4) (actual time=0.014..0.017 rows=5.00 loops=1)
                                                                    Output: n1.n_nationkey
                                                                    Hash Cond: (n1.n_regionkey = region.r_regionkey)
                                                                    Buffers: shared hit=2
                                                                    ->  Seq Scan on public.nation n1  (cost=0.00..1.25 rows=25 width=8) (actual time=0.003..0.003 rows=25.00 loops=1)
                                                                          Output: n1.n_nationkey, n1.n_name, n1.n_regionkey, n1.n_comment
                                                                          Buffers: shared hit=1
                                                                    ->  Hash  (cost=1.06..1.06 rows=1 width=4) (actual time=0.007..0.007 rows=1.00 loops=1)
                                                                          Output: region.r_regionkey
                                                                          Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                                                          Buffers: shared hit=1
                                                                          ->  Seq Scan on public.region  (cost=0.00..1.06 rows=1 width=4) (actual time=0.004..0.005 rows=1.00 loops=1)
                                                                                Output: region.r_regionkey
                                                                                Filter: (region.r_name = 'AFRICA'::bpchar)
                                                                                Rows Removed by Filter: 4
                                                                                Buffers: shared hit=1
                          ->  Hash  (cost=323.00..323.00 rows=10000 width=8) (actual time=1.435..1.435 rows=10000.00 loops=1)
                                Output: supplier.s_suppkey, supplier.s_nationkey
                                Buckets: 16384  Batches: 1  Memory Usage: 519kB
                                Buffers: shared hit=223
                                ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=8) (actual time=0.010..0.908 rows=10000.00 loops=1)
                                      Output: supplier.s_suppkey, supplier.s_nationkey
                                      Buffers: shared hit=223
                    ->  Materialize  (cost=0.00..1.38 rows=25 width=30) (actual time=0.000..0.001 rows=25.00 loops=2450)
                          Output: n2.n_name, n2.n_nationkey
                          Storage: Memory  Maximum Storage: 18kB
                          Buffers: shared hit=1
                          ->  Seq Scan on public.nation n2  (cost=0.00..1.25 rows=25 width=30) (actual time=0.013..0.014 rows=25.00 loops=1)
                                Output: n2.n_name, n2.n_nationkey
                                Buffers: shared hit=1
Planning:
  Buffers: shared hit=243
Planning Time: 0.667 ms
Execution Time: 799.655 ms

--- [ CONFIG: goo_rows ] ----------------------------------------
Limit  (cost=260206.62..260206.66 rows=1 width=64) (actual time=828.617..828.622 rows=1.00 loops=1)
  Output: (EXTRACT(year FROM orders.o_orderdate)), ((sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)))))
  Buffers: shared hit=146600
  ->  GroupAggregate  (cost=260206.62..260309.39 rows=2406 width=64) (actual time=828.616..828.620 rows=1.00 loops=1)
        Output: (EXTRACT(year FROM orders.o_orderdate)), (sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount))))
        Group Key: (EXTRACT(year FROM orders.o_orderdate))
        Buffers: shared hit=146600
        ->  Sort  (cost=260206.62..260212.69 rows=2429 width=70) (actual time=828.353..828.384 rows=1248.00 loops=1)
              Output: (EXTRACT(year FROM orders.o_orderdate)), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
              Sort Key: (EXTRACT(year FROM orders.o_orderdate))
              Sort Method: quicksort  Memory: 250kB
              Buffers: shared hit=146600
              ->  Hash Join  (cost=209501.38..260070.04 rows=2429 width=70) (actual time=682.510..827.943 rows=2450.00 loops=1)
                    Output: EXTRACT(year FROM orders.o_orderdate), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
                    Hash Cond: (lineitem.l_suppkey = supplier.s_suppkey)
                    Buffers: shared hit=146597
                    ->  Hash Join  (cost=208914.31..259443.50 rows=2429 width=20) (actual time=680.403..824.866 rows=2450.00 loops=1)
                          Output: orders.o_orderdate, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey
                          Hash Cond: (orders.o_custkey = customer.c_custkey)
                          Buffers: shared hit=146373
                          ->  Hash Join  (cost=202580.28..253039.64 rows=12143 width=24) (actual time=662.842..804.427 rows=12167.00 loops=1)
                                Output: orders.o_orderdate, orders.o_custkey, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey
                                Hash Cond: (orders.o_orderkey = lineitem.l_orderkey)
                                Buffers: shared hit=142777
                                ->  Seq Scan on public.orders  (cost=0.00..48625.00 rows=456782 width=12) (actual time=0.008..107.430 rows=457263.00 loops=1)
                                      Output: orders.o_orderkey, orders.o_custkey, orders.o_orderstatus, orders.o_totalprice, orders.o_orderdate, orders.o_orderpriority, orders.o_clerk, orders.o_shippriority, orders.o_comment
                                      Filter: ((orders.o_orderdate >= '1995-01-01'::date) AND (orders.o_orderdate <= '1996-12-31'::date))
                                      Rows Removed by Filter: 1042737
                                      Buffers: shared hit=26125
                                ->  Hash  (cost=202081.82..202081.82 rows=39877 width=20) (actual time=662.787..662.789 rows=40100.00 loops=1)
                                      Output: lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey, lineitem.l_orderkey
                                      Buckets: 65536  Batches: 1  Memory Usage: 2667kB
                                      Buffers: shared hit=116652
                                      ->  Hash Join  (cost=6613.61..202081.82 rows=39877 width=20) (actual time=12.754..653.668 rows=40100.00 loops=1)
                                            Output: lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey, lineitem.l_orderkey
                                            Hash Cond: (lineitem.l_partkey = part.p_partkey)
                                            Buffers: shared hit=116652
                                            ->  Seq Scan on public.lineitem  (cost=0.00..172565.50 rows=6001050 width=24) (actual time=0.005..272.324 rows=6001215.00 loops=1)
                                                  Output: lineitem.l_orderkey, lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_linenumber, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_tax, lineitem.l_returnflag, lineitem.l_linestatus, lineitem.l_shipdate, lineitem.l_commitdate, lineitem.l_receiptdate, lineitem.l_shipinstruct, lineitem.l_shipmode, lineitem.l_comment
                                                  Buffers: shared hit=112555
                                            ->  Hash  (cost=6597.00..6597.00 rows=1329 width=4) (actual time=12.742..12.742 rows=1349.00 loops=1)
                                                  Output: part.p_partkey
                                                  Buckets: 2048  Batches: 1  Memory Usage: 64kB
                                                  Buffers: shared hit=4097
                                                  ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=1329 width=4) (actual time=0.020..12.654 rows=1349.00 loops=1)
                                                        Output: part.p_partkey
                                                        Filter: ((part.p_type)::text = 'STANDARD BURNISHED COPPER'::text)
                                                        Rows Removed by Filter: 198651
                                                        Buffers: shared hit=4097
                          ->  Hash  (cost=5959.03..5959.03 rows=30000 width=4) (actual time=17.523..17.524 rows=29764.00 loops=1)
                                Output: customer.c_custkey
                                Buckets: 32768  Batches: 1  Memory Usage: 1303kB
                                Buffers: shared hit=3596
                                ->  Hash Join  (cost=2.53..5959.03 rows=30000 width=4) (actual time=0.023..15.969 rows=29764.00 loops=1)
                                      Output: customer.c_custkey
                                      Hash Cond: (customer.c_nationkey = n1.n_nationkey)
                                      Buffers: shared hit=3596
                                      ->  Seq Scan on public.customer  (cost=0.00..5094.00 rows=150000 width=8) (actual time=0.003..6.485 rows=150000.00 loops=1)
                                            Output: customer.c_custkey, customer.c_name, customer.c_address, customer.c_nationkey, customer.c_phone, customer.c_acctbal, customer.c_mktsegment, customer.c_comment
                                            Buffers: shared hit=3594
                                      ->  Hash  (cost=2.47..2.47 rows=5 width=4) (actual time=0.016..0.017 rows=5.00 loops=1)
                                            Output: n1.n_nationkey
                                            Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                            Buffers: shared hit=2
                                            ->  Hash Join  (cost=1.07..2.47 rows=5 width=4) (actual time=0.013..0.015 rows=5.00 loops=1)
                                                  Output: n1.n_nationkey
                                                  Hash Cond: (n1.n_regionkey = region.r_regionkey)
                                                  Buffers: shared hit=2
                                                  ->  Seq Scan on public.nation n1  (cost=0.00..1.25 rows=25 width=8) (actual time=0.002..0.003 rows=25.00 loops=1)
                                                        Output: n1.n_nationkey, n1.n_name, n1.n_regionkey, n1.n_comment
                                                        Buffers: shared hit=1
                                                  ->  Hash  (cost=1.06..1.06 rows=1 width=4) (actual time=0.008..0.008 rows=1.00 loops=1)
                                                        Output: region.r_regionkey
                                                        Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                                        Buffers: shared hit=1
                                                        ->  Seq Scan on public.region  (cost=0.00..1.06 rows=1 width=4) (actual time=0.006..0.006 rows=1.00 loops=1)
                                                              Output: region.r_regionkey
                                                              Filter: (region.r_name = 'AFRICA'::bpchar)
                                                              Rows Removed by Filter: 4
                                                              Buffers: shared hit=1
                    ->  Hash  (cost=462.06..462.06 rows=10000 width=30) (actual time=2.084..2.084 rows=10000.00 loops=1)
                          Output: supplier.s_suppkey, n2.n_name
                          Buckets: 16384  Batches: 1  Memory Usage: 734kB
                          Buffers: shared hit=224
                          ->  Hash Join  (cost=1.56..462.06 rows=10000 width=30) (actual time=0.024..1.460 rows=10000.00 loops=1)
                                Output: supplier.s_suppkey, n2.n_name
                                Hash Cond: (supplier.s_nationkey = n2.n_nationkey)
                                Buffers: shared hit=224
                                ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=8) (actual time=0.008..0.552 rows=10000.00 loops=1)
                                      Output: supplier.s_suppkey, supplier.s_name, supplier.s_address, supplier.s_nationkey, supplier.s_phone, supplier.s_acctbal, supplier.s_comment
                                      Buffers: shared hit=223
                                ->  Hash  (cost=1.25..1.25 rows=25 width=30) (actual time=0.009..0.009 rows=25.00 loops=1)
                                      Output: n2.n_name, n2.n_nationkey
                                      Buckets: 1024  Batches: 1  Memory Usage: 10kB
                                      Buffers: shared hit=1
                                      ->  Seq Scan on public.nation n2  (cost=0.00..1.25 rows=25 width=30) (actual time=0.004..0.005 rows=25.00 loops=1)
                                            Output: n2.n_name, n2.n_nationkey
                                            Buffers: shared hit=1
Planning:
  Buffers: shared hit=243
Planning Time: 0.453 ms
Execution Time: 828.789 ms

--- [ CONFIG: goo_selectivity ] ----------------------------------------
Limit  (cost=289650.16..289650.20 rows=1 width=64) (actual time=1260.799..1260.802 rows=1.00 loops=1)
  Output: (EXTRACT(year FROM orders.o_orderdate)), ((sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)))))
  Buffers: shared hit=146600
  ->  GroupAggregate  (cost=289650.16..289752.93 rows=2406 width=64) (actual time=1260.798..1260.801 rows=1.00 loops=1)
        Output: (EXTRACT(year FROM orders.o_orderdate)), (sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount))))
        Group Key: (EXTRACT(year FROM orders.o_orderdate))
        Buffers: shared hit=146600
        ->  Sort  (cost=289650.16..289656.23 rows=2429 width=70) (actual time=1260.538..1260.568 rows=1248.00 loops=1)
              Output: (EXTRACT(year FROM orders.o_orderdate)), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
              Sort Key: (EXTRACT(year FROM orders.o_orderdate))
              Sort Method: quicksort  Memory: 250kB
              Buffers: shared hit=146600
              ->  Nested Loop  (cost=68368.51..289513.58 rows=2429 width=70) (actual time=201.177..1259.987 rows=2450.00 loops=1)
                    Output: EXTRACT(year FROM orders.o_orderdate), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
                    Join Filter: (n1.n_regionkey = region.r_regionkey)
                    Rows Removed by Join Filter: 9717
                    Buffers: shared hit=146597
                    ->  Seq Scan on public.region  (cost=0.00..1.06 rows=1 width=4) (actual time=0.006..0.008 rows=1.00 loops=1)
                          Output: region.r_regionkey, region.r_name, region.r_comment
                          Filter: (region.r_name = 'AFRICA'::bpchar)
                          Rows Removed by Filter: 4
                          Buffers: shared hit=1
                    ->  Hash Join  (cost=68368.51..289354.65 rows=12143 width=46) (actual time=201.080..1259.160 rows=12167.00 loops=1)
                          Output: n2.n_name, n1.n_regionkey, lineitem.l_extendedprice, lineitem.l_discount, orders.o_orderdate
                          Hash Cond: (supplier.s_nationkey = n2.n_nationkey)
                          Buffers: shared hit=146596
                          ->  Hash Join  (cost=68366.95..289186.13 rows=12143 width=24) (actual time=201.043..1257.513 rows=12167.00 loops=1)
                                Output: n1.n_regionkey, supplier.s_nationkey, lineitem.l_extendedprice, lineitem.l_discount, orders.o_orderdate
                                Hash Cond: (customer.c_nationkey = n1.n_nationkey)
                                Buffers: shared hit=146595
                                ->  Hash Join  (cost=68365.39..289017.60 rows=12143 width=24) (actual time=201.033..1255.983 rows=12167.00 loops=1)
                                      Output: supplier.s_nationkey, customer.c_nationkey, lineitem.l_extendedprice, lineitem.l_discount, orders.o_orderdate
                                      Hash Cond: (lineitem.l_suppkey = supplier.s_suppkey)
                                      Buffers: shared hit=146594
                                      ->  Hash Join  (cost=67917.39..288402.63 rows=12143 width=24) (actual time=199.645..1249.562 rows=12167.00 loops=1)
                                            Output: customer.c_nationkey, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey, orders.o_orderdate
                                            Hash Cond: (orders.o_custkey = customer.c_custkey)
                                            Buffers: shared hit=146371
                                            ->  Hash Join  (cost=60948.39..281266.66 rows=12143 width=24) (actual time=177.812..1222.393 rows=12167.00 loops=1)
                                                  Output: lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey, orders.o_orderdate, orders.o_custkey
                                                  Hash Cond: (lineitem.l_partkey = part.p_partkey)
                                                  Buffers: shared hit=142777
                                                  ->  Hash Join  (cost=54334.78..267678.69 rows=1827448 width=28) (actual time=164.762..1126.211 rows=1829418.00 loops=1)
                                                        Output: lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_partkey, lineitem.l_suppkey, orders.o_orderdate, orders.o_custkey
                                                        Hash Cond: (lineitem.l_orderkey = orders.o_orderkey)
                                                        Buffers: shared hit=138680
                                                        ->  Seq Scan on public.lineitem  (cost=0.00..172565.50 rows=6001050 width=24) (actual time=0.013..241.308 rows=6001215.00 loops=1)
                                                              Output: lineitem.l_orderkey, lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_linenumber, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_tax, lineitem.l_returnflag, lineitem.l_linestatus, lineitem.l_shipdate, lineitem.l_commitdate, lineitem.l_receiptdate, lineitem.l_shipinstruct, lineitem.l_shipmode, lineitem.l_comment
                                                              Buffers: shared hit=112555
                                                        ->  Hash  (cost=48625.00..48625.00 rows=456782 width=12) (actual time=164.391..164.392 rows=457263.00 loops=1)
                                                              Output: orders.o_orderdate, orders.o_orderkey, orders.o_custkey
                                                              Buckets: 524288  Batches: 1  Memory Usage: 23745kB
                                                              Buffers: shared hit=26125
                                                              ->  Seq Scan on public.orders  (cost=0.00..48625.00 rows=456782 width=12) (actual time=0.011..113.244 rows=457263.00 loops=1)
                                                                    Output: orders.o_orderdate, orders.o_orderkey, orders.o_custkey
                                                                    Filter: ((orders.o_orderdate >= '1995-01-01'::date) AND (orders.o_orderdate <= '1996-12-31'::date))
                                                                    Rows Removed by Filter: 1042737
                                                                    Buffers: shared hit=26125
                                                  ->  Hash  (cost=6597.00..6597.00 rows=1329 width=4) (actual time=13.034..13.034 rows=1349.00 loops=1)
                                                        Output: part.p_partkey
                                                        Buckets: 2048  Batches: 1  Memory Usage: 64kB
                                                        Buffers: shared hit=4097
                                                        ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=1329 width=4) (actual time=0.033..12.923 rows=1349.00 loops=1)
                                                              Output: part.p_partkey
                                                              Filter: ((part.p_type)::text = 'STANDARD BURNISHED COPPER'::text)
                                                              Rows Removed by Filter: 198651
                                                              Buffers: shared hit=4097
                                            ->  Hash  (cost=5094.00..5094.00 rows=150000 width=8) (actual time=21.660..21.660 rows=150000.00 loops=1)
                                                  Output: customer.c_custkey, customer.c_nationkey
                                                  Buckets: 262144  Batches: 1  Memory Usage: 7908kB
                                                  Buffers: shared hit=3594
                                                  ->  Seq Scan on public.customer  (cost=0.00..5094.00 rows=150000 width=8) (actual time=0.004..12.118 rows=150000.00 loops=1)
                                                        Output: customer.c_custkey, customer.c_nationkey
                                                        Buffers: shared hit=3594
                                      ->  Hash  (cost=323.00..323.00 rows=10000 width=8) (actual time=1.372..1.372 rows=10000.00 loops=1)
                                            Output: supplier.s_suppkey, supplier.s_nationkey
                                            Buckets: 16384  Batches: 1  Memory Usage: 519kB
                                            Buffers: shared hit=223
                                            ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=8) (actual time=0.008..0.869 rows=10000.00 loops=1)
                                                  Output: supplier.s_suppkey, supplier.s_nationkey
                                                  Buffers: shared hit=223
                                ->  Hash  (cost=1.25..1.25 rows=25 width=8) (actual time=0.005..0.005 rows=25.00 loops=1)
                                      Output: n1.n_nationkey, n1.n_regionkey
                                      Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                      Buffers: shared hit=1
                                      ->  Seq Scan on public.nation n1  (cost=0.00..1.25 rows=25 width=8) (actual time=0.001..0.002 rows=25.00 loops=1)
                                            Output: n1.n_nationkey, n1.n_regionkey
                                            Buffers: shared hit=1
                          ->  Hash  (cost=1.25..1.25 rows=25 width=30) (actual time=0.011..0.011 rows=25.00 loops=1)
                                Output: n2.n_name, n2.n_nationkey
                                Buckets: 1024  Batches: 1  Memory Usage: 10kB
                                Buffers: shared hit=1
                                ->  Seq Scan on public.nation n2  (cost=0.00..1.25 rows=25 width=30) (actual time=0.005..0.006 rows=25.00 loops=1)
                                      Output: n2.n_name, n2.n_nationkey
                                      Buffers: shared hit=1
Planning:
  Buffers: shared hit=243
Planning Time: 0.461 ms
Execution Time: 1262.683 ms

--- [ CONFIG: goo_result_size ] ----------------------------------------
Limit  (cost=261746.24..261746.28 rows=1 width=64) (actual time=747.721..747.725 rows=1.00 loops=1)
  Output: (EXTRACT(year FROM orders.o_orderdate)), ((sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)))))
  Buffers: shared hit=146600
  ->  GroupAggregate  (cost=261746.24..261849.01 rows=2406 width=64) (actual time=747.720..747.724 rows=1.00 loops=1)
        Output: (EXTRACT(year FROM orders.o_orderdate)), (sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount))))
        Group Key: (EXTRACT(year FROM orders.o_orderdate))
        Buffers: shared hit=146600
        ->  Sort  (cost=261746.24..261752.31 rows=2429 width=70) (actual time=747.456..747.486 rows=1248.00 loops=1)
              Output: (EXTRACT(year FROM orders.o_orderdate)), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
              Sort Key: (EXTRACT(year FROM orders.o_orderdate))
              Sort Method: quicksort  Memory: 250kB
              Buffers: shared hit=146600
              ->  Hash Join  (cost=65928.15..261609.66 rows=2429 width=70) (actual time=195.116..746.918 rows=2450.00 loops=1)
                    Output: EXTRACT(year FROM orders.o_orderdate), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
                    Hash Cond: (lineitem.l_suppkey = supplier.s_suppkey)
                    Buffers: shared hit=146597
                    ->  Hash Join  (cost=65341.09..260983.12 rows=2429 width=20) (actual time=192.949..743.500 rows=2450.00 loops=1)
                          Output: orders.o_orderdate, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey
                          Hash Cond: (lineitem.l_orderkey = orders.o_orderkey)
                          Buffers: shared hit=146373
                          ->  Hash Join  (cost=6613.61..202081.82 rows=39877 width=20) (actual time=13.616..553.199 rows=40100.00 loops=1)
                                Output: lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey, lineitem.l_orderkey
                                Hash Cond: (lineitem.l_partkey = part.p_partkey)
                                Buffers: shared hit=116652
                                ->  Seq Scan on public.lineitem  (cost=0.00..172565.50 rows=6001050 width=24) (actual time=0.008..236.801 rows=6001215.00 loops=1)
                                      Output: lineitem.l_orderkey, lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_linenumber, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_tax, lineitem.l_returnflag, lineitem.l_linestatus, lineitem.l_shipdate, lineitem.l_commitdate, lineitem.l_receiptdate, lineitem.l_shipinstruct, lineitem.l_shipmode, lineitem.l_comment
                                      Buffers: shared hit=112555
                                ->  Hash  (cost=6597.00..6597.00 rows=1329 width=4) (actual time=13.599..13.599 rows=1349.00 loops=1)
                                      Output: part.p_partkey
                                      Buckets: 2048  Batches: 1  Memory Usage: 64kB
                                      Buffers: shared hit=4097
                                      ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=1329 width=4) (actual time=0.018..13.485 rows=1349.00 loops=1)
                                            Output: part.p_partkey
                                            Filter: ((part.p_type)::text = 'STANDARD BURNISHED COPPER'::text)
                                            Rows Removed by Filter: 198651
                                            Buffers: shared hit=4097
                          ->  Hash  (cost=57585.52..57585.52 rows=91356 width=8) (actual time=179.160..179.162 rows=91174.00 loops=1)
                                Output: orders.o_orderdate, orders.o_orderkey
                                Buckets: 131072  Batches: 1  Memory Usage: 4586kB
                                Buffers: shared hit=29721
                                ->  Hash Join  (cost=6334.03..57585.52 rows=91356 width=8) (actual time=19.105..168.673 rows=91174.00 loops=1)
                                      Output: orders.o_orderdate, orders.o_orderkey
                                      Hash Cond: (orders.o_custkey = customer.c_custkey)
                                      Buffers: shared hit=29721
                                      ->  Seq Scan on public.orders  (cost=0.00..48625.00 rows=456782 width=12) (actual time=0.020..111.294 rows=457263.00 loops=1)
                                            Output: orders.o_orderkey, orders.o_custkey, orders.o_orderstatus, orders.o_totalprice, orders.o_orderdate, orders.o_orderpriority, orders.o_clerk, orders.o_shippriority, orders.o_comment
                                            Filter: ((orders.o_orderdate >= '1995-01-01'::date) AND (orders.o_orderdate <= '1996-12-31'::date))
                                            Rows Removed by Filter: 1042737
                                            Buffers: shared hit=26125
                                      ->  Hash  (cost=5959.03..5959.03 rows=30000 width=4) (actual time=19.030..19.031 rows=29764.00 loops=1)
                                            Output: customer.c_custkey
                                            Buckets: 32768  Batches: 1  Memory Usage: 1303kB
                                            Buffers: shared hit=3596
                                            ->  Hash Join  (cost=2.53..5959.03 rows=30000 width=4) (actual time=0.048..17.010 rows=29764.00 loops=1)
                                                  Output: customer.c_custkey
                                                  Hash Cond: (customer.c_nationkey = n1.n_nationkey)
                                                  Buffers: shared hit=3596
                                                  ->  Seq Scan on public.customer  (cost=0.00..5094.00 rows=150000 width=8) (actual time=0.006..6.932 rows=150000.00 loops=1)
                                                        Output: customer.c_custkey, customer.c_name, customer.c_address, customer.c_nationkey, customer.c_phone, customer.c_acctbal, customer.c_mktsegment, customer.c_comment
                                                        Buffers: shared hit=3594
                                                  ->  Hash  (cost=2.47..2.47 rows=5 width=4) (actual time=0.027..0.028 rows=5.00 loops=1)
                                                        Output: n1.n_nationkey
                                                        Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                                        Buffers: shared hit=2
                                                        ->  Hash Join  (cost=1.07..2.47 rows=5 width=4) (actual time=0.022..0.025 rows=5.00 loops=1)
                                                              Output: n1.n_nationkey
                                                              Hash Cond: (n1.n_regionkey = region.r_regionkey)
                                                              Buffers: shared hit=2
                                                              ->  Seq Scan on public.nation n1  (cost=0.00..1.25 rows=25 width=8) (actual time=0.005..0.005 rows=25.00 loops=1)
                                                                    Output: n1.n_nationkey, n1.n_name, n1.n_regionkey, n1.n_comment
                                                                    Buffers: shared hit=1
                                                              ->  Hash  (cost=1.06..1.06 rows=1 width=4) (actual time=0.012..0.013 rows=1.00 loops=1)
                                                                    Output: region.r_regionkey
                                                                    Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                                                    Buffers: shared hit=1
                                                                    ->  Seq Scan on public.region  (cost=0.00..1.06 rows=1 width=4) (actual time=0.009..0.009 rows=1.00 loops=1)
                                                                          Output: region.r_regionkey
                                                                          Filter: (region.r_name = 'AFRICA'::bpchar)
                                                                          Rows Removed by Filter: 4
                                                                          Buffers: shared hit=1
                    ->  Hash  (cost=462.06..462.06 rows=10000 width=30) (actual time=2.145..2.147 rows=10000.00 loops=1)
                          Output: supplier.s_suppkey, n2.n_name
                          Buckets: 16384  Batches: 1  Memory Usage: 734kB
                          Buffers: shared hit=224
                          ->  Hash Join  (cost=1.56..462.06 rows=10000 width=30) (actual time=0.025..1.505 rows=10000.00 loops=1)
                                Output: supplier.s_suppkey, n2.n_name
                                Hash Cond: (supplier.s_nationkey = n2.n_nationkey)
                                Buffers: shared hit=224
                                ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=8) (actual time=0.010..0.577 rows=10000.00 loops=1)
                                      Output: supplier.s_suppkey, supplier.s_name, supplier.s_address, supplier.s_nationkey, supplier.s_phone, supplier.s_acctbal, supplier.s_comment
                                      Buffers: shared hit=223
                                ->  Hash  (cost=1.25..1.25 rows=25 width=30) (actual time=0.010..0.010 rows=25.00 loops=1)
                                      Output: n2.n_name, n2.n_nationkey
                                      Buckets: 1024  Batches: 1  Memory Usage: 10kB
                                      Buffers: shared hit=1
                                      ->  Seq Scan on public.nation n2  (cost=0.00..1.25 rows=25 width=30) (actual time=0.005..0.006 rows=25.00 loops=1)
                                            Output: n2.n_name, n2.n_nationkey
                                            Buffers: shared hit=1
Planning:
  Buffers: shared hit=243
Planning Time: 0.658 ms
Execution Time: 747.907 ms

--- [ CONFIG: goo_cost ] ----------------------------------------
Limit  (cost=262261.15..262261.19 rows=1 width=64) (actual time=746.259..746.262 rows=1.00 loops=1)
  Output: (EXTRACT(year FROM orders.o_orderdate)), ((sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)))))
  Buffers: shared hit=146600
  ->  GroupAggregate  (cost=262261.15..262363.92 rows=2406 width=64) (actual time=746.258..746.261 rows=1.00 loops=1)
        Output: (EXTRACT(year FROM orders.o_orderdate)), (sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount))))
        Group Key: (EXTRACT(year FROM orders.o_orderdate))
        Buffers: shared hit=146600
        ->  Sort  (cost=262261.15..262267.22 rows=2429 width=70) (actual time=745.992..746.022 rows=1248.00 loops=1)
              Output: (EXTRACT(year FROM orders.o_orderdate)), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
              Sort Key: (EXTRACT(year FROM orders.o_orderdate))
              Sort Method: quicksort  Memory: 250kB
              Buffers: shared hit=146600
              ->  Hash Join  (cost=65928.15..262124.57 rows=2429 width=70) (actual time=185.914..745.531 rows=2450.00 loops=1)
                    Output: EXTRACT(year FROM orders.o_orderdate), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
                    Hash Cond: (lineitem.l_orderkey = orders.o_orderkey)
                    Buffers: shared hit=146597
                    ->  Hash Join  (cost=7200.68..203217.19 rows=39877 width=42) (actual time=15.092..564.009 rows=40100.00 loops=1)
                          Output: n2.n_name, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_orderkey
                          Hash Cond: (lineitem.l_suppkey = supplier.s_suppkey)
                          Buffers: shared hit=116876
                          ->  Hash Join  (cost=6613.61..202081.82 rows=39877 width=20) (actual time=12.885..550.688 rows=40100.00 loops=1)
                                Output: lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey, lineitem.l_orderkey
                                Hash Cond: (lineitem.l_partkey = part.p_partkey)
                                Buffers: shared hit=116652
                                ->  Seq Scan on public.lineitem  (cost=0.00..172565.50 rows=6001050 width=24) (actual time=0.007..234.581 rows=6001215.00 loops=1)
                                      Output: lineitem.l_orderkey, lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_linenumber, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_tax, lineitem.l_returnflag, lineitem.l_linestatus, lineitem.l_shipdate, lineitem.l_commitdate, lineitem.l_receiptdate, lineitem.l_shipinstruct, lineitem.l_shipmode, lineitem.l_comment
                                      Buffers: shared hit=112555
                                ->  Hash  (cost=6597.00..6597.00 rows=1329 width=4) (actual time=12.870..12.871 rows=1349.00 loops=1)
                                      Output: part.p_partkey
                                      Buckets: 2048  Batches: 1  Memory Usage: 64kB
                                      Buffers: shared hit=4097
                                      ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=1329 width=4) (actual time=0.016..12.779 rows=1349.00 loops=1)
                                            Output: part.p_partkey
                                            Filter: ((part.p_type)::text = 'STANDARD BURNISHED COPPER'::text)
                                            Rows Removed by Filter: 198651
                                            Buffers: shared hit=4097
                          ->  Hash  (cost=462.06..462.06 rows=10000 width=30) (actual time=2.190..2.191 rows=10000.00 loops=1)
                                Output: supplier.s_suppkey, n2.n_name
                                Buckets: 16384  Batches: 1  Memory Usage: 734kB
                                Buffers: shared hit=224
                                ->  Hash Join  (cost=1.56..462.06 rows=10000 width=30) (actual time=0.027..1.525 rows=10000.00 loops=1)
                                      Output: supplier.s_suppkey, n2.n_name
                                      Hash Cond: (supplier.s_nationkey = n2.n_nationkey)
                                      Buffers: shared hit=224
                                      ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=8) (actual time=0.009..0.587 rows=10000.00 loops=1)
                                            Output: supplier.s_suppkey, supplier.s_name, supplier.s_address, supplier.s_nationkey, supplier.s_phone, supplier.s_acctbal, supplier.s_comment
                                            Buffers: shared hit=223
                                      ->  Hash  (cost=1.25..1.25 rows=25 width=30) (actual time=0.011..0.011 rows=25.00 loops=1)
                                            Output: n2.n_name, n2.n_nationkey
                                            Buckets: 1024  Batches: 1  Memory Usage: 10kB
                                            Buffers: shared hit=1
                                            ->  Seq Scan on public.nation n2  (cost=0.00..1.25 rows=25 width=30) (actual time=0.005..0.007 rows=25.00 loops=1)
                                                  Output: n2.n_name, n2.n_nationkey
                                                  Buffers: shared hit=1
                    ->  Hash  (cost=57585.52..57585.52 rows=91356 width=8) (actual time=170.656..170.658 rows=91174.00 loops=1)
                          Output: orders.o_orderdate, orders.o_orderkey
                          Buckets: 131072  Batches: 1  Memory Usage: 4586kB
                          Buffers: shared hit=29721
                          ->  Hash Join  (cost=6334.03..57585.52 rows=91356 width=8) (actual time=17.598..161.274 rows=91174.00 loops=1)
                                Output: orders.o_orderdate, orders.o_orderkey
                                Hash Cond: (orders.o_custkey = customer.c_custkey)
                                Buffers: shared hit=29721
                                ->  Seq Scan on public.orders  (cost=0.00..48625.00 rows=456782 width=12) (actual time=0.012..108.921 rows=457263.00 loops=1)
                                      Output: orders.o_orderkey, orders.o_custkey, orders.o_orderstatus, orders.o_totalprice, orders.o_orderdate, orders.o_orderpriority, orders.o_clerk, orders.o_shippriority, orders.o_comment
                                      Filter: ((orders.o_orderdate >= '1995-01-01'::date) AND (orders.o_orderdate <= '1996-12-31'::date))
                                      Rows Removed by Filter: 1042737
                                      Buffers: shared hit=26125
                                ->  Hash  (cost=5959.03..5959.03 rows=30000 width=4) (actual time=17.557..17.558 rows=29764.00 loops=1)
                                      Output: customer.c_custkey
                                      Buckets: 32768  Batches: 1  Memory Usage: 1303kB
                                      Buffers: shared hit=3596
                                      ->  Hash Join  (cost=2.53..5959.03 rows=30000 width=4) (actual time=0.028..15.921 rows=29764.00 loops=1)
                                            Output: customer.c_custkey
                                            Hash Cond: (customer.c_nationkey = n1.n_nationkey)
                                            Buffers: shared hit=3596
                                            ->  Seq Scan on public.customer  (cost=0.00..5094.00 rows=150000 width=8) (actual time=0.004..6.385 rows=150000.00 loops=1)
                                                  Output: customer.c_custkey, customer.c_name, customer.c_address, customer.c_nationkey, customer.c_phone, customer.c_acctbal, customer.c_mktsegment, customer.c_comment
                                                  Buffers: shared hit=3594
                                            ->  Hash  (cost=2.47..2.47 rows=5 width=4) (actual time=0.019..0.020 rows=5.00 loops=1)
                                                  Output: n1.n_nationkey
                                                  Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                                  Buffers: shared hit=2
                                                  ->  Hash Join  (cost=1.07..2.47 rows=5 width=4) (actual time=0.015..0.018 rows=5.00 loops=1)
                                                        Output: n1.n_nationkey
                                                        Hash Cond: (n1.n_regionkey = region.r_regionkey)
                                                        Buffers: shared hit=2
                                                        ->  Seq Scan on public.nation n1  (cost=0.00..1.25 rows=25 width=8) (actual time=0.003..0.003 rows=25.00 loops=1)
                                                              Output: n1.n_nationkey, n1.n_name, n1.n_regionkey, n1.n_comment
                                                              Buffers: shared hit=1
                                                        ->  Hash  (cost=1.06..1.06 rows=1 width=4) (actual time=0.009..0.009 rows=1.00 loops=1)
                                                              Output: region.r_regionkey
                                                              Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                                              Buffers: shared hit=1
                                                              ->  Seq Scan on public.region  (cost=0.00..1.06 rows=1 width=4) (actual time=0.006..0.007 rows=1.00 loops=1)
                                                                    Output: region.r_regionkey
                                                                    Filter: (region.r_name = 'AFRICA'::bpchar)
                                                                    Rows Removed by Filter: 4
                                                                    Buffers: shared hit=1
Planning:
  Buffers: shared hit=243
Planning Time: 0.456 ms
Execution Time: 746.503 ms

--- [ CONFIG: geqo ] ----------------------------------------
Limit  (cost=261132.34..261132.38 rows=1 width=64) (actual time=785.217..785.221 rows=1.00 loops=1)
  Output: (EXTRACT(year FROM orders.o_orderdate)), ((sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)))))
  Buffers: shared hit=146600
  ->  GroupAggregate  (cost=261132.34..261235.11 rows=2406 width=64) (actual time=785.216..785.220 rows=1.00 loops=1)
        Output: (EXTRACT(year FROM orders.o_orderdate)), (sum(CASE WHEN (n2.n_name = 'ETHIOPIA'::bpchar) THEN (lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount)) ELSE '0'::numeric END) / sum((lineitem.l_extendedprice * ('1'::numeric - lineitem.l_discount))))
        Group Key: (EXTRACT(year FROM orders.o_orderdate))
        Buffers: shared hit=146600
        ->  Sort  (cost=261132.34..261138.41 rows=2429 width=70) (actual time=784.960..784.990 rows=1248.00 loops=1)
              Output: (EXTRACT(year FROM orders.o_orderdate)), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
              Sort Key: (EXTRACT(year FROM orders.o_orderdate))
              Sort Method: quicksort  Memory: 250kB
              Buffers: shared hit=146600
              ->  Hash Join  (cost=210460.49..260995.75 rows=2429 width=70) (actual time=617.919..784.481 rows=2450.00 loops=1)
                    Output: EXTRACT(year FROM orders.o_orderdate), n2.n_name, lineitem.l_extendedprice, lineitem.l_discount
                    Hash Cond: (orders.o_custkey = customer.c_custkey)
                    Buffers: shared hit=146597
                    ->  Hash Join  (cost=204126.46..254585.82 rows=12143 width=46) (actual time=597.893..760.709 rows=12167.00 loops=1)
                          Output: n2.n_name, lineitem.l_extendedprice, lineitem.l_discount, orders.o_orderdate, orders.o_custkey
                          Hash Cond: (orders.o_orderkey = lineitem.l_orderkey)
                          Buffers: shared hit=143001
                          ->  Seq Scan on public.orders  (cost=0.00..48625.00 rows=456782 width=12) (actual time=0.011..110.100 rows=457263.00 loops=1)
                                Output: orders.o_orderkey, orders.o_custkey, orders.o_orderstatus, orders.o_totalprice, orders.o_orderdate, orders.o_orderpriority, orders.o_clerk, orders.o_shippriority, orders.o_comment
                                Filter: ((orders.o_orderdate >= '1995-01-01'::date) AND (orders.o_orderdate <= '1996-12-31'::date))
                                Rows Removed by Filter: 1042737
                                Buffers: shared hit=26125
                          ->  Hash  (cost=203628.00..203628.00 rows=39877 width=42) (actual time=597.824..597.826 rows=40100.00 loops=1)
                                Output: n2.n_name, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_orderkey
                                Buckets: 65536  Batches: 1  Memory Usage: 3486kB
                                Buffers: shared hit=116876
                                ->  Hash Join  (cost=7063.18..203628.00 rows=39877 width=42) (actual time=17.010..589.077 rows=40100.00 loops=1)
                                      Output: n2.n_name, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_orderkey
                                      Hash Cond: (supplier.s_nationkey = n2.n_nationkey)
                                      Buffers: shared hit=116876
                                      ->  Hash Join  (cost=7061.61..203078.13 rows=39877 width=20) (actual time=16.995..585.107 rows=40100.00 loops=1)
                                            Output: lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_orderkey, supplier.s_nationkey
                                            Hash Cond: (lineitem.l_suppkey = supplier.s_suppkey)
                                            Buffers: shared hit=116875
                                            ->  Hash Join  (cost=6613.61..202081.82 rows=39877 width=20) (actual time=15.478..570.770 rows=40100.00 loops=1)
                                                  Output: lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_suppkey, lineitem.l_orderkey
                                                  Hash Cond: (lineitem.l_partkey = part.p_partkey)
                                                  Buffers: shared hit=116652
                                                  ->  Seq Scan on public.lineitem  (cost=0.00..172565.50 rows=6001050 width=24) (actual time=0.004..249.756 rows=6001215.00 loops=1)
                                                        Output: lineitem.l_orderkey, lineitem.l_partkey, lineitem.l_suppkey, lineitem.l_linenumber, lineitem.l_quantity, lineitem.l_extendedprice, lineitem.l_discount, lineitem.l_tax, lineitem.l_returnflag, lineitem.l_linestatus, lineitem.l_shipdate, lineitem.l_commitdate, lineitem.l_receiptdate, lineitem.l_shipinstruct, lineitem.l_shipmode, lineitem.l_comment
                                                        Buffers: shared hit=112555
                                                  ->  Hash  (cost=6597.00..6597.00 rows=1329 width=4) (actual time=15.465..15.466 rows=1349.00 loops=1)
                                                        Output: part.p_partkey
                                                        Buckets: 2048  Batches: 1  Memory Usage: 64kB
                                                        Buffers: shared hit=4097
                                                        ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=1329 width=4) (actual time=0.023..15.371 rows=1349.00 loops=1)
                                                              Output: part.p_partkey
                                                              Filter: ((part.p_type)::text = 'STANDARD BURNISHED COPPER'::text)
                                                              Rows Removed by Filter: 198651
                                                              Buffers: shared hit=4097
                                            ->  Hash  (cost=323.00..323.00 rows=10000 width=8) (actual time=1.497..1.498 rows=10000.00 loops=1)
                                                  Output: supplier.s_suppkey, supplier.s_nationkey
                                                  Buckets: 16384  Batches: 1  Memory Usage: 519kB
                                                  Buffers: shared hit=223
                                                  ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=8) (actual time=0.016..0.968 rows=10000.00 loops=1)
                                                        Output: supplier.s_suppkey, supplier.s_nationkey
                                                        Buffers: shared hit=223
                                      ->  Hash  (cost=1.25..1.25 rows=25 width=30) (actual time=0.009..0.009 rows=25.00 loops=1)
                                            Output: n2.n_name, n2.n_nationkey
                                            Buckets: 1024  Batches: 1  Memory Usage: 10kB
                                            Buffers: shared hit=1
                                            ->  Seq Scan on public.nation n2  (cost=0.00..1.25 rows=25 width=30) (actual time=0.003..0.005 rows=25.00 loops=1)
                                                  Output: n2.n_name, n2.n_nationkey
                                                  Buffers: shared hit=1
                    ->  Hash  (cost=5959.03..5959.03 rows=30000 width=4) (actual time=19.978..19.979 rows=29764.00 loops=1)
                          Output: customer.c_custkey
                          Buckets: 32768  Batches: 1  Memory Usage: 1303kB
                          Buffers: shared hit=3596
                          ->  Hash Join  (cost=2.53..5959.03 rows=30000 width=4) (actual time=0.034..18.269 rows=29764.00 loops=1)
                                Output: customer.c_custkey
                                Hash Cond: (customer.c_nationkey = n1.n_nationkey)
                                Buffers: shared hit=3596
                                ->  Seq Scan on public.customer  (cost=0.00..5094.00 rows=150000 width=8) (actual time=0.005..8.500 rows=150000.00 loops=1)
                                      Output: customer.c_custkey, customer.c_name, customer.c_address, customer.c_nationkey, customer.c_phone, customer.c_acctbal, customer.c_mktsegment, customer.c_comment
                                      Buffers: shared hit=3594
                                ->  Hash  (cost=2.47..2.47 rows=5 width=4) (actual time=0.025..0.026 rows=5.00 loops=1)
                                      Output: n1.n_nationkey
                                      Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                      Buffers: shared hit=2
                                      ->  Hash Join  (cost=1.07..2.47 rows=5 width=4) (actual time=0.017..0.020 rows=5.00 loops=1)
                                            Output: n1.n_nationkey
                                            Hash Cond: (n1.n_regionkey = region.r_regionkey)
                                            Buffers: shared hit=2
                                            ->  Seq Scan on public.nation n1  (cost=0.00..1.25 rows=25 width=8) (actual time=0.002..0.003 rows=25.00 loops=1)
                                                  Output: n1.n_nationkey, n1.n_name, n1.n_regionkey, n1.n_comment
                                                  Buffers: shared hit=1
                                            ->  Hash  (cost=1.06..1.06 rows=1 width=4) (actual time=0.009..0.009 rows=1.00 loops=1)
                                                  Output: region.r_regionkey
                                                  Buckets: 1024  Batches: 1  Memory Usage: 9kB
                                                  Buffers: shared hit=1
                                                  ->  Seq Scan on public.region  (cost=0.00..1.06 rows=1 width=4) (actual time=0.006..0.007 rows=1.00 loops=1)
                                                        Output: region.r_regionkey
                                                        Filter: (region.r_name = 'AFRICA'::bpchar)
                                                        Rows Removed by Filter: 4
                                                        Buffers: shared hit=1
Planning:
  Buffers: shared hit=243
Planning Time: 6.432 ms
Execution Time: 785.380 ms
