write [%0->$$17, %0->$$18]
-- SINK_WRITE  |PARTITIONED|
  project ([$$17, $$18])
  -- STREAM_PROJECT  |PARTITIONED|
    exchange 
    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
      group by ([$$17 := %0->$$21]) decor ([]) {
                aggregate [$$18] <- [function-call: hive:sum(FINAL), Args:[%0->$$20]]
                -- AGGREGATE  |LOCAL|
                  nested tuple source
                  -- NESTED_TUPLE_SOURCE  |LOCAL|
             }
      -- EXTERNAL_GROUP_BY[$$21]  |PARTITIONED|
        exchange 
        -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
          group by ([$$21 := %0->$$1]) decor ([]) {
                    aggregate [$$20] <- [function-call: hive:sum(PARTIAL1), Args:[%0->$$5]]
                    -- AGGREGATE  |LOCAL|
                      nested tuple source
                      -- NESTED_TUPLE_SOURCE  |LOCAL|
                 }
          -- EXTERNAL_GROUP_BY[$$1]  |LOCAL|
            exchange 
            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
              data-scan [$$1, $$5]<-[$$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->$$36, %0->$$37, %0->$$38, %0->$$39, %0->$$40, %0->$$41]
-- SINK_WRITE  |UNPARTITIONED|
  project ([$$36, $$37, $$38, $$39, $$40, $$41])
  -- STREAM_PROJECT  |PARTITIONED|
    limit 100
    -- STREAM_LIMIT  |UNPARTITIONED|
      limit 100
      -- STREAM_LIMIT  |UNPARTITIONED|
        exchange 
        -- SORT_MERGE_EXCHANGE [$$40(DESC), $$39(ASC) ]  |PARTITIONED|
          limit 100
          -- STREAM_LIMIT  |LOCAL|
            exchange 
            -- ONE_TO_ONE_EXCHANGE  |LOCAL|
              order (DESC, %0->$$40) (ASC, %0->$$39) 
              -- STABLE_SORT [$$40(DESC), $$39(ASC)]  |LOCAL|
                exchange 
                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                  group by ([$$36 := %0->$$44; $$37 := %0->$$45; $$38 := %0->$$46; $$39 := %0->$$47; $$40 := %0->$$48]) decor ([]) {
                            aggregate [$$41] <- [function-call: hive:sum(FINAL), Args:[%0->$$43]]
                            -- AGGREGATE  |LOCAL|
                              nested tuple source
                              -- NESTED_TUPLE_SOURCE  |LOCAL|
                         }
                  -- EXTERNAL_GROUP_BY[$$44, $$45, $$46, $$47, $$48]  |PARTITIONED|
                    exchange 
                    -- HASH_PARTITION_EXCHANGE [$$44, $$45, $$46, $$47, $$48]  |PARTITIONED|
                      group by ([$$44 := %0->$$20; $$45 := %0->$$19; $$46 := %0->$$27; $$47 := %0->$$31; $$48 := %0->$$30]) decor ([]) {
                                aggregate [$$43] <- [function-call: hive:sum(PARTIAL1), Args:[%0->$$7]]
                                -- AGGREGATE  |LOCAL|
                                  nested tuple source
                                  -- NESTED_TUPLE_SOURCE  |LOCAL|
                             }
                      -- EXTERNAL_GROUP_BY[$$20, $$19, $$27, $$31, $$30]  |LOCAL|
                        exchange 
                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                          project ([$$19, $$20, $$27, $$30, $$31, $$7])
                          -- STREAM_PROJECT  |PARTITIONED|
                            exchange 
                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                              join (function-call: algebricks:eq, Args:[%0->$$27, %0->$$1])
                              -- HYBRID_HASH_JOIN [$$1][$$27]  |PARTITIONED|
                                exchange 
                                -- HASH_PARTITION_EXCHANGE [$$1]  |PARTITIONED|
                                  project ([$$1, $$7])
                                  -- STREAM_PROJECT  |PARTITIONED|
                                    exchange 
                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                      join (function-call: algebricks:eq, Args:[%0->$$3, %0->$$1])
                                      -- HYBRID_HASH_JOIN [$$3][$$1]  |PARTITIONED|
                                        exchange 
                                        -- HASH_PARTITION_EXCHANGE [$$3]  |PARTITIONED|
                                          data-scan [$$3, $$7]<-[$$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14, $$15, $$16, $$17, $$18] <- default.lineitem
                                          -- DATASOURCE_SCAN  |PARTITIONED|
                                            exchange 
                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                              empty-tuple-source
                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                        exchange 
                                        -- HASH_PARTITION_EXCHANGE [$$1]  |PARTITIONED|
                                          project ([$$1])
                                          -- STREAM_PROJECT  |PARTITIONED|
                                            select (function-call: algebricks:gt, Args:[%0->$$2, 300])
                                            -- STREAM_SELECT  |PARTITIONED|
                                              exchange 
                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                data-scan []<-[$$1, $$2] <- default.q18_tmp
                                                -- DATASOURCE_SCAN  |PARTITIONED|
                                                  exchange 
                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                    empty-tuple-source
                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                exchange 
                                -- HASH_PARTITION_EXCHANGE [$$27]  |PARTITIONED|
                                  project ([$$27, $$19, $$20, $$30, $$31])
                                  -- STREAM_PROJECT  |PARTITIONED|
                                    exchange 
                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                      join (function-call: algebricks:eq, Args:[%0->$$28, %0->$$19])
                                      -- HYBRID_HASH_JOIN [$$28][$$19]  |PARTITIONED|
                                        exchange 
                                        -- HASH_PARTITION_EXCHANGE [$$28]  |PARTITIONED|
                                          data-scan [$$28, $$27, $$30, $$31]<-[$$27, $$28, $$29, $$30, $$31, $$32, $$33, $$34, $$35] <- default.orders
                                          -- DATASOURCE_SCAN  |PARTITIONED|
                                            exchange 
                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                              empty-tuple-source
                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                        exchange 
                                        -- HASH_PARTITION_EXCHANGE [$$19]  |PARTITIONED|
                                          data-scan [$$19, $$20]<-[$$19, $$20, $$21, $$22, $$23, $$24, $$25, $$26] <- default.customer
                                          -- DATASOURCE_SCAN  |PARTITIONED|
                                            exchange 
                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                              empty-tuple-source
                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
