http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/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 7919397..070af18 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[$$152]  |PARTITIONED|
+                    -- PRE_CLUSTERED_GROUP_BY[$$162]  |PARTITIONED|
                             {
                               -- AGGREGATE  |LOCAL|
                                 -- AGGREGATE  |LOCAL|
@@ -20,9 +20,9 @@
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                         -- STREAM_PROJECT  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- HYBRID_HASH_JOIN [$$152][$$153]  |PARTITIONED|
+                            -- HYBRID_HASH_JOIN [$$162][$$163]  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- PRE_CLUSTERED_GROUP_BY[$$140]  |PARTITIONED|
+                                -- PRE_CLUSTERED_GROUP_BY[$$150]  |PARTITIONED|
                                         {
                                           -- AGGREGATE  |LOCAL|
                                             -- AGGREGATE  |LOCAL|
@@ -32,13 +32,13 @@
                                                     -- NESTED_TUPLE_SOURCE  
|LOCAL|
                                         }
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- STABLE_SORT [$$140(ASC)]  |PARTITIONED|
+                                    -- STABLE_SORT [$$150(ASC)]  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- HYBRID_HASH_JOIN [$$140][$$141] 
 |PARTITIONED|
+                                            -- HYBRID_HASH_JOIN [$$150][$$151] 
 |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                -- 
PRE_CLUSTERED_GROUP_BY[$$120]  |PARTITIONED|
+                                                -- 
PRE_CLUSTERED_GROUP_BY[$$130]  |PARTITIONED|
                                                         {
                                                           -- AGGREGATE  |LOCAL|
                                                             -- AGGREGATE  
|LOCAL|
@@ -53,7 +53,7 @@
                                                             -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                               -- 
STREAM_PROJECT  |PARTITIONED|
                                                                 -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- 
HYBRID_HASH_JOIN [$$158][$$159]  |PARTITIONED|
+                                                                  -- 
HYBRID_HASH_JOIN [$$168][$$169]  |PARTITIONED|
                                                                     -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                       -- 
STREAM_PROJECT  |PARTITIONED|
                                                                         -- 
ASSIGN  |PARTITIONED|
@@ -69,7 +69,7 @@
                                                                         -- 
ASSIGN  |PARTITIONED|
                                                                           -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                             -- 
REPLICATE  |PARTITIONED|
-                                                                              
-- HASH_PARTITION_EXCHANGE [$$177]  |PARTITIONED|
+                                                                              
-- HASH_PARTITION_EXCHANGE [$$187]  |PARTITIONED|
                                                                                
 -- STREAM_PROJECT  |PARTITIONED|
                                                                                
   -- ASSIGN  |PARTITIONED|
                                                                                
     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -80,23 +80,23 @@
                                                                                
               -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                   -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                              -- HASH_PARTITION_EXCHANGE 
[$$141]  |PARTITIONED|
+                                              -- HASH_PARTITION_EXCHANGE 
[$$151]  |PARTITIONED|
                                                 -- ASSIGN  |PARTITIONED|
                                                   -- STREAM_PROJECT  
|PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                      -- HYBRID_HASH_JOIN 
[$$134][$$133]  |PARTITIONED|
+                                                      -- HYBRID_HASH_JOIN 
[$$144][$$143]  |PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE 
 |PARTITIONED|
                                                           -- STREAM_PROJECT  
|PARTITIONED|
                                                             -- ASSIGN  
|PARTITIONED|
                                                               -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                 -- REPLICATE  
|PARTITIONED|
-                                                                  -- 
HASH_PARTITION_EXCHANGE [$$171]  |PARTITIONED|
+                                                                  -- 
HASH_PARTITION_EXCHANGE [$$181]  |PARTITIONED|
                                                                     -- 
STREAM_PROJECT  |PARTITIONED|
                                                                       -- 
ASSIGN  |PARTITIONED|
                                                                         -- 
STREAM_PROJECT  |PARTITIONED|
                                                                           -- 
STREAM_SELECT  |PARTITIONED|
                                                                             -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              
-- PRE_CLUSTERED_GROUP_BY[$$176]  |PARTITIONED|
+                                                                              
-- PRE_CLUSTERED_GROUP_BY[$$186]  |PARTITIONED|
                                                                                
       {
                                                                                
         -- AGGREGATE  |LOCAL|
                                                                                
           -- AGGREGATE  |LOCAL|
@@ -106,7 +106,7 @@
                                                                                
 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
   -- STREAM_PROJECT  |PARTITIONED|
                                                                                
     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
       -- HYBRID_HASH_JOIN [$$176][$$177]  |PARTITIONED|
+                                                                               
       -- HYBRID_HASH_JOIN [$$186][$$187]  |PARTITIONED|
                                                                                
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
           -- REPLICATE  |PARTITIONED|
                                                                                
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -116,7 +116,7 @@
                                                                                
                     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                                                                
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
           -- REPLICATE  |PARTITIONED|
-                                                                               
             -- HASH_PARTITION_EXCHANGE [$$177]  |PARTITIONED|
+                                                                               
             -- HASH_PARTITION_EXCHANGE [$$187]  |PARTITIONED|
                                                                                
               -- STREAM_PROJECT  |PARTITIONED|
                                                                                
                 -- ASSIGN  |PARTITIONED|
                                                                                
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -127,7 +127,7 @@
                                                                                
                             -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                        -- 
HASH_PARTITION_EXCHANGE [$$133]  |PARTITIONED|
+                                                        -- 
HASH_PARTITION_EXCHANGE [$$143]  |PARTITIONED|
                                                           -- STREAM_PROJECT  
|PARTITIONED|
                                                             -- ASSIGN  
|PARTITIONED|
                                                               -- 
STREAM_PROJECT  |PARTITIONED|
@@ -140,13 +140,13 @@
                                                                             -- 
DATASOURCE_SCAN  |PARTITIONED|
                                                                               
-- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                              -- HASH_PARTITION_EXCHANGE [$$153]  |PARTITIONED|
+                              -- HASH_PARTITION_EXCHANGE [$$163]  |PARTITIONED|
                                 -- ASSIGN  |PARTITIONED|
                                   -- STREAM_PROJECT  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- HYBRID_HASH_JOIN [$$136][$$135]  
|PARTITIONED|
-                                        -- HASH_PARTITION_EXCHANGE [$$136]  
|PARTITIONED|
-                                          -- PRE_CLUSTERED_GROUP_BY[$$154]  
|PARTITIONED|
+                                      -- HYBRID_HASH_JOIN [$$146][$$145]  
|PARTITIONED|
+                                        -- HASH_PARTITION_EXCHANGE [$$146]  
|PARTITIONED|
+                                          -- PRE_CLUSTERED_GROUP_BY[$$164]  
|PARTITIONED|
                                                   {
                                                     -- AGGREGATE  |LOCAL|
                                                       -- AGGREGATE  |LOCAL|
@@ -155,18 +155,18 @@
                                                             -- 
NESTED_TUPLE_SOURCE  |LOCAL|
                                                   }
                                             -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                              -- STABLE_SORT [$$154(ASC)]  
|PARTITIONED|
+                                              -- STABLE_SORT [$$164(ASC)]  
|PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                   -- STREAM_PROJECT  
|PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                      -- HYBRID_HASH_JOIN 
[$$154][$$157]  |PARTITIONED|
+                                                      -- HYBRID_HASH_JOIN 
[$$164][$$167]  |PARTITIONED|
                                                         -- ONE_TO_ONE_EXCHANGE 
 |PARTITIONED|
                                                           -- STREAM_PROJECT  
|PARTITIONED|
                                                             -- STREAM_SELECT  
|PARTITIONED|
                                                               -- 
STREAM_PROJECT  |PARTITIONED|
                                                                 -- ASSIGN  
|PARTITIONED|
                                                                   -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    -- 
PRE_CLUSTERED_GROUP_BY[$$158]  |PARTITIONED|
+                                                                    -- 
PRE_CLUSTERED_GROUP_BY[$$168]  |PARTITIONED|
                                                                             {
                                                                               
-- AGGREGATE  |LOCAL|
                                                                                
 -- AGGREGATE  |LOCAL|
@@ -178,7 +178,7 @@
                                                                           -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                             -- 
STREAM_PROJECT  |PARTITIONED|
                                                                               
-- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
 -- HYBRID_HASH_JOIN [$$158][$$159]  |PARTITIONED|
+                                                                               
 -- HYBRID_HASH_JOIN [$$168][$$169]  |PARTITIONED|
                                                                                
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
     -- STREAM_PROJECT  |PARTITIONED|
                                                                                
       -- ASSIGN  |PARTITIONED|
@@ -194,7 +194,7 @@
                                                                                
       -- ASSIGN  |PARTITIONED|
                                                                                
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
           -- REPLICATE  |PARTITIONED|
-                                                                               
             -- HASH_PARTITION_EXCHANGE [$$177]  |PARTITIONED|
+                                                                               
             -- HASH_PARTITION_EXCHANGE [$$187]  |PARTITIONED|
                                                                                
               -- STREAM_PROJECT  |PARTITIONED|
                                                                                
                 -- ASSIGN  |PARTITIONED|
                                                                                
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -205,20 +205,20 @@
                                                                                
                             -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                        -- 
HASH_PARTITION_EXCHANGE [$$157]  |PARTITIONED|
+                                                        -- 
HASH_PARTITION_EXCHANGE [$$167]  |PARTITIONED|
                                                           -- ASSIGN  
|PARTITIONED|
                                                             -- STREAM_PROJECT  
|PARTITIONED|
                                                               -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- 
HYBRID_HASH_JOIN [$$171][$$170]  |PARTITIONED|
+                                                                -- 
HYBRID_HASH_JOIN [$$181][$$180]  |PARTITIONED|
                                                                   -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                     -- 
REPLICATE  |PARTITIONED|
-                                                                      -- 
HASH_PARTITION_EXCHANGE [$$171]  |PARTITIONED|
+                                                                      -- 
HASH_PARTITION_EXCHANGE [$$181]  |PARTITIONED|
                                                                         -- 
STREAM_PROJECT  |PARTITIONED|
                                                                           -- 
ASSIGN  |PARTITIONED|
                                                                             -- 
STREAM_PROJECT  |PARTITIONED|
                                                                               
-- STREAM_SELECT  |PARTITIONED|
                                                                                
 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
   -- PRE_CLUSTERED_GROUP_BY[$$176]  |PARTITIONED|
+                                                                               
   -- PRE_CLUSTERED_GROUP_BY[$$186]  |PARTITIONED|
                                                                                
           {
                                                                                
             -- AGGREGATE  |LOCAL|
                                                                                
               -- AGGREGATE  |LOCAL|
@@ -228,7 +228,7 @@
                                                                                
     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
       -- STREAM_PROJECT  |PARTITIONED|
                                                                                
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
           -- HYBRID_HASH_JOIN [$$176][$$177]  |PARTITIONED|
+                                                                               
           -- HYBRID_HASH_JOIN [$$186][$$187]  |PARTITIONED|
                                                                                
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
               -- REPLICATE  |PARTITIONED|
                                                                                
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -238,7 +238,7 @@
                                                                                
                         -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                                                                
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
               -- REPLICATE  |PARTITIONED|
-                                                                               
                 -- HASH_PARTITION_EXCHANGE [$$177]  |PARTITIONED|
+                                                                               
                 -- HASH_PARTITION_EXCHANGE [$$187]  |PARTITIONED|
                                                                                
                   -- STREAM_PROJECT  |PARTITIONED|
                                                                                
                     -- ASSIGN  |PARTITIONED|
                                                                                
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -249,7 +249,7 @@
                                                                                
                                 -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                                     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                  -- 
HASH_PARTITION_EXCHANGE [$$170]  |PARTITIONED|
+                                                                  -- 
HASH_PARTITION_EXCHANGE [$$180]  |PARTITIONED|
                                                                     -- 
STREAM_PROJECT  |PARTITIONED|
                                                                       -- 
ASSIGN  |PARTITIONED|
                                                                         -- 
STREAM_PROJECT  |PARTITIONED|
@@ -262,7 +262,7 @@
                                                                                
       -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
           -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                        -- HASH_PARTITION_EXCHANGE [$$135]  
|PARTITIONED|
+                                        -- HASH_PARTITION_EXCHANGE [$$145]  
|PARTITIONED|
                                           -- STREAM_PROJECT  |PARTITIONED|
                                             -- ASSIGN  |PARTITIONED|
                                               -- STREAM_PROJECT  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/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 a1ceb86..7f894db 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[$$149]  |PARTITIONED|
+                      -- PRE_CLUSTERED_GROUP_BY[$$159]  |PARTITIONED|
                               {
                                 -- AGGREGATE  |LOCAL|
                                   -- AGGREGATE  |LOCAL|
@@ -28,9 +28,9 @@
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- HYBRID_HASH_JOIN [$$149][$$150]  |PARTITIONED|
+                              -- HYBRID_HASH_JOIN [$$159][$$160]  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- PRE_CLUSTERED_GROUP_BY[$$85]  
|PARTITIONED|
+                                  -- PRE_CLUSTERED_GROUP_BY[$$95]  
|PARTITIONED|
                                           {
                                             -- AGGREGATE  |LOCAL|
                                               -- AGGREGATE  |LOCAL|
@@ -40,17 +40,17 @@
                                                       -- NESTED_TUPLE_SOURCE  
|LOCAL|
                                           }
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- STABLE_SORT [$$85(ASC)]  |PARTITIONED|
+                                      -- STABLE_SORT [$$95(ASC)]  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                           -- STREAM_PROJECT  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                              -- HYBRID_HASH_JOIN 
[$$85][$$142]  |PARTITIONED|
+                                              -- HYBRID_HASH_JOIN 
[$$95][$$152]  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                   -- STREAM_PROJECT  
|PARTITIONED|
                                                     -- ASSIGN  |PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                         -- REPLICATE  
|PARTITIONED|
-                                                          -- 
HASH_PARTITION_EXCHANGE [$$151]  |PARTITIONED|
+                                                          -- 
HASH_PARTITION_EXCHANGE [$$161]  |PARTITIONED|
                                                             -- STREAM_PROJECT  
|UNPARTITIONED|
                                                               -- ASSIGN  
|UNPARTITIONED|
                                                                 -- 
ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
@@ -68,7 +68,7 @@
                                                                                
         -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
             -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                -- HASH_PARTITION_EXCHANGE 
[$$142]  |PARTITIONED|
+                                                -- HASH_PARTITION_EXCHANGE 
[$$152]  |PARTITIONED|
                                                   -- ASSIGN  |PARTITIONED|
                                                     -- STREAM_PROJECT  
|PARTITIONED|
                                                       -- STREAM_SELECT  
|PARTITIONED|
@@ -99,7 +99,7 @@
                                                                                
                         -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                             -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                -- HASH_PARTITION_EXCHANGE [$$150]  
|PARTITIONED|
+                                -- HASH_PARTITION_EXCHANGE [$$160]  
|PARTITIONED|
                                   -- ASSIGN  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
                                       -- STREAM_SELECT  |PARTITIONED|
@@ -113,7 +113,7 @@
                                                       -- STREAM_SELECT  
|PARTITIONED|
                                                         -- ASSIGN  
|PARTITIONED|
                                                           -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- 
PRE_CLUSTERED_GROUP_BY[$$151]  |PARTITIONED|
+                                                            -- 
PRE_CLUSTERED_GROUP_BY[$$161]  |PARTITIONED|
                                                                     {
                                                                       -- 
AGGREGATE  |LOCAL|
                                                                         -- 
AGGREGATE  |LOCAL|
@@ -122,14 +122,14 @@
                                                                               
-- NESTED_TUPLE_SOURCE  |LOCAL|
                                                                     }
                                                               -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STABLE_SORT 
[$$151(ASC)]  |PARTITIONED|
+                                                                -- STABLE_SORT 
[$$161(ASC)]  |PARTITIONED|
                                                                   -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                     -- 
STREAM_PROJECT  |PARTITIONED|
                                                                       -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                        -- 
HYBRID_HASH_JOIN [$$151][$$152]  |PARTITIONED|
+                                                                        -- 
HYBRID_HASH_JOIN [$$161][$$162]  |PARTITIONED|
                                                                           -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                             -- 
REPLICATE  |PARTITIONED|
-                                                                              
-- HASH_PARTITION_EXCHANGE [$$151]  |PARTITIONED|
+                                                                              
-- HASH_PARTITION_EXCHANGE [$$161]  |PARTITIONED|
                                                                                
 -- STREAM_PROJECT  |UNPARTITIONED|
                                                                                
   -- ASSIGN  |UNPARTITIONED|
                                                                                
     -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
@@ -147,7 +147,7 @@
                                                                                
                             -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                          -- 
HASH_PARTITION_EXCHANGE [$$152]  |PARTITIONED|
+                                                                          -- 
HASH_PARTITION_EXCHANGE [$$162]  |PARTITIONED|
                                                                             -- 
ASSIGN  |PARTITIONED|
                                                                               
-- STREAM_PROJECT  |PARTITIONED|
                                                                                
 -- STREAM_SELECT  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan
index 4925110..c16b826 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan
@@ -4,76 +4,76 @@
       -- STREAM_PROJECT  |PARTITIONED|
         -- ASSIGN  |PARTITIONED|
           -- STREAM_PROJECT  |PARTITIONED|
-            -- SORT_MERGE_EXCHANGE [$$168(ASC) ]  |PARTITIONED|
+            -- SORT_MERGE_EXCHANGE [$$176(ASC) ]  |PARTITIONED|
               -- STREAM_LIMIT  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
                   -- STREAM_SELECT  |PARTITIONED|
                     -- STREAM_PROJECT  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        -- SORT_GROUP_BY[$$177, $$178]  |PARTITIONED|
+                        -- SORT_GROUP_BY[$$185, $$186]  |PARTITIONED|
                                 {
                                   -- AGGREGATE  |LOCAL|
                                     -- NESTED_TUPLE_SOURCE  |LOCAL|
                                 }
-                          -- HASH_PARTITION_EXCHANGE [$$177, $$178]  
|PARTITIONED|
-                            -- PRE_CLUSTERED_GROUP_BY[$$165, $$166]  
|PARTITIONED|
+                          -- HASH_PARTITION_EXCHANGE [$$185, $$186]  
|PARTITIONED|
+                            -- PRE_CLUSTERED_GROUP_BY[$$173, $$174]  
|PARTITIONED|
                                     {
                                       -- AGGREGATE  |LOCAL|
                                         -- STREAM_SELECT  |LOCAL|
                                           -- NESTED_TUPLE_SOURCE  |LOCAL|
                                     }
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- STABLE_SORT [$$165(ASC), $$166(ASC)]  
|PARTITIONED|
+                                -- STABLE_SORT [$$173(ASC), $$174(ASC)]  
|PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- HYBRID_HASH_JOIN [$$165][$$147]  
|PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$165]  
|PARTITIONED|
-                                            -- SORT_GROUP_BY[$$174, $$175]  
|PARTITIONED|
+                                        -- HYBRID_HASH_JOIN [$$173][$$155]  
|PARTITIONED|
+                                          -- HASH_PARTITION_EXCHANGE [$$173]  
|PARTITIONED|
+                                            -- SORT_GROUP_BY[$$182, $$183]  
|PARTITIONED|
                                                     {
                                                       -- AGGREGATE  |LOCAL|
                                                         -- NESTED_TUPLE_SOURCE 
 |LOCAL|
                                                     }
-                                              -- HASH_PARTITION_EXCHANGE 
[$$174, $$175]  |PARTITIONED|
-                                                -- 
PRE_CLUSTERED_GROUP_BY[$$162, $$163]  |PARTITIONED|
+                                              -- HASH_PARTITION_EXCHANGE 
[$$182, $$183]  |PARTITIONED|
+                                                -- 
PRE_CLUSTERED_GROUP_BY[$$170, $$171]  |PARTITIONED|
                                                         {
                                                           -- AGGREGATE  |LOCAL|
                                                             -- STREAM_SELECT  
|LOCAL|
                                                               -- 
NESTED_TUPLE_SOURCE  |LOCAL|
                                                         }
                                                   -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                    -- STABLE_SORT 
[$$162(ASC), $$163(ASC)]  |PARTITIONED|
+                                                    -- STABLE_SORT 
[$$170(ASC), $$171(ASC)]  |PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                         -- STREAM_PROJECT  
|PARTITIONED|
                                                           -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- 
HYBRID_HASH_JOIN [$$162][$$145]  |PARTITIONED|
-                                                              -- 
HASH_PARTITION_EXCHANGE [$$162]  |PARTITIONED|
+                                                            -- 
HYBRID_HASH_JOIN [$$170][$$153]  |PARTITIONED|
+                                                              -- 
HASH_PARTITION_EXCHANGE [$$170]  |PARTITIONED|
                                                                 -- 
STREAM_PROJECT  |PARTITIONED|
                                                                   -- 
STREAM_SELECT  |PARTITIONED|
                                                                     -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- 
SORT_GROUP_BY[$$171, $$172]  |PARTITIONED|
+                                                                      -- 
SORT_GROUP_BY[$$179, $$180]  |PARTITIONED|
                                                                               {
                                                                                
 -- AGGREGATE  |LOCAL|
                                                                                
   -- NESTED_TUPLE_SOURCE  |LOCAL|
                                                                               }
-                                                                        -- 
HASH_PARTITION_EXCHANGE [$$171, $$172]  |PARTITIONED|
-                                                                          -- 
PRE_CLUSTERED_GROUP_BY[$$126, $$127]  |PARTITIONED|
+                                                                        -- 
HASH_PARTITION_EXCHANGE [$$179, $$180]  |PARTITIONED|
+                                                                          -- 
PRE_CLUSTERED_GROUP_BY[$$134, $$135]  |PARTITIONED|
                                                                                
   {
                                                                                
     -- AGGREGATE  |LOCAL|
                                                                                
       -- STREAM_SELECT  |LOCAL|
                                                                                
         -- NESTED_TUPLE_SOURCE  |LOCAL|
                                                                                
   }
                                                                             -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              
-- STABLE_SORT [$$126(ASC), $$127(ASC)]  |PARTITIONED|
+                                                                              
-- STABLE_SORT [$$134(ASC), $$135(ASC)]  |PARTITIONED|
                                                                                
 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
   -- STREAM_PROJECT  |PARTITIONED|
                                                                                
     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
       -- HYBRID_HASH_JOIN [$$126][$$143]  |PARTITIONED|
-                                                                               
         -- HASH_PARTITION_EXCHANGE [$$126]  |PARTITIONED|
+                                                                               
       -- HYBRID_HASH_JOIN [$$134][$$151]  |PARTITIONED|
+                                                                               
         -- HASH_PARTITION_EXCHANGE [$$134]  |PARTITIONED|
                                                                                
           -- STREAM_PROJECT  |PARTITIONED|
                                                                                
             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
               -- HYBRID_HASH_JOIN [$$137][$$127]  |PARTITIONED|
-                                                                               
                 -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
+                                                                               
               -- HYBRID_HASH_JOIN [$$145][$$135]  |PARTITIONED|
+                                                                               
                 -- HASH_PARTITION_EXCHANGE [$$145]  |PARTITIONED|
                                                                                
                   -- ASSIGN  |PARTITIONED|
                                                                                
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                       -- DATASOURCE_SCAN  |PARTITIONED|
@@ -83,12 +83,12 @@
                                                                                
                   -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                       -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                               
         -- HASH_PARTITION_EXCHANGE [$$143]  |PARTITIONED|
+                                                                               
         -- HASH_PARTITION_EXCHANGE [$$151]  |PARTITIONED|
                                                                                
           -- ASSIGN  |PARTITIONED|
                                                                                
             -- STREAM_PROJECT  |PARTITIONED|
                                                                                
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
                 -- HYBRID_HASH_JOIN [$$148][$$130]  |PARTITIONED|
-                                                                               
                   -- HASH_PARTITION_EXCHANGE [$$148]  |PARTITIONED|
+                                                                               
                 -- HYBRID_HASH_JOIN [$$156][$$138]  |PARTITIONED|
+                                                                               
                   -- HASH_PARTITION_EXCHANGE [$$156]  |PARTITIONED|
                                                                                
                     -- ASSIGN  |PARTITIONED|
                                                                                
                       -- STREAM_PROJECT  |PARTITIONED|
                                                                                
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -103,12 +103,12 @@
                                                                                
                             -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                              -- 
HASH_PARTITION_EXCHANGE [$$145]  |PARTITIONED|
+                                                              -- 
HASH_PARTITION_EXCHANGE [$$153]  |PARTITIONED|
                                                                 -- ASSIGN  
|PARTITIONED|
                                                                   -- 
STREAM_PROJECT  |PARTITIONED|
                                                                     -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- 
HYBRID_HASH_JOIN [$$150][$$133]  |PARTITIONED|
-                                                                        -- 
HASH_PARTITION_EXCHANGE [$$150]  |PARTITIONED|
+                                                                      -- 
HYBRID_HASH_JOIN [$$158][$$141]  |PARTITIONED|
+                                                                        -- 
HASH_PARTITION_EXCHANGE [$$158]  |PARTITIONED|
                                                                           -- 
ASSIGN  |PARTITIONED|
                                                                             -- 
STREAM_PROJECT  |PARTITIONED|
                                                                               
-- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -126,12 +126,12 @@
                                                                                
         -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                
             -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                          -- HASH_PARTITION_EXCHANGE [$$147]  
|PARTITIONED|
+                                          -- HASH_PARTITION_EXCHANGE [$$155]  
|PARTITIONED|
                                             -- ASSIGN  |PARTITIONED|
                                               -- STREAM_PROJECT  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                  -- HYBRID_HASH_JOIN 
[$$152][$$136]  |PARTITIONED|
-                                                    -- HASH_PARTITION_EXCHANGE 
[$$152]  |PARTITIONED|
+                                                  -- HYBRID_HASH_JOIN 
[$$160][$$144]  |PARTITIONED|
+                                                    -- HASH_PARTITION_EXCHANGE 
[$$160]  |PARTITIONED|
                                                       -- ASSIGN  |PARTITIONED|
                                                         -- STREAM_PROJECT  
|PARTITIONED|
                                                           -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596.plan
index d845b25..107d150 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596.plan
@@ -3,16 +3,16 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
-          -- SORT_MERGE_EXCHANGE [$$44(ASC), $$45(ASC) ]  |PARTITIONED|
-            -- STABLE_SORT [$$44(ASC), $$45(ASC)]  |PARTITIONED|
+          -- SORT_MERGE_EXCHANGE [$$47(ASC), $$48(ASC) ]  |PARTITIONED|
+            -- STABLE_SORT [$$47(ASC), $$48(ASC)]  |PARTITIONED|
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                 -- STREAM_PROJECT  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    -- HYBRID_HASH_JOIN [$$44][$$48]  |PARTITIONED|
-                      -- HASH_PARTITION_EXCHANGE [$$44]  |PARTITIONED|
+                    -- HYBRID_HASH_JOIN [$$47][$$51]  |PARTITIONED|
+                      -- HASH_PARTITION_EXCHANGE [$$47]  |PARTITIONED|
                         -- STREAM_PROJECT  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- HYBRID_HASH_JOIN [$$45, $$44][$$47, $$46]  
|PARTITIONED|
+                            -- HYBRID_HASH_JOIN [$$48, $$47][$$50, $$49]  
|PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                 -- DATASOURCE_SCAN  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596_ps.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596_ps.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596_ps.plan
index 9a0cc83..e8d113b 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596_ps.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596_ps.plan
@@ -4,19 +4,19 @@
       -- ASSIGN  |PARTITIONED|
         -- STREAM_PROJECT  |PARTITIONED|
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            -- STABLE_SORT [$$44(ASC), $$45(ASC)]  |PARTITIONED|
-              -- RANGE_PARTITION_EXCHANGE [$$44(ASC), $$45(ASC)]  |PARTITIONED|
+            -- STABLE_SORT [$$47(ASC), $$48(ASC)]  |PARTITIONED|
+              -- RANGE_PARTITION_EXCHANGE [$$47(ASC), $$48(ASC)]  |PARTITIONED|
                 -- FORWARD  |PARTITIONED|
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                     -- REPLICATE  |PARTITIONED|
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                         -- STREAM_PROJECT  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- HYBRID_HASH_JOIN [$$44][$$48]  |PARTITIONED|
-                              -- HASH_PARTITION_EXCHANGE [$$44]  |PARTITIONED|
+                            -- HYBRID_HASH_JOIN [$$47][$$51]  |PARTITIONED|
+                              -- HASH_PARTITION_EXCHANGE [$$47]  |PARTITIONED|
                                 -- STREAM_PROJECT  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                    -- HYBRID_HASH_JOIN [$$45, $$44][$$47, 
$$46]  |PARTITIONED|
+                                    -- HYBRID_HASH_JOIN [$$48, $$47][$$50, 
$$49]  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- DATASOURCE_SCAN  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -39,11 +39,11 @@
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                   -- STREAM_PROJECT  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- HYBRID_HASH_JOIN [$$44][$$48]  
|PARTITIONED|
-                                        -- HASH_PARTITION_EXCHANGE [$$44]  
|PARTITIONED|
+                                      -- HYBRID_HASH_JOIN [$$47][$$51]  
|PARTITIONED|
+                                        -- HASH_PARTITION_EXCHANGE [$$47]  
|PARTITIONED|
                                           -- STREAM_PROJECT  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                              -- HYBRID_HASH_JOIN [$$45, 
$$44][$$47, $$46]  |PARTITIONED|
+                                              -- HYBRID_HASH_JOIN [$$48, 
$$47][$$50, $$49]  |PARTITIONED|
                                                 -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                   -- DATASOURCE_SCAN  
|PARTITIONED|
                                                     -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan
index b5e9913..122f5cc 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan
@@ -3,13 +3,13 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- SORT_MERGE_EXCHANGE [$$l_shipmode(ASC) ]  |PARTITIONED|
-          -- SORT_GROUP_BY[$$122]  |PARTITIONED|
+          -- SORT_GROUP_BY[$$128]  |PARTITIONED|
                   {
                     -- AGGREGATE  |LOCAL|
                       -- NESTED_TUPLE_SOURCE  |LOCAL|
                   }
-            -- HASH_PARTITION_EXCHANGE [$$122]  |PARTITIONED|
-              -- SORT_GROUP_BY[$$104]  |PARTITIONED|
+            -- HASH_PARTITION_EXCHANGE [$$128]  |PARTITIONED|
+              -- SORT_GROUP_BY[$$110]  |PARTITIONED|
                       {
                         -- AGGREGATE  |LOCAL|
                           -- NESTED_TUPLE_SOURCE  |LOCAL|
@@ -17,12 +17,12 @@
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- STREAM_PROJECT  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- HYBRID_HASH_JOIN [$$104][$$111]  |PARTITIONED|
+                      -- HYBRID_HASH_JOIN [$$110][$$117]  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- HYBRID_HASH_JOIN [$$113][$$108]  |PARTITIONED|
-                                -- HASH_PARTITION_EXCHANGE [$$113]  
|PARTITIONED|
+                              -- HYBRID_HASH_JOIN [$$119][$$114]  |PARTITIONED|
+                                -- HASH_PARTITION_EXCHANGE [$$119]  
|PARTITIONED|
                                   -- STREAM_PROJECT  |PARTITIONED|
                                     -- STREAM_SELECT  |PARTITIONED|
                                       -- ASSIGN  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast.plan
index 339e9ce..e24d30b 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast.plan
@@ -3,13 +3,13 @@
     -- STREAM_PROJECT  |PARTITIONED|
       -- ASSIGN  |PARTITIONED|
         -- SORT_MERGE_EXCHANGE [$$l_shipmode(ASC) ]  |PARTITIONED|
-          -- SORT_GROUP_BY[$$122]  |PARTITIONED|
+          -- SORT_GROUP_BY[$$128]  |PARTITIONED|
                   {
                     -- AGGREGATE  |LOCAL|
                       -- NESTED_TUPLE_SOURCE  |LOCAL|
                   }
-            -- HASH_PARTITION_EXCHANGE [$$122]  |PARTITIONED|
-              -- SORT_GROUP_BY[$$104]  |PARTITIONED|
+            -- HASH_PARTITION_EXCHANGE [$$128]  |PARTITIONED|
+              -- SORT_GROUP_BY[$$110]  |PARTITIONED|
                       {
                         -- AGGREGATE  |LOCAL|
                           -- NESTED_TUPLE_SOURCE  |LOCAL|
@@ -17,11 +17,11 @@
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- STREAM_PROJECT  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- HYBRID_HASH_JOIN [$$104][$$111]  |PARTITIONED|
+                      -- HYBRID_HASH_JOIN [$$110][$$117]  |PARTITIONED|
                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                           -- STREAM_PROJECT  |PARTITIONED|
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                              -- HYBRID_HASH_JOIN [$$112][$$108]  |PARTITIONED|
+                              -- HYBRID_HASH_JOIN [$$118][$$114]  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                   -- STREAM_PROJECT  |PARTITIONED|
                                     -- STREAM_SELECT  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast_ps.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast_ps.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast_ps.plan
index 17aa91c..083cd1e 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast_ps.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast_ps.plan
@@ -9,13 +9,13 @@
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- REPLICATE  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- SORT_GROUP_BY[$$122]  |PARTITIONED|
+                      -- SORT_GROUP_BY[$$128]  |PARTITIONED|
                               {
                                 -- AGGREGATE  |LOCAL|
                                   -- NESTED_TUPLE_SOURCE  |LOCAL|
                               }
-                        -- HASH_PARTITION_EXCHANGE [$$122]  |PARTITIONED|
-                          -- SORT_GROUP_BY[$$104]  |PARTITIONED|
+                        -- HASH_PARTITION_EXCHANGE [$$128]  |PARTITIONED|
+                          -- SORT_GROUP_BY[$$110]  |PARTITIONED|
                                   {
                                     -- AGGREGATE  |LOCAL|
                                       -- NESTED_TUPLE_SOURCE  |LOCAL|
@@ -23,11 +23,11 @@
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                               -- STREAM_PROJECT  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- HYBRID_HASH_JOIN [$$104][$$111]  
|PARTITIONED|
+                                  -- HYBRID_HASH_JOIN [$$110][$$117]  
|PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- HYBRID_HASH_JOIN [$$112][$$108]  
|PARTITIONED|
+                                          -- HYBRID_HASH_JOIN [$$118][$$114]  
|PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                               -- STREAM_PROJECT  |PARTITIONED|
                                                 -- STREAM_SELECT  |PARTITIONED|
@@ -55,13 +55,13 @@
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                             -- REPLICATE  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- SORT_GROUP_BY[$$122]  |PARTITIONED|
+                                -- SORT_GROUP_BY[$$128]  |PARTITIONED|
                                         {
                                           -- AGGREGATE  |LOCAL|
                                             -- NESTED_TUPLE_SOURCE  |LOCAL|
                                         }
-                                  -- HASH_PARTITION_EXCHANGE [$$122]  
|PARTITIONED|
-                                    -- SORT_GROUP_BY[$$104]  |PARTITIONED|
+                                  -- HASH_PARTITION_EXCHANGE [$$128]  
|PARTITIONED|
+                                    -- SORT_GROUP_BY[$$110]  |PARTITIONED|
                                             {
                                               -- AGGREGATE  |LOCAL|
                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
@@ -69,11 +69,11 @@
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- HYBRID_HASH_JOIN [$$104][$$111] 
 |PARTITIONED|
+                                            -- HYBRID_HASH_JOIN [$$110][$$117] 
 |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                 -- STREAM_PROJECT  
|PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                    -- HYBRID_HASH_JOIN 
[$$112][$$108]  |PARTITIONED|
+                                                    -- HYBRID_HASH_JOIN 
[$$118][$$114]  |PARTITIONED|
                                                       -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                         -- STREAM_PROJECT  
|PARTITIONED|
                                                           -- STREAM_SELECT  
|PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_ps.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_ps.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_ps.plan
index b7864dd..73d9b55 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_ps.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_ps.plan
@@ -9,13 +9,13 @@
                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                   -- REPLICATE  |PARTITIONED|
                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      -- SORT_GROUP_BY[$$122]  |PARTITIONED|
+                      -- SORT_GROUP_BY[$$128]  |PARTITIONED|
                               {
                                 -- AGGREGATE  |LOCAL|
                                   -- NESTED_TUPLE_SOURCE  |LOCAL|
                               }
-                        -- HASH_PARTITION_EXCHANGE [$$122]  |PARTITIONED|
-                          -- SORT_GROUP_BY[$$104]  |PARTITIONED|
+                        -- HASH_PARTITION_EXCHANGE [$$128]  |PARTITIONED|
+                          -- SORT_GROUP_BY[$$110]  |PARTITIONED|
                                   {
                                     -- AGGREGATE  |LOCAL|
                                       -- NESTED_TUPLE_SOURCE  |LOCAL|
@@ -23,12 +23,12 @@
                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                               -- STREAM_PROJECT  |PARTITIONED|
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  -- HYBRID_HASH_JOIN [$$104][$$111]  
|PARTITIONED|
+                                  -- HYBRID_HASH_JOIN [$$110][$$117]  
|PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                       -- STREAM_PROJECT  |PARTITIONED|
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- HYBRID_HASH_JOIN [$$113][$$108]  
|PARTITIONED|
-                                            -- HASH_PARTITION_EXCHANGE [$$113] 
 |PARTITIONED|
+                                          -- HYBRID_HASH_JOIN [$$119][$$114]  
|PARTITIONED|
+                                            -- HASH_PARTITION_EXCHANGE [$$119] 
 |PARTITIONED|
                                               -- STREAM_PROJECT  |PARTITIONED|
                                                 -- STREAM_SELECT  |PARTITIONED|
                                                   -- ASSIGN  |PARTITIONED|
@@ -55,13 +55,13 @@
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                             -- REPLICATE  |PARTITIONED|
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                -- SORT_GROUP_BY[$$122]  |PARTITIONED|
+                                -- SORT_GROUP_BY[$$128]  |PARTITIONED|
                                         {
                                           -- AGGREGATE  |LOCAL|
                                             -- NESTED_TUPLE_SOURCE  |LOCAL|
                                         }
-                                  -- HASH_PARTITION_EXCHANGE [$$122]  
|PARTITIONED|
-                                    -- SORT_GROUP_BY[$$104]  |PARTITIONED|
+                                  -- HASH_PARTITION_EXCHANGE [$$128]  
|PARTITIONED|
+                                    -- SORT_GROUP_BY[$$110]  |PARTITIONED|
                                             {
                                               -- AGGREGATE  |LOCAL|
                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
@@ -69,12 +69,12 @@
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- HYBRID_HASH_JOIN [$$104][$$111] 
 |PARTITIONED|
+                                            -- HYBRID_HASH_JOIN [$$110][$$117] 
 |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
                                                 -- STREAM_PROJECT  
|PARTITIONED|
                                                   -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                    -- HYBRID_HASH_JOIN 
[$$113][$$108]  |PARTITIONED|
-                                                      -- 
HASH_PARTITION_EXCHANGE [$$113]  |PARTITIONED|
+                                                    -- HYBRID_HASH_JOIN 
[$$119][$$114]  |PARTITIONED|
+                                                      -- 
HASH_PARTITION_EXCHANGE [$$119]  |PARTITIONED|
                                                         -- STREAM_PROJECT  
|PARTITIONED|
                                                           -- STREAM_SELECT  
|PARTITIONED|
                                                             -- ASSIGN  
|PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/optimizerts/results/window/window_02.plan
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/window/window_02.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/window/window_02.plan
new file mode 100644
index 0000000..e452d03
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/window/window_02.plan
@@ -0,0 +1,23 @@
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    -- STREAM_PROJECT  |PARTITIONED|
+      -- ASSIGN  |PARTITIONED|
+        -- SORT_MERGE_EXCHANGE [$$48(ASC) ]  |PARTITIONED|
+          -- STABLE_SORT [$$48(ASC)]  |PARTITIONED|
+            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+              -- STREAM_PROJECT  |PARTITIONED|
+                -- WINDOW  |PARTITIONED|
+                        {
+                          -- AGGREGATE  |LOCAL|
+                            -- NESTED_TUPLE_SOURCE  |LOCAL|
+                        }
+                  -- WINDOW  |PARTITIONED|
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      -- STABLE_SORT [$$34(ASC), $$48(ASC)]  |PARTITIONED|
+                        -- HASH_PARTITION_EXCHANGE [$$34]  |PARTITIONED|
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            -- ASSIGN  |PARTITIONED|
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.3.query.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.3.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.3.query.sqlpp
index 2948a3f..144b586 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.3.query.sqlpp
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.3.query.sqlpp
@@ -44,5 +44,4 @@ select
   min(rank_result_delta) rank_min_delta,
   max(rank_result_delta) rank_max_delta,
   min(percent_rank_result_delta) percent_rank_min_delta,
-  max(percent_rank_result_delta) percent_rank_max_delta
-
+  max(percent_rank_result_delta) percent_rank_max_delta;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.4.query.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.4.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.4.query.sqlpp
index d3f7916..11226b8 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.4.query.sqlpp
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.4.query.sqlpp
@@ -28,5 +28,5 @@ with P as 4
 from t1, range(t1.one, P) p
 group by p
 select p, row_number() over (order by p desc) rn
-order by p
+order by p;
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.5.query.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.5.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.5.query.sqlpp
index c0548c3..cea4bc3 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.5.query.sqlpp
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.5.query.sqlpp
@@ -28,5 +28,5 @@ with P as 4
 from t1, range(t1.one, P) p
 group by p group as g
 select p, ( from g select g.t1.c1, row_number() over ( order by g.t1.c2 desc ) 
rn order by g.t1.c1 ) gg
-order by p
+order by p;
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.6.query.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.6.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.6.query.sqlpp
new file mode 100644
index 0000000..dcfc33f
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.6.query.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description  : Test window function with SQL++ aggregate
+ * Expected Res : SUCCESS
+ */
+
+use test;
+
+from t1
+select c1, array_sum((from w select value w.t1.c1)) over w as (partition by c2 
mod 2)  as `sum`
+order by c1;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ntile_02/ntile_02.1.query.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ntile_02/ntile_02.1.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ntile_02/ntile_02.1.query.sqlpp
index 3a46f18..77b7249 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ntile_02/ntile_02.1.query.sqlpp
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ntile_02/ntile_02.1.query.sqlpp
@@ -22,4 +22,4 @@
  */
 
 from range(1,10) t
-select ntile("string") over (order by t desc)
+select ntile("string") over (order by t desc) as res

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.1.ddl.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.1.ddl.sqlpp
new file mode 100644
index 0000000..b91590f
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.1.ddl.sqlpp
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description  : Core window functions tests
+ * Expected Res : SUCCESS
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+create type tenkType as closed {
+  unique1         : integer,
+  unique2         : integer,
+  two             : integer,
+  four            : integer,
+  ten             : integer,
+  twenty          : integer,
+  hundred         : integer,
+  thousand        : integer,
+  twothousand     : integer,
+  fivethous       : integer,
+  tenthous        : integer,
+  odd             : integer,
+  even            : integer,
+  stringu1        : string,
+  stringu2        : string,
+  string4         : string
+};
+
+create dataset tenk1(tenkType) primary key unique2;
+
+create index idx_tenk1_unique1 on tenk1(unique1) type btree;
+
+create type empsalaryType as closed {
+  depname         : string,
+  empno           : bigint,
+  salary          : integer,
+  enroll_date     : date
+};
+
+create dataset empsalary(empsalaryType) primary key empno;
+
+create type numericsType as closed {
+  id              : integer,
+  f_float4        : float,
+  f_float8        : double
+};
+
+create dataset numerics(numericsType) primary key id;
+
+create type datetimesType as closed {
+  id              : integer,
+  f_timetz        : time,
+  f_timestamptz   : timestamp
+};
+
+create dataset datetimes(datetimesType) primary key id;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.10.query.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.10.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.10.query.sqlpp
new file mode 100644
index 0000000..66d32b2
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.10.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description  : Core window functions tests
+ * Expected Res : SUCCESS
+ */
+
+use test;
+
+FROM tenk1
+WHERE unique2 < 10
+SELECT round_half_to_even(percent_rank() OVER (PARTITION BY four ORDER BY 
ten), 4) AS `percent_rank`, ten, four
+ORDER BY four, ten

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.100.query.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.100.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.100.query.sqlpp
new file mode 100644
index 0000000..a1767f7
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.100.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description  : Core window functions tests
+ * Expected Res : SUCCESS
+ */
+
+use test;
+
+from (from empsalary select value empsalary order by enroll_date, salary limit 
10) s
+select enroll_date, salary,
+  first_value(salary) over(order by enroll_date range between unbounded 
preceding and duration("P1Y") following exclude ties) as `first_value`,
+  last_value(salary) over(order by enroll_date range between unbounded 
preceding and duration("P1Y") following) as `last_value`
+order by enroll_date, salary
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.101.query.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.101.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.101.query.sqlpp
new file mode 100644
index 0000000..53f7657
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.101.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description  : Core window functions tests
+ * Expected Res : SUCCESS
+ */
+
+use test;
+
+from (from empsalary select value empsalary order by enroll_date, salary limit 
10) s
+select enroll_date, salary,
+  first_value(salary) over(order by enroll_date range between unbounded 
preceding and duration("P1Y") following exclude ties) as `first_value`,
+  last_value(salary) over(order by enroll_date range between unbounded 
preceding and duration("P1Y") following exclude ties) as `last_value`
+order by enroll_date, salary

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.102.query.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.102.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.102.query.sqlpp
new file mode 100644
index 0000000..0d263bc
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.102.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description  : Core window functions tests
+ * Expected Res : SUCCESS
+ */
+
+use test;
+
+from (from empsalary select value empsalary order by enroll_date, salary limit 
10) s
+select enroll_date, salary,
+  first_value(salary) over(order by enroll_date range between unbounded 
preceding and duration("P1Y") following exclude group) as `first_value`,
+  last_value(salary) over(order by enroll_date range between unbounded 
preceding and duration("P1Y") following exclude group) as `last_value`
+order by enroll_date, salary
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.103.query.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.103.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.103.query.sqlpp
new file mode 100644
index 0000000..96a8824
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.103.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description  : Core window functions tests
+ * Expected Res : SUCCESS
+ */
+
+use test;
+
+from (from empsalary select value empsalary order by enroll_date, salary limit 
10) s
+select enroll_date, salary,
+  first_value(salary) over(order by enroll_date range between unbounded 
preceding and duration("P1Y") following exclude current row) as `first_value`,
+  last_value(salary) over(order by enroll_date range between unbounded 
preceding and duration("P1Y") following exclude current row) as `last_value`
+order by enroll_date, salary

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f2c18aa9/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.104.query.sqlpp
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.104.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.104.query.sqlpp
new file mode 100644
index 0000000..825bc7d
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/pg_win/pg_win.104.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description  : Core window functions tests
+ * Expected Res : SUCCESS
+ */
+
+use test;
+
+from
+  (select x, x as y from range(1,5) as x
+   union all select null as x, 42 as y) ss
+select x, y,
+ first_value(y) over w as (order by x range between 2 preceding and 2 
following) as `first_value`,
+ last_value(y) over w as (order by x range between 2 preceding and 2 
following) as `last_value`
+order by x

Reply via email to