

======================================================================
 QUERY FILE: 20 (20.sql)
 TIMESTAMP:  Mon Dec 15 19:06:25 CST 2025
======================================================================

--- [ CONFIG: dp ] ----------------------------------------
Limit  (cost=255446.04..255446.04 rows=1 width=51) (actual time=1314.826..1314.831 rows=1.00 loops=1)
  Output: supplier.s_name, supplier.s_address
  Buffers: shared hit=134395
  ->  Sort  (cost=255446.04..255446.04 rows=1 width=51) (actual time=1314.825..1314.830 rows=1.00 loops=1)
        Output: supplier.s_name, supplier.s_address
        Sort Key: supplier.s_name
        Sort Method: top-N heapsort  Memory: 25kB
        Buffers: shared hit=134395
        ->  Nested Loop Semi Join  (cost=243993.72..255446.03 rows=1 width=51) (actual time=1227.776..1314.794 rows=178.00 loops=1)
              Output: supplier.s_name, supplier.s_address
              Join Filter: (supplier.s_suppkey = lineitem.l_suppkey)
              Rows Removed by Join Filter: 1795580
              Buffers: shared hit=134392
              ->  Nested Loop  (cost=0.00..449.31 rows=400 width=55) (actual time=0.020..1.016 rows=393.00 loops=1)
                    Output: supplier.s_name, supplier.s_address, supplier.s_suppkey
                    Join Filter: (supplier.s_nationkey = nation.n_nationkey)
                    Rows Removed by Join Filter: 9607
                    Buffers: shared hit=224
                    ->  Seq Scan on public.nation  (cost=0.00..1.31 rows=1 width=4) (actual time=0.010..0.014 rows=1.00 loops=1)
                          Output: nation.n_nationkey, nation.n_name, nation.n_regionkey, nation.n_comment
                          Filter: (nation.n_name = 'IRAN'::bpchar)
                          Rows Removed by Filter: 24
                          Buffers: shared hit=1
                    ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=59) (actual time=0.008..0.541 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
              ->  Materialize  (cost=243993.72..254990.72 rows=1 width=8) (actual time=2.572..3.218 rows=4569.36 loops=393)
                    Output: partsupp.ps_suppkey, lineitem.l_suppkey
                    Storage: Memory  Maximum Storage: 253kB
                    Buffers: shared hit=134168
                    ->  Hash Join  (cost=243993.72..254990.71 rows=1 width=8) (actual time=1010.636..1226.753 rows=6029.00 loops=1)
                          Output: partsupp.ps_suppkey, lineitem.l_suppkey
                          Hash Cond: ((lineitem.l_partkey = partsupp.ps_partkey) AND (lineitem.l_suppkey = partsupp.ps_suppkey))
                          Join Filter: ((partsupp.ps_availqty)::numeric > ((0.5 * sum(lineitem.l_quantity))))
                          Rows Removed by Join Filter: 13
                          Buffers: shared hit=134168
                          ->  HashAggregate  (cost=209547.85..216879.16 rows=488754 width=40) (actual time=916.317..1100.149 rows=545699.00 loops=1)
                                Output: lineitem.l_partkey, lineitem.l_suppkey, (0.5 * sum(lineitem.l_quantity))
                                Group Key: lineitem.l_partkey, lineitem.l_suppkey
                                Batches: 1  Memory Usage: 204817kB
                                Buffers: shared hit=112555
                                ->  Seq Scan on public.lineitem  (cost=0.00..202570.75 rows=930280 width=13) (actual time=0.029..550.432 rows=914963.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
                                      Filter: ((lineitem.l_shipdate >= '1995-01-01'::date) AND (lineitem.l_shipdate < '1996-01-01 00:00:00'::timestamp without time zone))
                                      Rows Removed by Filter: 5086252
                                      Buffers: shared hit=112555
                          ->  Hash  (cost=34326.66..34326.66 rows=7947 width=16) (actual time=94.276..94.279 rows=8820.00 loops=1)
                                Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, part.p_partkey
                                Buckets: 16384 (originally 8192)  Batches: 1 (originally 1)  Memory Usage: 542kB
                                Buffers: shared hit=21613
                                ->  Hash Semi Join  (cost=6622.25..34326.66 rows=7947 width=16) (actual time=13.091..93.178 rows=8820.00 loops=1)
                                      Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, part.p_partkey
                                      Hash Cond: (partsupp.ps_partkey = part.p_partkey)
                                      Buffers: shared hit=21613
                                      ->  Seq Scan on public.partsupp  (cost=0.00..25516.00 rows=800000 width=12) (actual time=0.005..35.716 rows=800000.00 loops=1)
                                            Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, partsupp.ps_supplycost, partsupp.ps_comment
                                            Buffers: shared hit=17516
                                      ->  Hash  (cost=6597.00..6597.00 rows=2020 width=4) (actual time=12.940..12.942 rows=2205.00 loops=1)
                                            Output: part.p_partkey
                                            Buckets: 4096 (originally 2048)  Batches: 1 (originally 1)  Memory Usage: 110kB
                                            Buffers: shared hit=4097
                                            ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=2020 width=4) (actual time=0.035..12.800 rows=2205.00 loops=1)
                                                  Output: part.p_partkey
                                                  Filter: ((part.p_name)::text ~~ 'maroon%'::text)
                                                  Rows Removed by Filter: 197795
                                                  Buffers: shared hit=4097
Planning:
  Buffers: shared hit=250
Planning Time: 0.468 ms
Execution Time: 1320.895 ms

--- [ CONFIG: goo_rows ] ----------------------------------------
Limit  (cost=262942.06..262942.06 rows=1 width=51) (actual time=61159.577..61159.584 rows=1.00 loops=1)
  Output: supplier.s_name, supplier.s_address
  Buffers: shared hit=134395
  ->  Sort  (cost=262942.06..262942.06 rows=1 width=51) (actual time=61159.576..61159.582 rows=1.00 loops=1)
        Output: supplier.s_name, supplier.s_address
        Sort Key: supplier.s_name
        Sort Method: top-N heapsort  Memory: 25kB
        Buffers: shared hit=134395
        ->  Nested Loop  (cost=224210.47..262942.05 rows=1 width=51) (actual time=58960.167..61159.500 rows=178.00 loops=1)
              Output: supplier.s_name, supplier.s_address
              Join Filter: (supplier.s_nationkey = nation.n_nationkey)
              Rows Removed by Join Filter: 4358
              Buffers: shared hit=134392
              ->  Seq Scan on public.nation  (cost=0.00..1.31 rows=1 width=4) (actual time=0.006..0.016 rows=1.00 loops=1)
                    Output: nation.n_nationkey, nation.n_name, nation.n_regionkey, nation.n_comment
                    Filter: (nation.n_name = 'IRAN'::bpchar)
                    Rows Removed by Filter: 24
                    Buffers: shared hit=1
              ->  Nested Loop Semi Join  (cost=224210.47..262940.72 rows=1 width=55) (actual time=58953.190..61159.306 rows=4536.00 loops=1)
                    Output: supplier.s_name, supplier.s_address, supplier.s_nationkey
                    Join Filter: (supplier.s_suppkey = lineitem.l_suppkey)
                    Rows Removed by Join Filter: 45359908
                    Buffers: shared hit=134391
                    ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=59) (actual time=0.010..1.171 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
                    ->  Materialize  (cost=224210.47..262467.73 rows=1 width=8) (actual time=0.118..5.991 rows=4536.44 loops=10000)
                          Output: partsupp.ps_suppkey, lineitem.l_suppkey
                          Storage: Memory  Maximum Storage: 253kB
                          Buffers: shared hit=134168
                          ->  Nested Loop Semi Join  (cost=224210.47..262467.72 rows=1 width=8) (actual time=1182.521..58950.417 rows=6029.00 loops=1)
                                Output: partsupp.ps_suppkey, lineitem.l_suppkey
                                Join Filter: (lineitem.l_partkey = part.p_partkey)
                                Rows Removed by Join Filter: 1194048617
                                Buffers: shared hit=134168
                                ->  Hash Join  (cost=224210.47..253926.47 rows=64 width=16) (actual time=1073.617..1537.446 rows=544539.00 loops=1)
                                      Output: partsupp.ps_partkey, partsupp.ps_suppkey, lineitem.l_partkey, lineitem.l_suppkey
                                      Inner Unique: true
                                      Hash Cond: ((partsupp.ps_partkey = lineitem.l_partkey) AND (partsupp.ps_suppkey = lineitem.l_suppkey))
                                      Join Filter: ((partsupp.ps_availqty)::numeric > ((0.5 * sum(lineitem.l_quantity))))
                                      Rows Removed by Join Filter: 1160
                                      Buffers: shared hit=130071
                                      ->  Seq Scan on public.partsupp  (cost=0.00..25516.00 rows=800000 width=12) (actual time=0.006..65.853 rows=800000.00 loops=1)
                                            Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, partsupp.ps_supplycost, partsupp.ps_comment
                                            Buffers: shared hit=17516
                                      ->  Hash  (cost=216879.16..216879.16 rows=488754 width=40) (actual time=1073.277..1073.278 rows=545699.00 loops=1)
                                            Output: lineitem.l_partkey, lineitem.l_suppkey, ((0.5 * sum(lineitem.l_quantity)))
                                            Buckets: 1048576 (originally 524288)  Batches: 1 (originally 1)  Memory Usage: 32695kB
                                            Buffers: shared hit=112555
                                            ->  HashAggregate  (cost=209547.85..216879.16 rows=488754 width=40) (actual time=821.922..995.911 rows=545699.00 loops=1)
                                                  Output: lineitem.l_partkey, lineitem.l_suppkey, (0.5 * sum(lineitem.l_quantity))
                                                  Group Key: lineitem.l_partkey, lineitem.l_suppkey
                                                  Batches: 1  Memory Usage: 204817kB
                                                  Buffers: shared hit=112555
                                                  ->  Seq Scan on public.lineitem  (cost=0.00..202570.75 rows=930280 width=13) (actual time=0.009..472.042 rows=914963.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
                                                        Filter: ((lineitem.l_shipdate >= '1995-01-01'::date) AND (lineitem.l_shipdate < '1996-01-01 00:00:00'::timestamp without time zone))
                                                        Rows Removed by Filter: 5086252
                                                        Buffers: shared hit=112555
                                ->  Materialize  (cost=0.00..6607.10 rows=2020 width=4) (actual time=0.000..0.047 rows=2192.78 loops=544539)
                                      Output: part.p_partkey
                                      Storage: Memory  Maximum Storage: 101kB
                                      Buffers: shared hit=4097
                                      ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=2020 width=4) (actual time=0.065..12.789 rows=2205.00 loops=1)
                                            Output: part.p_partkey
                                            Filter: ((part.p_name)::text ~~ 'maroon%'::text)
                                            Rows Removed by Filter: 197795
                                            Buffers: shared hit=4097
Planning:
  Buffers: shared hit=250
Planning Time: 0.455 ms
Execution Time: 61166.437 ms

--- [ CONFIG: goo_selectivity ] ----------------------------------------
Limit  (cost=262942.06..262942.06 rows=1 width=51) (actual time=61804.519..61804.524 rows=1.00 loops=1)
  Output: supplier.s_name, supplier.s_address
  Buffers: shared hit=134395
  ->  Sort  (cost=262942.06..262942.06 rows=1 width=51) (actual time=61804.518..61804.523 rows=1.00 loops=1)
        Output: supplier.s_name, supplier.s_address
        Sort Key: supplier.s_name
        Sort Method: top-N heapsort  Memory: 25kB
        Buffers: shared hit=134395
        ->  Nested Loop  (cost=224210.47..262942.05 rows=1 width=51) (actual time=59559.022..61804.281 rows=178.00 loops=1)
              Output: supplier.s_name, supplier.s_address
              Join Filter: (supplier.s_nationkey = nation.n_nationkey)
              Rows Removed by Join Filter: 4358
              Buffers: shared hit=134392
              ->  Seq Scan on public.nation  (cost=0.00..1.31 rows=1 width=4) (actual time=0.012..0.021 rows=1.00 loops=1)
                    Output: nation.n_nationkey, nation.n_name, nation.n_regionkey, nation.n_comment
                    Filter: (nation.n_name = 'IRAN'::bpchar)
                    Rows Removed by Filter: 24
                    Buffers: shared hit=1
              ->  Nested Loop Semi Join  (cost=224210.47..262940.72 rows=1 width=55) (actual time=59551.937..61803.825 rows=4536.00 loops=1)
                    Output: supplier.s_name, supplier.s_address, supplier.s_nationkey
                    Join Filter: (supplier.s_suppkey = lineitem.l_suppkey)
                    Rows Removed by Join Filter: 45359908
                    Buffers: shared hit=134391
                    ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=59) (actual time=0.010..1.662 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
                    ->  Materialize  (cost=224210.47..262467.73 rows=1 width=8) (actual time=0.118..6.053 rows=4536.44 loops=10000)
                          Output: partsupp.ps_suppkey, lineitem.l_suppkey
                          Storage: Memory  Maximum Storage: 253kB
                          Buffers: shared hit=134168
                          ->  Nested Loop Semi Join  (cost=224210.47..262467.72 rows=1 width=8) (actual time=1176.150..59548.240 rows=6029.00 loops=1)
                                Output: partsupp.ps_suppkey, lineitem.l_suppkey
                                Join Filter: (lineitem.l_partkey = part.p_partkey)
                                Rows Removed by Join Filter: 1194048617
                                Buffers: shared hit=134168
                                ->  Hash Join  (cost=224210.47..253926.47 rows=64 width=16) (actual time=1067.523..1590.995 rows=544539.00 loops=1)
                                      Output: partsupp.ps_partkey, partsupp.ps_suppkey, lineitem.l_partkey, lineitem.l_suppkey
                                      Inner Unique: true
                                      Hash Cond: ((partsupp.ps_partkey = lineitem.l_partkey) AND (partsupp.ps_suppkey = lineitem.l_suppkey))
                                      Join Filter: ((partsupp.ps_availqty)::numeric > ((0.5 * sum(lineitem.l_quantity))))
                                      Rows Removed by Join Filter: 1160
                                      Buffers: shared hit=130071
                                      ->  Seq Scan on public.partsupp  (cost=0.00..25516.00 rows=800000 width=12) (actual time=0.005..84.371 rows=800000.00 loops=1)
                                            Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, partsupp.ps_supplycost, partsupp.ps_comment
                                            Buffers: shared hit=17516
                                      ->  Hash  (cost=216879.16..216879.16 rows=488754 width=40) (actual time=1067.194..1067.195 rows=545699.00 loops=1)
                                            Output: lineitem.l_partkey, lineitem.l_suppkey, ((0.5 * sum(lineitem.l_quantity)))
                                            Buckets: 1048576 (originally 524288)  Batches: 1 (originally 1)  Memory Usage: 32695kB
                                            Buffers: shared hit=112555
                                            ->  HashAggregate  (cost=209547.85..216879.16 rows=488754 width=40) (actual time=819.031..990.960 rows=545699.00 loops=1)
                                                  Output: lineitem.l_partkey, lineitem.l_suppkey, (0.5 * sum(lineitem.l_quantity))
                                                  Group Key: lineitem.l_partkey, lineitem.l_suppkey
                                                  Batches: 1  Memory Usage: 204817kB
                                                  Buffers: shared hit=112555
                                                  ->  Seq Scan on public.lineitem  (cost=0.00..202570.75 rows=930280 width=13) (actual time=0.009..471.763 rows=914963.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
                                                        Filter: ((lineitem.l_shipdate >= '1995-01-01'::date) AND (lineitem.l_shipdate < '1996-01-01 00:00:00'::timestamp without time zone))
                                                        Rows Removed by Filter: 5086252
                                                        Buffers: shared hit=112555
                                ->  Materialize  (cost=0.00..6607.10 rows=2020 width=4) (actual time=0.000..0.047 rows=2192.78 loops=544539)
                                      Output: part.p_partkey
                                      Storage: Memory  Maximum Storage: 101kB
                                      Buffers: shared hit=4097
                                      ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=2020 width=4) (actual time=0.057..13.116 rows=2205.00 loops=1)
                                            Output: part.p_partkey
                                            Filter: ((part.p_name)::text ~~ 'maroon%'::text)
                                            Rows Removed by Filter: 197795
                                            Buffers: shared hit=4097
Planning:
  Buffers: shared hit=250
Planning Time: 0.505 ms
Execution Time: 61807.401 ms

--- [ CONFIG: goo_result_size ] ----------------------------------------
Limit  (cost=262942.06..262942.06 rows=1 width=51) (actual time=62202.107..62202.113 rows=1.00 loops=1)
  Output: supplier.s_name, supplier.s_address
  Buffers: shared hit=134395
  ->  Sort  (cost=262942.06..262942.06 rows=1 width=51) (actual time=62202.106..62202.111 rows=1.00 loops=1)
        Output: supplier.s_name, supplier.s_address
        Sort Key: supplier.s_name
        Sort Method: top-N heapsort  Memory: 25kB
        Buffers: shared hit=134395
        ->  Nested Loop  (cost=224210.47..262942.05 rows=1 width=51) (actual time=59912.000..62201.792 rows=178.00 loops=1)
              Output: supplier.s_name, supplier.s_address
              Join Filter: (supplier.s_nationkey = nation.n_nationkey)
              Rows Removed by Join Filter: 4358
              Buffers: shared hit=134392
              ->  Seq Scan on public.nation  (cost=0.00..1.31 rows=1 width=4) (actual time=0.007..0.017 rows=1.00 loops=1)
                    Output: nation.n_nationkey, nation.n_name, nation.n_regionkey, nation.n_comment
                    Filter: (nation.n_name = 'IRAN'::bpchar)
                    Rows Removed by Filter: 24
                    Buffers: shared hit=1
              ->  Nested Loop Semi Join  (cost=224210.47..262940.72 rows=1 width=55) (actual time=59904.708..62201.440 rows=4536.00 loops=1)
                    Output: supplier.s_name, supplier.s_address, supplier.s_nationkey
                    Join Filter: (supplier.s_suppkey = lineitem.l_suppkey)
                    Rows Removed by Join Filter: 45359908
                    Buffers: shared hit=134391
                    ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=59) (actual time=0.012..3.421 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
                    ->  Materialize  (cost=224210.47..262467.73 rows=1 width=8) (actual time=0.125..6.090 rows=4536.44 loops=10000)
                          Output: partsupp.ps_suppkey, lineitem.l_suppkey
                          Storage: Memory  Maximum Storage: 253kB
                          Buffers: shared hit=134168
                          ->  Nested Loop Semi Join  (cost=224210.47..262467.72 rows=1 width=8) (actual time=1250.356..59899.946 rows=6029.00 loops=1)
                                Output: partsupp.ps_suppkey, lineitem.l_suppkey
                                Join Filter: (lineitem.l_partkey = part.p_partkey)
                                Rows Removed by Join Filter: 1194048617
                                Buffers: shared hit=134168
                                ->  Hash Join  (cost=224210.47..253926.47 rows=64 width=16) (actual time=1140.133..1709.711 rows=544539.00 loops=1)
                                      Output: partsupp.ps_partkey, partsupp.ps_suppkey, lineitem.l_partkey, lineitem.l_suppkey
                                      Inner Unique: true
                                      Hash Cond: ((partsupp.ps_partkey = lineitem.l_partkey) AND (partsupp.ps_suppkey = lineitem.l_suppkey))
                                      Join Filter: ((partsupp.ps_availqty)::numeric > ((0.5 * sum(lineitem.l_quantity))))
                                      Rows Removed by Join Filter: 1160
                                      Buffers: shared hit=130071
                                      ->  Seq Scan on public.partsupp  (cost=0.00..25516.00 rows=800000 width=12) (actual time=0.006..107.777 rows=800000.00 loops=1)
                                            Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, partsupp.ps_supplycost, partsupp.ps_comment
                                            Buffers: shared hit=17516
                                      ->  Hash  (cost=216879.16..216879.16 rows=488754 width=40) (actual time=1139.781..1139.784 rows=545699.00 loops=1)
                                            Output: lineitem.l_partkey, lineitem.l_suppkey, ((0.5 * sum(lineitem.l_quantity)))
                                            Buckets: 1048576 (originally 524288)  Batches: 1 (originally 1)  Memory Usage: 32695kB
                                            Buffers: shared hit=112555
                                            ->  HashAggregate  (cost=209547.85..216879.16 rows=488754 width=40) (actual time=877.312..1054.375 rows=545699.00 loops=1)
                                                  Output: lineitem.l_partkey, lineitem.l_suppkey, (0.5 * sum(lineitem.l_quantity))
                                                  Group Key: lineitem.l_partkey, lineitem.l_suppkey
                                                  Batches: 1  Memory Usage: 204817kB
                                                  Buffers: shared hit=112555
                                                  ->  Seq Scan on public.lineitem  (cost=0.00..202570.75 rows=930280 width=13) (actual time=0.011..492.695 rows=914963.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
                                                        Filter: ((lineitem.l_shipdate >= '1995-01-01'::date) AND (lineitem.l_shipdate < '1996-01-01 00:00:00'::timestamp without time zone))
                                                        Rows Removed by Filter: 5086252
                                                        Buffers: shared hit=112555
                                ->  Materialize  (cost=0.00..6607.10 rows=2020 width=4) (actual time=0.000..0.047 rows=2192.78 loops=544539)
                                      Output: part.p_partkey
                                      Storage: Memory  Maximum Storage: 101kB
                                      Buffers: shared hit=4097
                                      ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=2020 width=4) (actual time=0.141..13.310 rows=2205.00 loops=1)
                                            Output: part.p_partkey
                                            Filter: ((part.p_name)::text ~~ 'maroon%'::text)
                                            Rows Removed by Filter: 197795
                                            Buffers: shared hit=4097
Planning:
  Buffers: shared hit=250
Planning Time: 0.544 ms
Execution Time: 62211.643 ms

--- [ CONFIG: goo_cost ] ----------------------------------------
Limit  (cost=255362.55..255362.55 rows=1 width=51) (actual time=1282.974..1282.979 rows=1.00 loops=1)
  Output: supplier.s_name, supplier.s_address
  Buffers: shared hit=134395
  ->  Sort  (cost=255362.55..255362.55 rows=1 width=51) (actual time=1282.974..1282.978 rows=1.00 loops=1)
        Output: supplier.s_name, supplier.s_address
        Sort Key: supplier.s_name
        Sort Method: top-N heapsort  Memory: 25kB
        Buffers: shared hit=134395
        ->  Nested Loop Semi Join  (cost=243995.04..255362.54 rows=1 width=51) (actual time=1194.833..1282.915 rows=178.00 loops=1)
              Output: supplier.s_name, supplier.s_address
              Join Filter: (supplier.s_suppkey = lineitem.l_suppkey)
              Rows Removed by Join Filter: 1795580
              Buffers: shared hit=134392
              ->  Hash Join  (cost=1.32..365.82 rows=400 width=55) (actual time=0.031..1.357 rows=393.00 loops=1)
                    Output: supplier.s_name, supplier.s_address, supplier.s_suppkey
                    Hash Cond: (supplier.s_nationkey = nation.n_nationkey)
                    Buffers: shared hit=224
                    ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=59) (actual time=0.014..0.754 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.31..1.31 rows=1 width=4) (actual time=0.010..0.011 rows=1.00 loops=1)
                          Output: nation.n_nationkey
                          Buckets: 1024  Batches: 1  Memory Usage: 9kB
                          Buffers: shared hit=1
                          ->  Seq Scan on public.nation  (cost=0.00..1.31 rows=1 width=4) (actual time=0.007..0.008 rows=1.00 loops=1)
                                Output: nation.n_nationkey
                                Filter: (nation.n_name = 'IRAN'::bpchar)
                                Rows Removed by Filter: 24
                                Buffers: shared hit=1
              ->  Materialize  (cost=243993.72..254990.72 rows=1 width=8) (actual time=2.456..3.137 rows=4569.36 loops=393)
                    Output: lineitem.l_suppkey, partsupp.ps_suppkey
                    Storage: Memory  Maximum Storage: 253kB
                    Buffers: shared hit=134168
                    ->  Hash Join  (cost=243993.72..254990.71 rows=1 width=8) (actual time=965.090..1193.680 rows=6029.00 loops=1)
                          Output: lineitem.l_suppkey, partsupp.ps_suppkey
                          Hash Cond: ((lineitem.l_partkey = partsupp.ps_partkey) AND (lineitem.l_suppkey = partsupp.ps_suppkey))
                          Join Filter: ((partsupp.ps_availqty)::numeric > ((0.5 * sum(lineitem.l_quantity))))
                          Rows Removed by Join Filter: 13
                          Buffers: shared hit=134168
                          ->  HashAggregate  (cost=209547.85..216879.16 rows=488754 width=40) (actual time=864.589..1053.233 rows=545699.00 loops=1)
                                Output: lineitem.l_partkey, lineitem.l_suppkey, (0.5 * sum(lineitem.l_quantity))
                                Group Key: lineitem.l_partkey, lineitem.l_suppkey
                                Batches: 1  Memory Usage: 204817kB
                                Buffers: shared hit=112555
                                ->  Seq Scan on public.lineitem  (cost=0.00..202570.75 rows=930280 width=13) (actual time=0.032..487.514 rows=914963.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
                                      Filter: ((lineitem.l_shipdate >= '1995-01-01'::date) AND (lineitem.l_shipdate < '1996-01-01 00:00:00'::timestamp without time zone))
                                      Rows Removed by Filter: 5086252
                                      Buffers: shared hit=112555
                          ->  Hash  (cost=34326.66..34326.66 rows=7947 width=16) (actual time=100.479..100.480 rows=8820.00 loops=1)
                                Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, part.p_partkey
                                Buckets: 16384 (originally 8192)  Batches: 1 (originally 1)  Memory Usage: 542kB
                                Buffers: shared hit=21613
                                ->  Hash Semi Join  (cost=6622.25..34326.66 rows=7947 width=16) (actual time=15.839..99.447 rows=8820.00 loops=1)
                                      Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, part.p_partkey
                                      Hash Cond: (partsupp.ps_partkey = part.p_partkey)
                                      Buffers: shared hit=21613
                                      ->  Seq Scan on public.partsupp  (cost=0.00..25516.00 rows=800000 width=12) (actual time=0.008..43.971 rows=800000.00 loops=1)
                                            Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, partsupp.ps_supplycost, partsupp.ps_comment
                                            Buffers: shared hit=17516
                                      ->  Hash  (cost=6597.00..6597.00 rows=2020 width=4) (actual time=15.674..15.674 rows=2205.00 loops=1)
                                            Output: part.p_partkey
                                            Buckets: 4096 (originally 2048)  Batches: 1 (originally 1)  Memory Usage: 110kB
                                            Buffers: shared hit=4097
                                            ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=2020 width=4) (actual time=0.056..15.490 rows=2205.00 loops=1)
                                                  Output: part.p_partkey
                                                  Filter: ((part.p_name)::text ~~ 'maroon%'::text)
                                                  Rows Removed by Filter: 197795
                                                  Buffers: shared hit=4097
Planning:
  Buffers: shared hit=250
Planning Time: 0.533 ms
Execution Time: 1285.765 ms

--- [ CONFIG: geqo ] ----------------------------------------
Limit  (cost=255362.55..255362.55 rows=1 width=51) (actual time=1284.815..1284.818 rows=1.00 loops=1)
  Output: supplier.s_name, supplier.s_address
  Buffers: shared hit=134395
  ->  Sort  (cost=255362.55..255362.55 rows=1 width=51) (actual time=1284.814..1284.817 rows=1.00 loops=1)
        Output: supplier.s_name, supplier.s_address
        Sort Key: supplier.s_name
        Sort Method: top-N heapsort  Memory: 25kB
        Buffers: shared hit=134395
        ->  Nested Loop Semi Join  (cost=243995.04..255362.54 rows=1 width=51) (actual time=1192.427..1284.767 rows=178.00 loops=1)
              Output: supplier.s_name, supplier.s_address
              Join Filter: (supplier.s_suppkey = lineitem.l_suppkey)
              Rows Removed by Join Filter: 1795580
              Buffers: shared hit=134392
              ->  Hash Join  (cost=1.32..365.82 rows=400 width=55) (actual time=0.032..1.215 rows=393.00 loops=1)
                    Output: supplier.s_name, supplier.s_address, supplier.s_suppkey
                    Hash Cond: (supplier.s_nationkey = nation.n_nationkey)
                    Buffers: shared hit=224
                    ->  Seq Scan on public.supplier  (cost=0.00..323.00 rows=10000 width=59) (actual time=0.015..0.609 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.31..1.31 rows=1 width=4) (actual time=0.010..0.010 rows=1.00 loops=1)
                          Output: nation.n_nationkey
                          Buckets: 1024  Batches: 1  Memory Usage: 9kB
                          Buffers: shared hit=1
                          ->  Seq Scan on public.nation  (cost=0.00..1.31 rows=1 width=4) (actual time=0.007..0.008 rows=1.00 loops=1)
                                Output: nation.n_nationkey
                                Filter: (nation.n_name = 'IRAN'::bpchar)
                                Rows Removed by Filter: 24
                                Buffers: shared hit=1
              ->  Materialize  (cost=243993.72..254990.72 rows=1 width=8) (actual time=2.466..3.134 rows=4569.36 loops=393)
                    Output: partsupp.ps_suppkey, lineitem.l_suppkey
                    Storage: Memory  Maximum Storage: 253kB
                    Buffers: shared hit=134168
                    ->  Hash Join  (cost=243993.72..254990.71 rows=1 width=8) (actual time=969.006..1191.324 rows=6029.00 loops=1)
                          Output: partsupp.ps_suppkey, lineitem.l_suppkey
                          Hash Cond: ((lineitem.l_partkey = partsupp.ps_partkey) AND (lineitem.l_suppkey = partsupp.ps_suppkey))
                          Join Filter: ((partsupp.ps_availqty)::numeric > ((0.5 * sum(lineitem.l_quantity))))
                          Rows Removed by Join Filter: 13
                          Buffers: shared hit=134168
                          ->  HashAggregate  (cost=209547.85..216879.16 rows=488754 width=40) (actual time=873.262..1060.408 rows=545699.00 loops=1)
                                Output: lineitem.l_partkey, lineitem.l_suppkey, (0.5 * sum(lineitem.l_quantity))
                                Group Key: lineitem.l_partkey, lineitem.l_suppkey
                                Batches: 1  Memory Usage: 204817kB
                                Buffers: shared hit=112555
                                ->  Seq Scan on public.lineitem  (cost=0.00..202570.75 rows=930280 width=13) (actual time=0.024..495.985 rows=914963.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
                                      Filter: ((lineitem.l_shipdate >= '1995-01-01'::date) AND (lineitem.l_shipdate < '1996-01-01 00:00:00'::timestamp without time zone))
                                      Rows Removed by Filter: 5086252
                                      Buffers: shared hit=112555
                          ->  Hash  (cost=34326.66..34326.66 rows=7947 width=16) (actual time=95.718..95.719 rows=8820.00 loops=1)
                                Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, part.p_partkey
                                Buckets: 16384 (originally 8192)  Batches: 1 (originally 1)  Memory Usage: 542kB
                                Buffers: shared hit=21613
                                ->  Hash Semi Join  (cost=6622.25..34326.66 rows=7947 width=16) (actual time=13.630..94.448 rows=8820.00 loops=1)
                                      Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, part.p_partkey
                                      Hash Cond: (partsupp.ps_partkey = part.p_partkey)
                                      Buffers: shared hit=21613
                                      ->  Seq Scan on public.partsupp  (cost=0.00..25516.00 rows=800000 width=12) (actual time=0.007..34.969 rows=800000.00 loops=1)
                                            Output: partsupp.ps_partkey, partsupp.ps_suppkey, partsupp.ps_availqty, partsupp.ps_supplycost, partsupp.ps_comment
                                            Buffers: shared hit=17516
                                      ->  Hash  (cost=6597.00..6597.00 rows=2020 width=4) (actual time=13.477..13.477 rows=2205.00 loops=1)
                                            Output: part.p_partkey
                                            Buckets: 4096 (originally 2048)  Batches: 1 (originally 1)  Memory Usage: 110kB
                                            Buffers: shared hit=4097
                                            ->  Seq Scan on public.part  (cost=0.00..6597.00 rows=2020 width=4) (actual time=0.037..13.318 rows=2205.00 loops=1)
                                                  Output: part.p_partkey
                                                  Filter: ((part.p_name)::text ~~ 'maroon%'::text)
                                                  Rows Removed by Filter: 197795
                                                  Buffers: shared hit=4097
Planning:
  Buffers: shared hit=250
Planning Time: 1.844 ms
Execution Time: 1288.737 ms
