write [%0->$$1]
-- SINK_WRITE  |PARTITIONED|
  exchange 
  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
    distinct ([%0->$$1])
    -- PRE_SORTED_DISTINCT_BY  |PARTITIONED|
      exchange 
      -- ONE_TO_ONE_EXCHANGE  |LOCAL|
        order (ASC, %0->$$1) 
        -- STABLE_SORT [$$1(ASC)]  |LOCAL|
          exchange 
          -- HASH_PARTITION_EXCHANGE [$$1]  |PARTITIONED|
            project ([$$1])
            -- STREAM_PROJECT  |PARTITIONED|
              select (function-call: algebricks:lt, Args:[%0->$$12, %0->$$13])
              -- STREAM_SELECT  |PARTITIONED|
                exchange 
                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                  data-scan [$$1, $$12, $$13]<-[$$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16] <- default.lineitem
                  -- DATASOURCE_SCAN  |PARTITIONED|
                    exchange 
                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                      empty-tuple-source
                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
write [%0->$$11, %0->$$13]
-- SINK_WRITE  |PARTITIONED|
  project ([$$11, $$13])
  -- STREAM_PROJECT  |PARTITIONED|
    assign [$$13] <- [function-call: hive:org.apache.hadoop.hive.ql.udf.UDFToInteger, Args:[%0->$$12]]
    -- ASSIGN  |PARTITIONED|
      exchange 
      -- SORT_MERGE_EXCHANGE [$$11(ASC) ]  |PARTITIONED|
        order (ASC, %0->$$11) 
        -- STABLE_SORT [$$11(ASC)]  |LOCAL|
          exchange 
          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
            group by ([$$11 := %0->$$16]) decor ([]) {
                      aggregate [$$12] <- [function-call: hive:count(FINAL), Args:[%0->$$15]]
                      -- AGGREGATE  |LOCAL|
                        nested tuple source
                        -- NESTED_TUPLE_SOURCE  |LOCAL|
                   }
            -- EXTERNAL_GROUP_BY[$$16]  |PARTITIONED|
              exchange 
              -- HASH_PARTITION_EXCHANGE [$$16]  |PARTITIONED|
                group by ([$$16 := %0->$$7]) decor ([]) {
                          aggregate [$$15] <- [function-call: hive:count(PARTIAL1), Args:[1]]
                          -- AGGREGATE  |LOCAL|
                            nested tuple source
                            -- NESTED_TUPLE_SOURCE  |LOCAL|
                       }
                -- EXTERNAL_GROUP_BY[$$7]  |LOCAL|
                  exchange 
                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                    project ([$$7])
                    -- STREAM_PROJECT  |PARTITIONED|
                      exchange 
                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                        join (function-call: algebricks:eq, Args:[%0->$$1, %0->$$2])
                        -- HYBRID_HASH_JOIN [$$1][$$2]  |PARTITIONED|
                          exchange 
                          -- HASH_PARTITION_EXCHANGE [$$1]  |PARTITIONED|
                            data-scan []<-[$$1] <- default.q4_order_priority_tmp
                            -- DATASOURCE_SCAN  |PARTITIONED|
                              exchange 
                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                empty-tuple-source
                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                          exchange 
                          -- HASH_PARTITION_EXCHANGE [$$2]  |PARTITIONED|
                            project ([$$2, $$7])
                            -- STREAM_PROJECT  |PARTITIONED|
                              select (function-call: algebricks:and, Args:[function-call: algebricks:lt, Args:[%0->$$6, 1993-10-01], function-call: algebricks:ge, Args:[%0->$$6, 1993-07-01], function-call: algebricks:lt, Args:[%0->$$6, 1993-10-01]])
                              -- STREAM_SELECT  |PARTITIONED|
                                exchange 
                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                  data-scan [$$2, $$6, $$7]<-[$$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10] <- default.orders
                                  -- DATASOURCE_SCAN  |PARTITIONED|
                                    exchange 
                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                      empty-tuple-source
                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
