Fix ASTERIXDB-1875 UDF in SQL++

1. Fix the bug that if a function created with SQLPP, the callExpr in
   the function body is not normalzied to list input functions.
2. Fix the bug that in SQL++ Query Rewritter, the variables are not
   expanded before the inline the functions.
3. Add test case for this issue.
4. Make SQL++ visitor visits decorVariableExpression.
5. Optimizer test cases update.

Change-Id: I7cf72c690b452dd141efe56f5d7098a6f00cab0f
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1666
Sonar-Qube: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
BAD: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Reviewed-by: Yingyi Bu <buyin...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/96fd4026
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/96fd4026
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/96fd4026

Branch: refs/heads/master
Commit: 96fd4026acb2e97ff43a79ac6a1c92337ce9f753
Parents: ab01c87
Author: Xikui Wang <xkk...@gmail.com>
Authored: Mon Apr 10 14:23:31 2017 -0700
Committer: Xikui Wang <xkk...@gmail.com>
Committed: Mon Apr 10 15:39:54 2017 -0700

----------------------------------------------------------------------
 .../results/aggregate/constant-gby-agg.plan     |  6 +-
 .../resources/optimizerts/results/loj-core.plan | 10 +--
 .../optimizerts/results/loj-sugar.plan          | 10 +--
 .../results/query-ASTERIXDB-159-3.plan          |  8 +--
 .../results/query-ASTERIXDB-1671.plan           |  4 +-
 .../results/query-ASTERIXDB-1806.plan           |  8 +--
 .../optimizerts/results/subquery/exists.plan    | 22 +++---
 .../optimizerts/results/subquery/in.plan        | 10 +--
 .../results/subquery/in_correlated.plan         | 10 +--
 .../results/subquery/not_exists.plan            | 22 +++---
 .../results/subquery/query-ASTERIXDB-1572.plan  | 36 +++++-----
 .../results/tpcds/query-ASTERIXDB-1580.plan     | 28 ++++----
 .../tpcds/query-ASTERIXDB-1581-correlated.plan  | 72 ++++++++++----------
 .../results/tpcds/query-ASTERIXDB-1581.plan     | 30 ++++----
 .../results/tpcds/query-ASTERIXDB-1591.plan     | 60 ++++++++--------
 .../results/tpcds/query-ASTERIXDB-1596.plan     | 10 +--
 .../optimizerts/results/tpch/q12_shipping.plan  | 14 ++--
 .../results/tpch/q12_shipping_broadcast.plan    | 12 ++--
 .../query-ASTERIXDB-1298.1.ddl.sqlpp            | 26 +++++++
 .../query-ASTERIXDB-1298.2.query.sqlpp          | 23 +++++++
 .../query-ASTERIXDB-1875.1.adm                  |  1 +
 .../lang/sqlpp/rewrites/SqlppQueryRewriter.java |  8 +--
 .../AbstractSqlppSimpleExpressionVisitor.java   |  3 +
 .../asterix-lang-sqlpp/src/main/javacc/SQLPP.jj |  4 +-
 24 files changed, 245 insertions(+), 192 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate/constant-gby-agg.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate/constant-gby-agg.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate/constant-gby-agg.plan
index 94bf390..d6399f7 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate/constant-gby-agg.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate/constant-gby-agg.plan
@@ -3,13 +3,13 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-          -- SORT_GROUP_BY[$$26]  |PARTITIONED|
+          -- SORT_GROUP_BY[$$20]  |PARTITIONED|
                   {
                     -- AGGREGATE  |LOCAL|
                       -- NESTED_TUPLE_SOURCE  |LOCAL|
                   }
-            -- HASH_PARTITION_EXCHANGE [$$26]  |PARTITIONED|
-              -- SORT_GROUP_BY[$$22]  |PARTITIONED|
+            -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+              -- SORT_GROUP_BY[$$16]  |PARTITIONED|
                       {
                         -- AGGREGATE  |LOCAL|
                           -- NESTED_TUPLE_SOURCE  |LOCAL|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-core.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-core.plan 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-core.plan
index fb6d5fb..1d34c95 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-core.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-core.plan
@@ -2,20 +2,20 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- SORT_MERGE_EXCHANGE [$$18(ASC) ]  |PARTITIONED|
-          -- STABLE_SORT [$$18(ASC)]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$15(ASC) ]  |PARTITIONED|
+          -- STABLE_SORT [$$15(ASC)]  |PARTITIONED|
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
               -- STREAM_PROJECT  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  -- HYBRID_HASH_JOIN [$$20][$$21]  |PARTITIONED|
-                    -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                  -- HYBRID_HASH_JOIN [$$17][$$18]  |PARTITIONED|
+                    -- HASH_PARTITION_EXCHANGE [$$17]  |PARTITIONED|
                       -- STREAM_PROJECT  |PARTITIONED|
                         -- ASSIGN  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                             -- DATASOURCE_SCAN  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                    -- HASH_PARTITION_EXCHANGE [$$21]  |PARTITIONED|
+                    -- HASH_PARTITION_EXCHANGE [$$18]  |PARTITIONED|
                       -- ASSIGN  |PARTITIONED|
                         -- STREAM_PROJECT  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-sugar.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-sugar.plan 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-sugar.plan
index c712344..1d34c95 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-sugar.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-sugar.plan
@@ -2,20 +2,20 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- SORT_MERGE_EXCHANGE [$$17(ASC) ]  |PARTITIONED|
-          -- STABLE_SORT [$$17(ASC)]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$15(ASC) ]  |PARTITIONED|
+          -- STABLE_SORT [$$15(ASC)]  |PARTITIONED|
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
               -- STREAM_PROJECT  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  -- HYBRID_HASH_JOIN [$$19][$$20]  |PARTITIONED|
-                    -- HASH_PARTITION_EXCHANGE [$$19]  |PARTITIONED|
+                  -- HYBRID_HASH_JOIN [$$17][$$18]  |PARTITIONED|
+                    -- HASH_PARTITION_EXCHANGE [$$17]  |PARTITIONED|
                       -- STREAM_PROJECT  |PARTITIONED|
                         -- ASSIGN  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                             -- DATASOURCE_SCAN  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                    -- HASH_PARTITION_EXCHANGE [$$20]  |PARTITIONED|
+                    -- HASH_PARTITION_EXCHANGE [$$18]  |PARTITIONED|
                       -- ASSIGN  |PARTITIONED|
                         -- STREAM_PROJECT  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-159-3.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-159-3.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-159-3.plan
index dc1614a..ab2661b 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-159-3.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-159-3.plan
@@ -3,14 +3,14 @@
     -- STREAM_LIMIT  |UNPARTITIONED|
       -- STREAM_PROJECT  |PARTITIONED|
         -- ASSIGN  |PARTITIONED|
-          -- SORT_MERGE_EXCHANGE [$$29(DESC), $$30(DESC) ]  |PARTITIONED|
+          -- SORT_MERGE_EXCHANGE [$$27(DESC), $$28(DESC) ]  |PARTITIONED|
             -- STREAM_LIMIT  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                -- STABLE_SORT [topK: 5] [$$29(DESC), $$30(DESC)]  
|PARTITIONED|
+                -- STABLE_SORT [topK: 5] [$$27(DESC), $$28(DESC)]  
|PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$29][$$38]  |PARTITIONED|
+                        -- HYBRID_HASH_JOIN [$$27][$$36]  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                             -- STREAM_PROJECT  |PARTITIONED|
                               -- ASSIGN  |PARTITIONED|
@@ -27,7 +27,7 @@
                                                     -- DATASOURCE_SCAN  
|PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                         -- EMPTY_TUPLE_SOURCE  
|PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$38]  |PARTITIONED|
+                          -- HASH_PARTITION_EXCHANGE [$$36]  |PARTITIONED|
                             -- STREAM_PROJECT  |PARTITIONED|
                               -- STREAM_SELECT  |PARTITIONED|
                                 -- SUBPLAN  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1671.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1671.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1671.plan
index 6b370af..3aaaeb0 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1671.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1671.plan
@@ -4,10 +4,10 @@
       -- STREAM_PROJECT  |PARTITIONED|
         -- ASSIGN  |PARTITIONED|
           -- STREAM_PROJECT  |PARTITIONED|
-            -- SORT_MERGE_EXCHANGE [$$11(ASC), $$12(ASC) ]  |PARTITIONED|
+            -- SORT_MERGE_EXCHANGE [$$10(ASC), $$11(ASC) ]  |PARTITIONED|
               -- STREAM_LIMIT  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  -- STABLE_SORT [topK: 0] [$$11(ASC), $$12(ASC)]  
|PARTITIONED|
+                  -- STABLE_SORT [topK: 0] [$$10(ASC), $$11(ASC)]  
|PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                       -- ASSIGN  |PARTITIONED|
                         -- STREAM_PROJECT  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1806.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1806.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1806.plan
index 0ef1ee3..2439f0d 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1806.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1806.plan
@@ -2,14 +2,14 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- SORT_MERGE_EXCHANGE [$$16(ASC), $$17(ASC) ]  |PARTITIONED|
-          -- SORT_GROUP_BY[$$112, $$113]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$2(ASC), $$3(ASC) ]  |PARTITIONED|
+          -- SORT_GROUP_BY[$$98, $$99]  |PARTITIONED|
                   {
                     -- AGGREGATE  |LOCAL|
                       -- NESTED_TUPLE_SOURCE  |LOCAL|
                   }
-            -- HASH_PARTITION_EXCHANGE [$$112, $$113]  |PARTITIONED|
-              -- SORT_GROUP_BY[$$80, $$81]  |PARTITIONED|
+            -- HASH_PARTITION_EXCHANGE [$$98, $$99]  |PARTITIONED|
+              -- SORT_GROUP_BY[$$66, $$67]  |PARTITIONED|
                       {
                         -- AGGREGATE  |LOCAL|
                           -- NESTED_TUPLE_SOURCE  |LOCAL|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/exists.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/exists.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/exists.plan
index 3724559..1c404ab 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/exists.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/exists.plan
@@ -2,14 +2,14 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- SORT_MERGE_EXCHANGE [$$31(ASC) ]  |PARTITIONED|
-          -- SORT_GROUP_BY[$$104]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$9(ASC) ]  |PARTITIONED|
+          -- SORT_GROUP_BY[$$82]  |PARTITIONED|
                   {
                     -- AGGREGATE  |LOCAL|
                       -- NESTED_TUPLE_SOURCE  |LOCAL|
                   }
-            -- HASH_PARTITION_EXCHANGE [$$104]  |PARTITIONED|
-              -- SORT_GROUP_BY[$$81]  |PARTITIONED|
+            -- HASH_PARTITION_EXCHANGE [$$82]  |PARTITIONED|
+              -- SORT_GROUP_BY[$$59]  |PARTITIONED|
                       {
                         -- AGGREGATE  |LOCAL|
                           -- NESTED_TUPLE_SOURCE  |LOCAL|
@@ -21,25 +21,25 @@
                         -- STREAM_SELECT  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- SORT_GROUP_BY[$$101]  |PARTITIONED|
+                              -- SORT_GROUP_BY[$$79]  |PARTITIONED|
                                       {
                                         -- AGGREGATE  |LOCAL|
                                           -- NESTED_TUPLE_SOURCE  |LOCAL|
                                       }
-                                -- HASH_PARTITION_EXCHANGE [$$101]  
|PARTITIONED|
-                                  -- PRE_CLUSTERED_GROUP_BY[$$95]  
|PARTITIONED|
+                                -- HASH_PARTITION_EXCHANGE [$$79]  
|PARTITIONED|
+                                  -- PRE_CLUSTERED_GROUP_BY[$$73]  
|PARTITIONED|
                                           {
                                             -- AGGREGATE  |LOCAL|
                                               -- STREAM_SELECT  |LOCAL|
                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
                                           }
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- STABLE_SORT [$$95(ASC)]  |PARTITIONED|
+                                      -- STABLE_SORT [$$73(ASC)]  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                           -- STREAM_PROJECT  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                              -- HYBRID_HASH_JOIN [$$90][$$87] 
 |PARTITIONED|
-                                                -- HASH_PARTITION_EXCHANGE 
[$$90]  |PARTITIONED|
+                                              -- HYBRID_HASH_JOIN [$$68][$$65] 
 |PARTITIONED|
+                                                -- HASH_PARTITION_EXCHANGE 
[$$68]  |PARTITIONED|
                                                   -- ASSIGN  |PARTITIONED|
                                                     -- STREAM_PROJECT  
|PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
@@ -66,7 +66,7 @@
                                                                                
 -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                -- HASH_PARTITION_EXCHANGE 
[$$87]  |PARTITIONED|
+                                                -- HASH_PARTITION_EXCHANGE 
[$$65]  |PARTITIONED|
                                                   -- ASSIGN  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                       -- DATASOURCE_SCAN  
|PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan
index 9efd93d..8276df2 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan
@@ -2,13 +2,13 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- SORT_MERGE_EXCHANGE [$$29(ASC) ]  |PARTITIONED|
-          -- STABLE_SORT [$$29(ASC)]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$26(ASC) ]  |PARTITIONED|
+          -- STABLE_SORT [$$26(ASC)]  |PARTITIONED|
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
               -- STREAM_PROJECT  |PARTITIONED|
                 -- STREAM_SELECT  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- PRE_CLUSTERED_GROUP_BY[$$22]  |PARTITIONED|
+                    -- PRE_CLUSTERED_GROUP_BY[$$19]  |PARTITIONED|
                             {
                               -- AGGREGATE  |LOCAL|
                                 -- STREAM_SELECT  |LOCAL|
@@ -17,7 +17,7 @@
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                         -- STREAM_PROJECT  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- HYBRID_HASH_JOIN [$$22][$$10]  |PARTITIONED|
+                            -- HYBRID_HASH_JOIN [$$19][$$7]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|
                                   -- STREAM_SELECT  |PARTITIONED|
@@ -25,7 +25,7 @@
                                       -- DATASOURCE_SCAN  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                           -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                              -- HASH_PARTITION_EXCHANGE [$$10]  |PARTITIONED|
+                              -- HASH_PARTITION_EXCHANGE [$$7]  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|
                                   -- ASSIGN  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan
index f967282..268b914 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan
@@ -2,13 +2,13 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- SORT_MERGE_EXCHANGE [$$34(ASC) ]  |PARTITIONED|
-          -- STABLE_SORT [$$34(ASC)]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$31(ASC) ]  |PARTITIONED|
+          -- STABLE_SORT [$$31(ASC)]  |PARTITIONED|
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
               -- STREAM_PROJECT  |PARTITIONED|
                 -- STREAM_SELECT  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- PRE_CLUSTERED_GROUP_BY[$$26]  |PARTITIONED|
+                    -- PRE_CLUSTERED_GROUP_BY[$$23]  |PARTITIONED|
                             {
                               -- AGGREGATE  |LOCAL|
                                 -- STREAM_SELECT  |LOCAL|
@@ -22,7 +22,7 @@
                                       -- NESTED_TUPLE_SOURCE  |LOCAL|
                             }
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- HYBRID_HASH_JOIN [$$26][$$25]  |PARTITIONED|
+                        -- HYBRID_HASH_JOIN [$$23][$$22]  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                             -- STREAM_SELECT  |PARTITIONED|
                               -- ASSIGN  |PARTITIONED|
@@ -30,7 +30,7 @@
                                   -- DATASOURCE_SCAN  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          -- HASH_PARTITION_EXCHANGE [$$25]  |PARTITIONED|
+                          -- HASH_PARTITION_EXCHANGE [$$22]  |PARTITIONED|
                             -- STREAM_PROJECT  |PARTITIONED|
                               -- ASSIGN  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/not_exists.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/not_exists.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/not_exists.plan
index 139b084..b134499 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/not_exists.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/not_exists.plan
@@ -2,14 +2,14 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
-        -- SORT_MERGE_EXCHANGE [$$31(ASC) ]  |PARTITIONED|
-          -- SORT_GROUP_BY[$$105]  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$9(ASC) ]  |PARTITIONED|
+          -- SORT_GROUP_BY[$$83]  |PARTITIONED|
                   {
                     -- AGGREGATE  |LOCAL|
                       -- NESTED_TUPLE_SOURCE  |LOCAL|
                   }
-            -- HASH_PARTITION_EXCHANGE [$$105]  |PARTITIONED|
-              -- SORT_GROUP_BY[$$82]  |PARTITIONED|
+            -- HASH_PARTITION_EXCHANGE [$$83]  |PARTITIONED|
+              -- SORT_GROUP_BY[$$60]  |PARTITIONED|
                       {
                         -- AGGREGATE  |LOCAL|
                           -- NESTED_TUPLE_SOURCE  |LOCAL|
@@ -21,25 +21,25 @@
                         -- STREAM_SELECT  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- SORT_GROUP_BY[$$102]  |PARTITIONED|
+                              -- SORT_GROUP_BY[$$80]  |PARTITIONED|
                                       {
                                         -- AGGREGATE  |LOCAL|
                                           -- NESTED_TUPLE_SOURCE  |LOCAL|
                                       }
-                                -- HASH_PARTITION_EXCHANGE [$$102]  
|PARTITIONED|
-                                  -- PRE_CLUSTERED_GROUP_BY[$$96]  
|PARTITIONED|
+                                -- HASH_PARTITION_EXCHANGE [$$80]  
|PARTITIONED|
+                                  -- PRE_CLUSTERED_GROUP_BY[$$74]  
|PARTITIONED|
                                           {
                                             -- AGGREGATE  |LOCAL|
                                               -- STREAM_SELECT  |LOCAL|
                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
                                           }
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- STABLE_SORT [$$96(ASC)]  |PARTITIONED|
+                                      -- STABLE_SORT [$$74(ASC)]  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                           -- STREAM_PROJECT  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                              -- HYBRID_HASH_JOIN [$$91][$$88] 
 |PARTITIONED|
-                                                -- HASH_PARTITION_EXCHANGE 
[$$91]  |PARTITIONED|
+                                              -- HYBRID_HASH_JOIN [$$69][$$66] 
 |PARTITIONED|
+                                                -- HASH_PARTITION_EXCHANGE 
[$$69]  |PARTITIONED|
                                                   -- ASSIGN  |PARTITIONED|
                                                     -- STREAM_PROJECT  
|PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
@@ -66,7 +66,7 @@
                                                                                
 -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                -- HASH_PARTITION_EXCHANGE 
[$$88]  |PARTITIONED|
+                                                -- HASH_PARTITION_EXCHANGE 
[$$66]  |PARTITIONED|
                                                   -- ASSIGN  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                       -- DATASOURCE_SCAN  
|PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-1572.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-1572.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-1572.plan
index 66736df..a8f916c 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-1572.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-1572.plan
@@ -5,46 +5,46 @@
         -- STREAM_PROJECT  |PARTITIONED|
           -- STREAM_SELECT  |PARTITIONED|
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-              -- PRE_CLUSTERED_GROUP_BY[$$50]  |PARTITIONED|
+              -- PRE_CLUSTERED_GROUP_BY[$$44]  |PARTITIONED|
                       {
                         -- AGGREGATE  |LOCAL|
                           -- STREAM_SELECT  |LOCAL|
                             -- NESTED_TUPLE_SOURCE  |LOCAL|
                       }
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  -- STABLE_SORT [$$50(ASC)]  |PARTITIONED|
+                  -- STABLE_SORT [$$44(ASC)]  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                       -- STREAM_PROJECT  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- HYBRID_HASH_JOIN [$$50][$$11]  |PARTITIONED|
-                            -- HASH_PARTITION_EXCHANGE [$$50]  |PARTITIONED|
-                              -- PRE_CLUSTERED_GROUP_BY[$$48]  |PARTITIONED|
+                          -- HYBRID_HASH_JOIN [$$44][$$5]  |PARTITIONED|
+                            -- HASH_PARTITION_EXCHANGE [$$44]  |PARTITIONED|
+                              -- PRE_CLUSTERED_GROUP_BY[$$42]  |PARTITIONED|
                                       {
                                         -- AGGREGATE  |LOCAL|
                                           -- STREAM_SELECT  |LOCAL|
                                             -- NESTED_TUPLE_SOURCE  |LOCAL|
                                       }
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- STABLE_SORT [$$48(ASC)]  |PARTITIONED|
+                                  -- STABLE_SORT [$$42(ASC)]  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- HYBRID_HASH_JOIN [$$48][$$10]  
|PARTITIONED|
-                                            -- HASH_PARTITION_EXCHANGE [$$48]  
|PARTITIONED|
-                                              -- PRE_CLUSTERED_GROUP_BY[$$46]  
|PARTITIONED|
+                                          -- HYBRID_HASH_JOIN [$$42][$$4]  
|PARTITIONED|
+                                            -- HASH_PARTITION_EXCHANGE [$$42]  
|PARTITIONED|
+                                              -- PRE_CLUSTERED_GROUP_BY[$$40]  
|PARTITIONED|
                                                       {
                                                         -- AGGREGATE  |LOCAL|
                                                           -- STREAM_SELECT  
|LOCAL|
                                                             -- 
NESTED_TUPLE_SOURCE  |LOCAL|
                                                       }
                                                 -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                  -- STABLE_SORT [$$46(ASC)]  
|PARTITIONED|
+                                                  -- STABLE_SORT [$$40(ASC)]  
|PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                       -- STREAM_PROJECT  
|PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE 
 |PARTITIONED|
-                                                          -- HYBRID_HASH_JOIN 
[$$46][$$9]  |PARTITIONED|
-                                                            -- 
HASH_PARTITION_EXCHANGE [$$46]  |PARTITIONED|
-                                                              -- 
PRE_CLUSTERED_GROUP_BY[$$39]  |PARTITIONED|
+                                                          -- HYBRID_HASH_JOIN 
[$$40][$$3]  |PARTITIONED|
+                                                            -- 
HASH_PARTITION_EXCHANGE [$$40]  |PARTITIONED|
+                                                              -- 
PRE_CLUSTERED_GROUP_BY[$$33]  |PARTITIONED|
                                                                       {
                                                                         -- 
AGGREGATE  |LOCAL|
                                                                           -- 
STREAM_SELECT  |LOCAL|
@@ -53,26 +53,26 @@
                                                                 -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                   -- 
STREAM_PROJECT  |PARTITIONED|
                                                                     -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- 
HYBRID_HASH_JOIN [$$39][$$8]  |PARTITIONED|
+                                                                      -- 
HYBRID_HASH_JOIN [$$33][$$2]  |PARTITIONED|
                                                                         -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                           -- 
STREAM_PROJECT  |PARTITIONED|
                                                                             -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                               
-- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
   -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                        -- 
HASH_PARTITION_EXCHANGE [$$8]  |PARTITIONED|
+                                                                        -- 
HASH_PARTITION_EXCHANGE [$$2]  |PARTITIONED|
                                                                           -- 
ASSIGN  |UNPARTITIONED|
                                                                             -- 
UNNEST  |UNPARTITIONED|
                                                                               
-- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
-                                                            -- 
HASH_PARTITION_EXCHANGE [$$9]  |PARTITIONED|
+                                                            -- 
HASH_PARTITION_EXCHANGE [$$3]  |PARTITIONED|
                                                               -- ASSIGN  
|UNPARTITIONED|
                                                                 -- UNNEST  
|UNPARTITIONED|
                                                                   -- 
EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
-                                            -- HASH_PARTITION_EXCHANGE [$$10]  
|PARTITIONED|
+                                            -- HASH_PARTITION_EXCHANGE [$$4]  
|PARTITIONED|
                                               -- ASSIGN  |UNPARTITIONED|
                                                 -- UNNEST  |UNPARTITIONED|
                                                   -- EMPTY_TUPLE_SOURCE  
|UNPARTITIONED|
-                            -- HASH_PARTITION_EXCHANGE [$$11]  |PARTITIONED|
+                            -- HASH_PARTITION_EXCHANGE [$$5]  |PARTITIONED|
                               -- ASSIGN  |UNPARTITIONED|
                                 -- UNNEST  |UNPARTITIONED|
                                   -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan
index 80bb3f4..d3669c4 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan
@@ -4,21 +4,21 @@
       -- STREAM_PROJECT  |PARTITIONED|
         -- ASSIGN  |PARTITIONED|
           -- STREAM_PROJECT  |PARTITIONED|
-            -- SORT_MERGE_EXCHANGE [$$85(ASC) ]  |PARTITIONED|
+            -- SORT_MERGE_EXCHANGE [$$69(ASC) ]  |PARTITIONED|
               -- STREAM_LIMIT  |PARTITIONED|
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                  -- STABLE_SORT [topK: 100] [$$85(ASC)]  |PARTITIONED|
+                  -- STABLE_SORT [topK: 100] [$$69(ASC)]  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                       -- STREAM_PROJECT  |PARTITIONED|
                         -- STREAM_SELECT  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- SORT_GROUP_BY[$$95]  |PARTITIONED|
+                            -- SORT_GROUP_BY[$$79]  |PARTITIONED|
                                     {
                                       -- AGGREGATE  |LOCAL|
                                         -- NESTED_TUPLE_SOURCE  |LOCAL|
                                     }
-                              -- HASH_PARTITION_EXCHANGE [$$95]  |PARTITIONED|
-                                -- SORT_GROUP_BY[$$73]  |PARTITIONED|
+                              -- HASH_PARTITION_EXCHANGE [$$79]  |PARTITIONED|
+                                -- SORT_GROUP_BY[$$57]  |PARTITIONED|
                                         {
                                           -- AGGREGATE  |LOCAL|
                                             -- NESTED_TUPLE_SOURCE  |LOCAL|
@@ -26,33 +26,33 @@
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$77][$$80]  
|PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$77]  
|PARTITIONED|
+                                        -- HYBRID_HASH_JOIN [$$61][$$64]  
|PARTITIONED|
+                                          -- HASH_PARTITION_EXCHANGE [$$61]  
|PARTITIONED|
                                             -- STREAM_PROJECT  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                -- HYBRID_HASH_JOIN 
[$$86][$$79]  |PARTITIONED|
-                                                  -- HASH_PARTITION_EXCHANGE 
[$$86]  |PARTITIONED|
+                                                -- HYBRID_HASH_JOIN 
[$$70][$$63]  |PARTITIONED|
+                                                  -- HASH_PARTITION_EXCHANGE 
[$$70]  |PARTITIONED|
                                                     -- STREAM_PROJECT  
|PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                        -- HYBRID_HASH_JOIN 
[$$76][$$91]  |PARTITIONED|
-                                                          -- 
HASH_PARTITION_EXCHANGE [$$76]  |PARTITIONED|
+                                                        -- HYBRID_HASH_JOIN 
[$$60][$$75]  |PARTITIONED|
+                                                          -- 
HASH_PARTITION_EXCHANGE [$$60]  |PARTITIONED|
                                                             -- STREAM_PROJECT  
|PARTITIONED|
                                                               -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- 
HYBRID_HASH_JOIN [$$75][$$89]  |PARTITIONED|
+                                                                -- 
HYBRID_HASH_JOIN [$$59][$$73]  |PARTITIONED|
                                                                   -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                     -- ASSIGN  
|PARTITIONED|
                                                                       -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                         -- 
DATASOURCE_SCAN  |PARTITIONED|
                                                                           -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                             -- 
EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- 
HASH_PARTITION_EXCHANGE [$$89]  |PARTITIONED|
+                                                                  -- 
HASH_PARTITION_EXCHANGE [$$73]  |PARTITIONED|
                                                                     -- 
STREAM_PROJECT  |PARTITIONED|
                                                                       -- 
ASSIGN  |PARTITIONED|
                                                                         -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                           -- 
DATASOURCE_SCAN  |PARTITIONED|
                                                                             -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                               
-- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                          -- 
HASH_PARTITION_EXCHANGE [$$91]  |PARTITIONED|
+                                                          -- 
HASH_PARTITION_EXCHANGE [$$75]  |PARTITIONED|
                                                             -- STREAM_PROJECT  
|PARTITIONED|
                                                               -- ASSIGN  
|PARTITIONED|
                                                                 -- 
STREAM_PROJECT  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan
index ec51b3e..9c17663 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan
@@ -8,7 +8,7 @@
               -- ASSIGN  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- PRE_CLUSTERED_GROUP_BY[$$119]  |PARTITIONED|
+                    -- PRE_CLUSTERED_GROUP_BY[$$101]  |PARTITIONED|
                             {
                               -- AGGREGATE  |LOCAL|
                                 -- AGGREGATE  |LOCAL|
@@ -18,13 +18,13 @@
                                         -- NESTED_TUPLE_SOURCE  |LOCAL|
                             }
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- STABLE_SORT [$$119(ASC)]  |PARTITIONED|
+                        -- STABLE_SORT [$$101(ASC)]  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                             -- STREAM_PROJECT  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- HYBRID_HASH_JOIN [$$119][$$120]  
|PARTITIONED|
-                                  -- HASH_PARTITION_EXCHANGE [$$119]  
|PARTITIONED|
-                                    -- PRE_CLUSTERED_GROUP_BY[$$107]  
|PARTITIONED|
+                                -- HYBRID_HASH_JOIN [$$101][$$102]  
|PARTITIONED|
+                                  -- HASH_PARTITION_EXCHANGE [$$101]  
|PARTITIONED|
+                                    -- PRE_CLUSTERED_GROUP_BY[$$89]  
|PARTITIONED|
                                             {
                                               -- AGGREGATE  |LOCAL|
                                                 -- AGGREGATE  |LOCAL|
@@ -34,13 +34,13 @@
                                                         -- NESTED_TUPLE_SOURCE 
 |LOCAL|
                                             }
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- STABLE_SORT [$$107(ASC)]  
|PARTITIONED|
+                                        -- STABLE_SORT [$$89(ASC)]  
|PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                             -- STREAM_PROJECT  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                -- HYBRID_HASH_JOIN 
[$$107][$$108]  |PARTITIONED|
-                                                  -- HASH_PARTITION_EXCHANGE 
[$$107]  |PARTITIONED|
-                                                    -- 
PRE_CLUSTERED_GROUP_BY[$$87]  |PARTITIONED|
+                                                -- HYBRID_HASH_JOIN 
[$$89][$$90]  |PARTITIONED|
+                                                  -- HASH_PARTITION_EXCHANGE 
[$$89]  |PARTITIONED|
+                                                    -- 
PRE_CLUSTERED_GROUP_BY[$$69]  |PARTITIONED|
                                                             {
                                                               -- AGGREGATE  
|LOCAL|
                                                                 -- AGGREGATE  
|LOCAL|
@@ -50,7 +50,7 @@
                                                       -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                         -- STREAM_PROJECT  
|PARTITIONED|
                                                           -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- 
HYBRID_HASH_JOIN [$$87][$$97]  |PARTITIONED|
+                                                            -- 
HYBRID_HASH_JOIN [$$69][$$79]  |PARTITIONED|
                                                               -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                 -- 
STREAM_PROJECT  |PARTITIONED|
                                                                   -- ASSIGN  
|PARTITIONED|
@@ -71,7 +71,7 @@
                                                                   -- ASSIGN  
|PARTITIONED|
                                                                     -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                       -- 
REPLICATE  |PARTITIONED|
-                                                                        -- 
HASH_PARTITION_EXCHANGE [$$144]  |PARTITIONED|
+                                                                        -- 
HASH_PARTITION_EXCHANGE [$$126]  |PARTITIONED|
                                                                           -- 
ASSIGN  |PARTITIONED|
                                                                             -- 
STREAM_PROJECT  |PARTITIONED|
                                                                               
-- ASSIGN  |PARTITIONED|
@@ -83,23 +83,23 @@
                                                                                
           -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
               -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                  -- HASH_PARTITION_EXCHANGE 
[$$108]  |PARTITIONED|
+                                                  -- HASH_PARTITION_EXCHANGE 
[$$90]  |PARTITIONED|
                                                     -- ASSIGN  |PARTITIONED|
                                                       -- STREAM_PROJECT  
|PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE 
 |PARTITIONED|
-                                                          -- HYBRID_HASH_JOIN 
[$$101][$$100]  |PARTITIONED|
+                                                          -- HYBRID_HASH_JOIN 
[$$83][$$82]  |PARTITIONED|
                                                             -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                               -- 
STREAM_PROJECT  |PARTITIONED|
                                                                 -- ASSIGN  
|PARTITIONED|
                                                                   -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                     -- 
REPLICATE  |PARTITIONED|
-                                                                      -- 
HASH_PARTITION_EXCHANGE [$$138]  |PARTITIONED|
+                                                                      -- 
HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
                                                                         -- 
STREAM_PROJECT  |PARTITIONED|
                                                                           -- 
ASSIGN  |PARTITIONED|
                                                                             -- 
STREAM_PROJECT  |PARTITIONED|
                                                                               
-- STREAM_SELECT  |PARTITIONED|
                                                                                
 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
   -- PRE_CLUSTERED_GROUP_BY[$$143]  |PARTITIONED|
+                                                                               
   -- PRE_CLUSTERED_GROUP_BY[$$125]  |PARTITIONED|
                                                                                
           {
                                                                                
             -- AGGREGATE  |LOCAL|
                                                                                
               -- AGGREGATE  |LOCAL|
@@ -109,7 +109,7 @@
                                                                                
     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
       -- STREAM_PROJECT  |PARTITIONED|
                                                                                
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
           -- HYBRID_HASH_JOIN [$$143][$$144]  |PARTITIONED|
+                                                                               
           -- HYBRID_HASH_JOIN [$$125][$$126]  |PARTITIONED|
                                                                                
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
               -- REPLICATE  |PARTITIONED|
                                                                                
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -119,7 +119,7 @@
                                                                                
                         -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                                                                
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
               -- REPLICATE  |PARTITIONED|
-                                                                               
                 -- HASH_PARTITION_EXCHANGE [$$144]  |PARTITIONED|
+                                                                               
                 -- HASH_PARTITION_EXCHANGE [$$126]  |PARTITIONED|
                                                                                
                   -- ASSIGN  |PARTITIONED|
                                                                                
                     -- STREAM_PROJECT  |PARTITIONED|
                                                                                
                       -- ASSIGN  |PARTITIONED|
@@ -131,7 +131,7 @@
                                                                                
                                   -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                                       -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                            -- 
HASH_PARTITION_EXCHANGE [$$100]  |PARTITIONED|
+                                                            -- 
HASH_PARTITION_EXCHANGE [$$82]  |PARTITIONED|
                                                               -- 
STREAM_PROJECT  |PARTITIONED|
                                                                 -- ASSIGN  
|PARTITIONED|
                                                                   -- 
STREAM_PROJECT  |PARTITIONED|
@@ -144,13 +144,13 @@
                                                                                
 -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                  -- HASH_PARTITION_EXCHANGE [$$120]  
|PARTITIONED|
+                                  -- HASH_PARTITION_EXCHANGE [$$102]  
|PARTITIONED|
                                     -- ASSIGN  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- HYBRID_HASH_JOIN [$$103][$$102]  
|PARTITIONED|
-                                            -- HASH_PARTITION_EXCHANGE [$$103] 
 |PARTITIONED|
-                                              -- PRE_CLUSTERED_GROUP_BY[$$121] 
 |PARTITIONED|
+                                          -- HYBRID_HASH_JOIN [$$85][$$84]  
|PARTITIONED|
+                                            -- HASH_PARTITION_EXCHANGE [$$85]  
|PARTITIONED|
+                                              -- PRE_CLUSTERED_GROUP_BY[$$103] 
 |PARTITIONED|
                                                       {
                                                         -- AGGREGATE  |LOCAL|
                                                           -- AGGREGATE  |LOCAL|
@@ -159,18 +159,18 @@
                                                                 -- 
NESTED_TUPLE_SOURCE  |LOCAL|
                                                       }
                                                 -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                  -- STABLE_SORT [$$121(ASC)]  
|PARTITIONED|
+                                                  -- STABLE_SORT [$$103(ASC)]  
|PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                       -- STREAM_PROJECT  
|PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE 
 |PARTITIONED|
-                                                          -- HYBRID_HASH_JOIN 
[$$121][$$124]  |PARTITIONED|
-                                                            -- 
HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
+                                                          -- HYBRID_HASH_JOIN 
[$$103][$$106]  |PARTITIONED|
+                                                            -- 
HASH_PARTITION_EXCHANGE [$$103]  |PARTITIONED|
                                                               -- 
STREAM_PROJECT  |PARTITIONED|
                                                                 -- 
STREAM_SELECT  |PARTITIONED|
                                                                   -- 
STREAM_PROJECT  |PARTITIONED|
                                                                     -- ASSIGN  
|PARTITIONED|
                                                                       -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- 
PRE_CLUSTERED_GROUP_BY[$$125]  |PARTITIONED|
+                                                                        -- 
PRE_CLUSTERED_GROUP_BY[$$107]  |PARTITIONED|
                                                                                
 {
                                                                                
   -- AGGREGATE  |LOCAL|
                                                                                
     -- AGGREGATE  |LOCAL|
@@ -180,7 +180,7 @@
                                                                           -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                             -- 
STREAM_PROJECT  |PARTITIONED|
                                                                               
-- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
 -- HYBRID_HASH_JOIN [$$125][$$126]  |PARTITIONED|
+                                                                               
 -- HYBRID_HASH_JOIN [$$107][$$108]  |PARTITIONED|
                                                                                
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
     -- REPLICATE  |PARTITIONED|
                                                                                
       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -198,7 +198,7 @@
                                                                                
       -- ASSIGN  |PARTITIONED|
                                                                                
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
           -- REPLICATE  |PARTITIONED|
-                                                                               
             -- HASH_PARTITION_EXCHANGE [$$144]  |PARTITIONED|
+                                                                               
             -- HASH_PARTITION_EXCHANGE [$$126]  |PARTITIONED|
                                                                                
               -- ASSIGN  |PARTITIONED|
                                                                                
                 -- STREAM_PROJECT  |PARTITIONED|
                                                                                
                   -- ASSIGN  |PARTITIONED|
@@ -210,20 +210,20 @@
                                                                                
                               -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                                   -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                            -- 
HASH_PARTITION_EXCHANGE [$$124]  |PARTITIONED|
+                                                            -- 
HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
                                                               -- ASSIGN  
|PARTITIONED|
                                                                 -- 
STREAM_PROJECT  |PARTITIONED|
                                                                   -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- 
HYBRID_HASH_JOIN [$$138][$$137]  |PARTITIONED|
+                                                                    -- 
HYBRID_HASH_JOIN [$$120][$$119]  |PARTITIONED|
                                                                       -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                         -- 
REPLICATE  |PARTITIONED|
-                                                                          -- 
HASH_PARTITION_EXCHANGE [$$138]  |PARTITIONED|
+                                                                          -- 
HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
                                                                             -- 
STREAM_PROJECT  |PARTITIONED|
                                                                               
-- ASSIGN  |PARTITIONED|
                                                                                
 -- STREAM_PROJECT  |PARTITIONED|
                                                                                
   -- STREAM_SELECT  |PARTITIONED|
                                                                                
     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
       -- PRE_CLUSTERED_GROUP_BY[$$143]  |PARTITIONED|
+                                                                               
       -- PRE_CLUSTERED_GROUP_BY[$$125]  |PARTITIONED|
                                                                                
               {
                                                                                
                 -- AGGREGATE  |LOCAL|
                                                                                
                   -- AGGREGATE  |LOCAL|
@@ -233,7 +233,7 @@
                                                                                
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
           -- STREAM_PROJECT  |PARTITIONED|
                                                                                
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
               -- HYBRID_HASH_JOIN [$$143][$$144]  |PARTITIONED|
+                                                                               
               -- HYBRID_HASH_JOIN [$$125][$$126]  |PARTITIONED|
                                                                                
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                   -- REPLICATE  |PARTITIONED|
                                                                                
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -243,7 +243,7 @@
                                                                                
                             -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                                                                
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                   -- REPLICATE  |PARTITIONED|
-                                                                               
                     -- HASH_PARTITION_EXCHANGE [$$144]  |PARTITIONED|
+                                                                               
                     -- HASH_PARTITION_EXCHANGE [$$126]  |PARTITIONED|
                                                                                
                       -- ASSIGN  |PARTITIONED|
                                                                                
                         -- STREAM_PROJECT  |PARTITIONED|
                                                                                
                           -- ASSIGN  |PARTITIONED|
@@ -255,7 +255,7 @@
                                                                                
                                       -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                                           -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                      -- 
HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
+                                                                      -- 
HASH_PARTITION_EXCHANGE [$$119]  |PARTITIONED|
                                                                         -- 
STREAM_PROJECT  |PARTITIONED|
                                                                           -- 
ASSIGN  |PARTITIONED|
                                                                             -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -266,7 +266,7 @@
                                                                                
       -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
           -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                            -- HASH_PARTITION_EXCHANGE [$$102] 
 |PARTITIONED|
+                                            -- HASH_PARTITION_EXCHANGE [$$84]  
|PARTITIONED|
                                               -- STREAM_PROJECT  |PARTITIONED|
                                                 -- ASSIGN  |PARTITIONED|
                                                   -- STREAM_PROJECT  
|PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/96fd4026/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581.plan
index 16ebd6f..70948fb 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581.plan
@@ -16,7 +16,7 @@
                 -- STREAM_PROJECT  |PARTITIONED|
                   -- ASSIGN  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- PRE_CLUSTERED_GROUP_BY[$$116]  |PARTITIONED|
+                      -- PRE_CLUSTERED_GROUP_BY[$$98]  |PARTITIONED|
                               {
                                 -- AGGREGATE  |LOCAL|
                                   -- AGGREGATE  |LOCAL|
@@ -26,13 +26,13 @@
                                           -- NESTED_TUPLE_SOURCE  |LOCAL|
                               }
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          -- STABLE_SORT [$$116(ASC)]  |PARTITIONED|
+                          -- STABLE_SORT [$$98(ASC)]  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                               -- STREAM_PROJECT  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- HYBRID_HASH_JOIN [$$116][$$117]  
|PARTITIONED|
-                                    -- HASH_PARTITION_EXCHANGE [$$116]  
|PARTITIONED|
-                                      -- PRE_CLUSTERED_GROUP_BY[$$54]  
|PARTITIONED|
+                                  -- HYBRID_HASH_JOIN [$$98][$$99]  
|PARTITIONED|
+                                    -- HASH_PARTITION_EXCHANGE [$$98]  
|PARTITIONED|
+                                      -- PRE_CLUSTERED_GROUP_BY[$$36]  
|PARTITIONED|
                                               {
                                                 -- AGGREGATE  |LOCAL|
                                                   -- AGGREGATE  |LOCAL|
@@ -42,17 +42,17 @@
                                                           -- 
NESTED_TUPLE_SOURCE  |LOCAL|
                                               }
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- STABLE_SORT [$$54(ASC)]  
|PARTITIONED|
+                                          -- STABLE_SORT [$$36(ASC)]  
|PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                               -- STREAM_PROJECT  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                  -- HYBRID_HASH_JOIN 
[$$54][$$109]  |PARTITIONED|
+                                                  -- HYBRID_HASH_JOIN 
[$$36][$$91]  |PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                       -- STREAM_PROJECT  
|PARTITIONED|
                                                         -- ASSIGN  
|PARTITIONED|
                                                           -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                             -- REPLICATE  
|PARTITIONED|
-                                                              -- 
HASH_PARTITION_EXCHANGE [$$118]  |PARTITIONED|
+                                                              -- 
HASH_PARTITION_EXCHANGE [$$100]  |PARTITIONED|
                                                                 -- 
STREAM_PROJECT  |UNPARTITIONED|
                                                                   -- ASSIGN  
|UNPARTITIONED|
                                                                     -- 
ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
@@ -70,7 +70,7 @@
                                                                                
             -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                    -- HASH_PARTITION_EXCHANGE 
[$$109]  |PARTITIONED|
+                                                    -- HASH_PARTITION_EXCHANGE 
[$$91]  |PARTITIONED|
                                                       -- ASSIGN  |PARTITIONED|
                                                         -- STREAM_PROJECT  
|PARTITIONED|
                                                           -- STREAM_SELECT  
|PARTITIONED|
@@ -101,7 +101,7 @@
                                                                                
                             -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                    -- HASH_PARTITION_EXCHANGE [$$117]  
|PARTITIONED|
+                                    -- HASH_PARTITION_EXCHANGE [$$99]  
|PARTITIONED|
                                       -- ASSIGN  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
                                           -- STREAM_SELECT  |PARTITIONED|
@@ -115,7 +115,7 @@
                                                           -- STREAM_SELECT  
|PARTITIONED|
                                                             -- ASSIGN  
|PARTITIONED|
                                                               -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- 
PRE_CLUSTERED_GROUP_BY[$$118]  |PARTITIONED|
+                                                                -- 
PRE_CLUSTERED_GROUP_BY[$$100]  |PARTITIONED|
                                                                         {
                                                                           -- 
AGGREGATE  |LOCAL|
                                                                             -- 
AGGREGATE  |LOCAL|
@@ -124,14 +124,14 @@
                                                                                
   -- NESTED_TUPLE_SOURCE  |LOCAL|
                                                                         }
                                                                   -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- 
STABLE_SORT [$$118(ASC)]  |PARTITIONED|
+                                                                    -- 
STABLE_SORT [$$100(ASC)]  |PARTITIONED|
                                                                       -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                         -- 
STREAM_PROJECT  |PARTITIONED|
                                                                           -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                            -- 
HYBRID_HASH_JOIN [$$118][$$119]  |PARTITIONED|
+                                                                            -- 
HYBRID_HASH_JOIN [$$100][$$101]  |PARTITIONED|
                                                                               
-- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
 -- REPLICATE  |PARTITIONED|
-                                                                               
   -- HASH_PARTITION_EXCHANGE [$$118]  |PARTITIONED|
+                                                                               
   -- HASH_PARTITION_EXCHANGE [$$100]  |PARTITIONED|
                                                                                
     -- STREAM_PROJECT  |UNPARTITIONED|
                                                                                
       -- ASSIGN  |UNPARTITIONED|
                                                                                
         -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
@@ -149,7 +149,7 @@
                                                                                
                                 -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                                     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                              
-- HASH_PARTITION_EXCHANGE [$$119]  |PARTITIONED|
+                                                                              
-- HASH_PARTITION_EXCHANGE [$$101]  |PARTITIONED|
                                                                                
 -- ASSIGN  |PARTITIONED|
                                                                                
   -- STREAM_PROJECT  |PARTITIONED|
                                                                                
     -- STREAM_SELECT  |PARTITIONED|

Reply via email to