Sort: supplier.s_name ASC NULLS LAST
  Projection: supplier.s_name, supplier.s_address
    LeftSemi Join: supplier.s_suppkey = __sq_2.ps_suppkey
      Inner Join: supplier.s_nationkey = nation.n_nationkey
        TableScan: supplier projection=[s_suppkey, s_name, s_address, s_nationkey]
        Filter: nation.n_name = Utf8("CANADA")
          TableScan: nation projection=[n_nationkey, n_name]
      Projection: partsupp.ps_suppkey AS ps_suppkey, alias=__sq_2
        Filter: CAST(partsupp.ps_availqty AS Float64) > __sq_3.__value
          Inner Join: partsupp.ps_partkey = __sq_3.l_partkey, partsupp.ps_suppkey = __sq_3.l_suppkey
            LeftSemi Join: partsupp.ps_partkey = __sq_1.p_partkey
              TableScan: partsupp projection=[ps_partkey, ps_suppkey, ps_availqty]
              Projection: part.p_partkey AS p_partkey, alias=__sq_1
                Filter: part.p_name LIKE Utf8("forest%")
                  TableScan: part projection=[p_partkey, p_name]
            Projection: lineitem.l_partkey, lineitem.l_suppkey, Float64(0.5) * CAST(SUM(lineitem.l_quantity) AS Float64) AS __value, alias=__sq_3
              Aggregate: groupBy=[[lineitem.l_partkey, lineitem.l_suppkey]], aggr=[[SUM(lineitem.l_quantity)]]
                Filter: lineitem.l_shipdate >= Date32("8766") AND lineitem.l_shipdate < Date32("9131")
                  TableScan: lineitem projection=[l_partkey, l_suppkey, l_quantity, l_shipdate]