>From Preetham Poluparthi <[email protected]>:

Preetham Poluparthi has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21066?usp=email )


Change subject: [NO ISSUE][*DB][TEST] Fix test failures caused by replicate 
optimization patch
......................................................................

[NO ISSUE][*DB][TEST] Fix test failures caused by replicate optimization patch

Ext-ref: MB-71172

Change-Id: I118be88ac67ad1af5f1510e036acd951d05cbb45
---
M asterixdb/asterix-app/src/test/resources/optimizerts/results/ch2/ch2_q15.plan
M 
asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/leftouterjoin/query-ASTERIXDB-2857.plan
2 files changed, 144 insertions(+), 142 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/66/21066/1

diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/ch2/ch2_q15.plan 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/ch2/ch2_q15.plan
index 1b1cdb7..efaf9a1 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/ch2/ch2_q15.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/ch2/ch2_q15.plan
@@ -26,44 +26,44 @@
                         -- HYBRID_HASH_JOIN [$$231][$$268]  |PARTITIONED|
                           exchange
                           -- HASH_PARTITION_EXCHANGE [$$231]  |PARTITIONED|
-                            assign [$$231] <- [{"supplier_no": $#1, 
"total_rev": $$240}.getField("total_revenue")] project: [$$231, $#1]
+                            assign [$$240, $#1, $$231] <- [$$265, $$247, 
$$210] project: [$$231, $#1]
                             -- ASSIGN  |PARTITIONED|
                               exchange
                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                group by ([$#1 := $$280]) decor ([]) {
-                                          aggregate [$$240] <- 
[agg-global-sql-sum($$279)]
-                                          -- AGGREGATE  |LOCAL|
-                                            nested tuple source
-                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                       }
-                                -- SORT_GROUP_BY[$$280]  |PARTITIONED|
+                                replicate
+                                -- REPLICATE  |PARTITIONED|
                                   exchange
-                                  -- HASH_PARTITION_EXCHANGE [$$280]  
|PARTITIONED|
-                                    group by ([$$280 := $$225]) decor ([]) {
-                                              aggregate [$$279] <- 
[agg-local-sql-sum($$169)]
-                                              -- AGGREGATE  |LOCAL|
-                                                nested tuple source
-                                                -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                           }
-                                    -- SORT_GROUP_BY[$$225]  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    assign [$$210] <- [{"supplier_no": $$247, 
"total_rev": $$265}.getField("total_revenue")]
+                                    -- ASSIGN  |PARTITIONED|
                                       exchange
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        assign [$$225] <- 
[numeric-mod(numeric-multiply($$228, $$229), 10000)] project: [$$169, $$225]
-                                        -- ASSIGN  |PARTITIONED|
-                                          project ([$$228, $$229, $$169])
-                                          -- STREAM_PROJECT  |PARTITIONED|
-                                            exchange
-                                            -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                              join (and(eq($$262, $$229), 
eq($$263, $$228)))
-                                              -- HYBRID_HASH_JOIN [$$229, 
$$228][$$262, $$263]  |PARTITIONED|
-                                                exchange
-                                                -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                  assign [$$228, $$229] <- 
[$$250, $$251] project: [$$228, $$229]
-                                                  -- ASSIGN  |PARTITIONED|
+                                        group by ([$$247 := $$283]) decor ([]) 
{
+                                                  aggregate [$$265] <- 
[agg-global-sql-sum($$282)] [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0]
+                                                  -- AGGREGATE  |LOCAL|
+                                                    nested tuple source 
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                    -- NESTED_TUPLE_SOURCE  
|LOCAL|
+                                               }
+                                        -- SORT_GROUP_BY[$$283]  |PARTITIONED|
+                                          exchange
+                                          -- HASH_PARTITION_EXCHANGE [$$283]  
|PARTITIONED|
+                                            group by ([$$283 := $$249]) decor 
([]) {
+                                                      aggregate [$$282] <- 
[agg-local-sql-sum($$259)] [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0]
+                                                      -- AGGREGATE  |LOCAL|
+                                                        nested tuple source 
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                        -- NESTED_TUPLE_SOURCE 
 |LOCAL|
+                                                   }
+                                            -- SORT_GROUP_BY[$$249]  
|PARTITIONED|
+                                              exchange
+                                              -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
+                                                assign [$$249] <- 
[numeric-mod(numeric-multiply($$250, $$251), 10000)] project: [$$259, $$249]
+                                                -- ASSIGN  |PARTITIONED|
+                                                  project ([$$250, $$251, 
$$259])
+                                                  -- STREAM_PROJECT  
|PARTITIONED|
                                                     exchange
                                                     -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                      replicate
-                                                      -- REPLICATE  
|PARTITIONED|
+                                                      join (and(eq($$266, 
$$251), eq($$267, $$250)))
+                                                      -- HYBRID_HASH_JOIN 
[$$251, $$250][$$266, $$267]  |PARTITIONED|
                                                         exchange
                                                         -- 
HASH_PARTITION_EXCHANGE [$$251, $$250]  |PARTITIONED|
                                                           assign [$$251, 
$$250] <- [$$253.getField("s_i_id"), $$253.getField("s_w_id")] project: [$$250, 
$$251]
@@ -78,18 +78,10 @@
                                                                   -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                     
empty-tuple-source
                                                                     -- 
EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                exchange
-                                                -- HASH_PARTITION_EXCHANGE 
[$$262, $$263]  |PARTITIONED|
-                                                  select (and(ge($$227, 
"2018-01-01 00:00:00.000000"), lt($$227, "2018-04-01 00:00:00.000000"))) 
project: [$$169, $$262, $$263]
-                                                  -- STREAM_SELECT  
|PARTITIONED|
-                                                    assign [$$169, $$263, 
$$262, $$227] <- [$$259, $$267, $$266, $$256] project: [$$169, $$263, $$262, 
$$227]
-                                                    -- ASSIGN  |PARTITIONED|
-                                                      exchange
-                                                      -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                        replicate
-                                                        -- REPLICATE  
|PARTITIONED|
-                                                          exchange
-                                                          -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        exchange
+                                                        -- 
HASH_PARTITION_EXCHANGE [$$266, $$267]  |PARTITIONED|
+                                                          select 
(and(lt($$256, "2018-04-01 00:00:00.000000"), ge($$256, "2018-01-01 
00:00:00.000000"))) project: [$$259, $$266, $$267]
+                                                          -- STREAM_SELECT  
|PARTITIONED|
                                                             assign [$$259, 
$$267, $$266, $$256] <- [$$255.getField("ol_amount"), 
$$255.getField("ol_supply_w_id"), $$255.getField("ol_i_id"), 
$$255.getField("ol_delivery_d")] project: [$$259, $$267, $$266, $$256]
                                                             -- ASSIGN  
|PARTITIONED|
                                                               unnest $$255 <- 
scan-collection($$270) project: [$$255]
@@ -118,80 +110,78 @@
                                   -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
                                     aggregate [$$281] <- 
[agg-local-sql-max($$210)]
                                     -- AGGREGATE  |PARTITIONED|
-                                      assign [$$210] <- [{"supplier_no": 
$$247, "total_rev": $$265}.getField("total_revenue")] project: [$$210]
-                                      -- ASSIGN  |PARTITIONED|
+                                      project ([$$210])
+                                      -- STREAM_PROJECT  |PARTITIONED|
                                         exchange
                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          group by ([$$247 := $$283]) decor 
([]) {
-                                                    aggregate [$$265] <- 
[agg-global-sql-sum($$282)]
-                                                    -- AGGREGATE  |LOCAL|
-                                                      nested tuple source
-                                                      -- NESTED_TUPLE_SOURCE  
|LOCAL|
-                                                 }
-                                          -- SORT_GROUP_BY[$$283]  
|PARTITIONED|
+                                          replicate
+                                          -- REPLICATE  |PARTITIONED|
                                             exchange
-                                            -- HASH_PARTITION_EXCHANGE [$$283] 
 |PARTITIONED|
-                                              group by ([$$283 := $$249]) 
decor ([]) {
-                                                        aggregate [$$282] <- 
[agg-local-sql-sum($$259)]
-                                                        -- AGGREGATE  |LOCAL|
-                                                          nested tuple source
-                                                          -- 
NESTED_TUPLE_SOURCE  |LOCAL|
-                                                     }
-                                              -- SORT_GROUP_BY[$$249]  
|PARTITIONED|
+                                            -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
+                                              assign [$$210] <- 
[{"supplier_no": $$247, "total_rev": $$265}.getField("total_revenue")]
+                                              -- ASSIGN  |PARTITIONED|
                                                 exchange
                                                 -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                  assign [$$249] <- 
[numeric-mod(numeric-multiply($$250, $$251), 10000)] project: [$$259, $$249]
-                                                  -- ASSIGN  |PARTITIONED|
-                                                    project ([$$250, $$251, 
$$259])
-                                                    -- STREAM_PROJECT  
|PARTITIONED|
-                                                      exchange
-                                                      -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
-                                                        join (and(eq($$266, 
$$251), eq($$267, $$250)))
-                                                        -- HYBRID_HASH_JOIN 
[$$251, $$250][$$266, $$267]  |PARTITIONED|
-                                                          exchange
-                                                          -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            replicate
-                                                            -- REPLICATE  
|PARTITIONED|
-                                                              exchange
-                                                              -- 
HASH_PARTITION_EXCHANGE [$$251, $$250]  |PARTITIONED|
-                                                                assign [$$251, 
$$250] <- [$$253.getField("s_i_id"), $$253.getField("s_w_id")] project: [$$250, 
$$251]
-                                                                -- ASSIGN  
|PARTITIONED|
-                                                                  project 
([$$253])
-                                                                  -- 
STREAM_PROJECT  |PARTITIONED|
-                                                                    exchange
-                                                                    -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      
data-scan []<-[$$258, $$253] <- test.stock
-                                                                      -- 
DATASOURCE_SCAN  |PARTITIONED|
-                                                                        
exchange
-                                                                        -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                          
empty-tuple-source
-                                                                          -- 
EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                          exchange
-                                                          -- 
HASH_PARTITION_EXCHANGE [$$266, $$267]  |PARTITIONED|
-                                                            select 
(and(lt($$256, "2018-04-01 00:00:00.000000"), ge($$256, "2018-01-01 
00:00:00.000000"))) project: [$$259, $$266, $$267]
-                                                            -- STREAM_SELECT  
|PARTITIONED|
+                                                  group by ([$$247 := $$283]) 
decor ([]) {
+                                                            aggregate [$$265] 
<- [agg-global-sql-sum($$282)] [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0]
+                                                            -- AGGREGATE  
|LOCAL|
+                                                              nested tuple 
source [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                              -- 
NESTED_TUPLE_SOURCE  |LOCAL|
+                                                         }
+                                                  -- SORT_GROUP_BY[$$283]  
|PARTITIONED|
+                                                    exchange
+                                                    -- HASH_PARTITION_EXCHANGE 
[$$283]  |PARTITIONED|
+                                                      group by ([$$283 := 
$$249]) decor ([]) {
+                                                                aggregate 
[$$282] <- [agg-local-sql-sum($$259)] [cardinality: 0.0, doc-size: 0.0, 
op-cost: 0.0, total-cost: 0.0]
+                                                                -- AGGREGATE  
|LOCAL|
+                                                                  nested tuple 
source [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                                  -- 
NESTED_TUPLE_SOURCE  |LOCAL|
+                                                             }
+                                                      -- SORT_GROUP_BY[$$249]  
|PARTITIONED|
+                                                        exchange
+                                                        -- ONE_TO_ONE_EXCHANGE 
 |PARTITIONED|
+                                                          assign [$$249] <- 
[numeric-mod(numeric-multiply($$250, $$251), 10000)] project: [$$259, $$249]
+                                                          -- ASSIGN  
|PARTITIONED|
+                                                            project ([$$250, 
$$251, $$259])
+                                                            -- STREAM_PROJECT  
|PARTITIONED|
                                                               exchange
                                                               -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                replicate
-                                                                -- REPLICATE  
|PARTITIONED|
+                                                                join 
(and(eq($$266, $$251), eq($$267, $$250)))
+                                                                -- 
HYBRID_HASH_JOIN [$$251, $$250][$$266, $$267]  |PARTITIONED|
                                                                   exchange
-                                                                  -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                    assign 
[$$259, $$267, $$266, $$256] <- [$$255.getField("ol_amount"), 
$$255.getField("ol_supply_w_id"), $$255.getField("ol_i_id"), 
$$255.getField("ol_delivery_d")] project: [$$259, $$267, $$266, $$256]
+                                                                  -- 
HASH_PARTITION_EXCHANGE [$$251, $$250]  |PARTITIONED|
+                                                                    assign 
[$$251, $$250] <- [$$253.getField("s_i_id"), $$253.getField("s_w_id")] project: 
[$$250, $$251]
                                                                     -- ASSIGN  
|PARTITIONED|
-                                                                      unnest 
$$255 <- scan-collection($$270) project: [$$255]
-                                                                      -- 
UNNEST  |PARTITIONED|
-                                                                        assign 
[$$270] <- [$$254.getField("o_orderline")] project: [$$270]
-                                                                        -- 
ASSIGN  |PARTITIONED|
-                                                                          
project ([$$254])
-                                                                          -- 
STREAM_PROJECT  |PARTITIONED|
+                                                                      project 
([$$253])
+                                                                      -- 
STREAM_PROJECT  |PARTITIONED|
+                                                                        
exchange
+                                                                        -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                          
data-scan []<-[$$258, $$253] <- test.stock
+                                                                          -- 
DATASOURCE_SCAN  |PARTITIONED|
                                                                             
exchange
                                                                             -- 
ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              
data-scan []<-[$$257, $$254] <- test.orders
-                                                                              
-- DATASOURCE_SCAN  |PARTITIONED|
-                                                                               
 exchange
-                                                                               
 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                               
   empty-tuple-source
-                                                                               
   -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                              
empty-tuple-source
+                                                                              
-- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                  exchange
+                                                                  -- 
HASH_PARTITION_EXCHANGE [$$266, $$267]  |PARTITIONED|
+                                                                    select 
(and(lt($$256, "2018-04-01 00:00:00.000000"), ge($$256, "2018-01-01 
00:00:00.000000"))) project: [$$259, $$266, $$267]
+                                                                    -- 
STREAM_SELECT  |PARTITIONED|
+                                                                      assign 
[$$259, $$267, $$266, $$256] <- [$$255.getField("ol_amount"), 
$$255.getField("ol_supply_w_id"), $$255.getField("ol_i_id"), 
$$255.getField("ol_delivery_d")] project: [$$259, $$267, $$266, $$256]
+                                                                      -- 
ASSIGN  |PARTITIONED|
+                                                                        unnest 
$$255 <- scan-collection($$270) project: [$$255]
+                                                                        -- 
UNNEST  |PARTITIONED|
+                                                                          
assign [$$270] <- [$$254.getField("o_orderline")] project: [$$270]
+                                                                          -- 
ASSIGN  |PARTITIONED|
+                                                                            
project ([$$254])
+                                                                            -- 
STREAM_PROJECT  |PARTITIONED|
+                                                                              
exchange
+                                                                              
-- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                               
 data-scan []<-[$$257, $$254] <- test.orders
+                                                                               
 -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                               
   exchange
+                                                                               
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                               
     empty-tuple-source
+                                                                               
     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                   exchange
                   -- HASH_PARTITION_EXCHANGE [$$230]  |PARTITIONED|
                     assign [$$274, $$273, $$272, $$230] <- 
[$$su.getField("su_phone"), $$su.getField("su_address"), 
$$su.getField("su_name"), $$su.getField("su_suppkey")] project: [$$230, $$272, 
$$273, $$274]
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/leftouterjoin/query-ASTERIXDB-2857.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/leftouterjoin/query-ASTERIXDB-2857.plan
index 904d2dd..5fbf5d6 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/leftouterjoin/query-ASTERIXDB-2857.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/leftouterjoin/query-ASTERIXDB-2857.plan
@@ -1,57 +1,69 @@
-distribute result [$$133] [cardinality: 5.0E11, doc-size: -2.0, op-cost: 0.0, 
total-cost: 6000000.0]
+distribute result [$$133] [cardinality: 999800.01, doc-size: -2.0, op-cost: 
0.0, total-cost: 5999600.0]
 -- DISTRIBUTE_RESULT  |PARTITIONED|
-  exchange [cardinality: 5.0E11, doc-size: -2.0, op-cost: 0.0, total-cost: 
6000000.0]
+  exchange [cardinality: 999800.01, doc-size: -2.0, op-cost: 0.0, total-cost: 
5999600.0]
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-    assign [$$133] <- [{"t0_unique1": $$145, "t1_unique1": $$146, 
"t2_unique1": $#3}] project: [$$133] [cardinality: 5.0E11, doc-size: -2.0, 
op-cost: 0.0, total-cost: 6000000.0]
+    assign [$$133] <- [{"t0_unique1": $$145, "t1_unique1": $$146, 
"t2_unique1": $#3}] project: [$$133] [cardinality: 999800.01, doc-size: -2.0, 
op-cost: 0.0, total-cost: 5999600.0]
     -- ASSIGN  |PARTITIONED|
-      exchange [cardinality: 5.0E11, doc-size: -2.0, op-cost: 0.0, total-cost: 
6000000.0]
+      exchange [cardinality: 999800.01, doc-size: -2.0, op-cost: 0.0, 
total-cost: 5999600.0]
       -- SORT_MERGE_EXCHANGE [$$145(ASC), $$146(ASC), $#3(ASC) ]  |PARTITIONED|
-        order (ASC, $$145) (ASC, $$146) (ASC, $#3) [cardinality: 5.0E11, 
doc-size: -2.0, op-cost: 0.0, total-cost: 6000000.0]
+        order (ASC, $$145) (ASC, $$146) (ASC, $#3) [cardinality: 999800.01, 
doc-size: -2.0, op-cost: 0.0, total-cost: 5999600.0]
         -- STABLE_SORT [$$145(ASC), $$146(ASC), $#3(ASC)]  |PARTITIONED|
-          exchange [cardinality: 5.0E11, doc-size: -2.0, op-cost: 0.0, 
total-cost: 6000000.0]
+          exchange [cardinality: 999800.01, doc-size: -2.0, op-cost: 0.0, 
total-cost: 5999600.0]
           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-            project ([$$145, $$146, $#3]) [cardinality: 5.0E11, doc-size: 
-2.0, op-cost: 0.0, total-cost: 6000000.0]
+            project ([$$145, $$146, $#3]) [cardinality: 999800.01, doc-size: 
-2.0, op-cost: 0.0, total-cost: 5999600.0]
             -- STREAM_PROJECT  |PARTITIONED|
-              exchange [cardinality: 5.0E11, doc-size: -2.0, op-cost: 0.0, 
total-cost: 6000000.0]
+              exchange [cardinality: 999800.01, doc-size: -2.0, op-cost: 0.0, 
total-cost: 5999600.0]
               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                left outer join (eq(numeric-add($$136, $$138), $$159)) 
[cardinality: 9.223372036854776E16, doc-size: -3.0, op-cost: 5.00004E11, 
total-cost: 5.00015E11]
+                left outer join (eq(numeric-add($$136, $$138), $$159)) 
[cardinality: 9.9980001E11, doc-size: -3.0, op-cost: 1999800.01, total-cost: 
1.099920002E7]
                 -- NESTED_LOOP  |PARTITIONED|
-                  exchange [cardinality: 5.0E11, doc-size: -2.0, op-cost: 0.0, 
total-cost: 6000000.0]
+                  exchange [cardinality: 999800.01, doc-size: -2.0, op-cost: 
0.0, total-cost: 5999600.0]
                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                    assign [$$159] <- [numeric-multiply(2, $$137)] project: 
[$$145, $$146, $$136, $$159] [cardinality: 5.0E11, doc-size: -2.0, op-cost: 
0.0, total-cost: 6000000.0]
+                    assign [$$159] <- [numeric-multiply(2, $$137)] project: 
[$$145, $$146, $$136, $$159] [cardinality: 999800.01, doc-size: -2.0, op-cost: 
0.0, total-cost: 5999600.0]
                     -- ASSIGN  |PARTITIONED|
-                      exchange [cardinality: 5.0E11, doc-size: -2.0, op-cost: 
0.0, total-cost: 6000000.0]
+                      exchange [cardinality: 999800.01, doc-size: -2.0, 
op-cost: 0.0, total-cost: 5999600.0]
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                        join (eq($$136, $$137)) [cardinality: 5.0E11, 
doc-size: -2.0, op-cost: 2000000.0, total-cost: 6000000.0]
+                        join (eq($$136, $$137)) [cardinality: 999800.01, 
doc-size: -2.0, op-cost: 1999800.0, total-cost: 5999600.0]
                         -- HYBRID_HASH_JOIN [$$136][$$137]  |PARTITIONED|
-                          exchange [cardinality: 1000000.0, doc-size: -1.0, 
op-cost: 0.0, total-cost: 1000000.0]
+                          exchange [cardinality: 999900.0, doc-size: -1.0, 
op-cost: 0.0, total-cost: 1000000.0]
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            assign [$$145] <- [$$tenk.getField(0)] project: 
[$$145, $$136] [cardinality: 1000000.0, doc-size: -1.0, op-cost: 0.0, 
total-cost: 1000000.0]
+                            assign [$$145, $$136] <- [$$146, $$137] project: 
[$$145, $$136] [cardinality: 999900.0, doc-size: -1.0, op-cost: 0.0, 
total-cost: 1000000.0]
                             -- ASSIGN  |PARTITIONED|
-                              select (and(lt($$136, 4), lt($$136, 2))) 
[cardinality: 1000000.0, doc-size: -1.0, op-cost: 0.0, total-cost: 1000000.0]
-                              -- STREAM_SELECT  |PARTITIONED|
-                                exchange [cardinality: 1000000.0, doc-size: 
-1.0, op-cost: 0.0, total-cost: 1000000.0]
-                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  data-scan []<-[$$136, $$tenk] <- test.tenk 
[cardinality: 1000000.0, doc-size: -1.0, op-cost: 0.0, total-cost: 1000000.0]
-                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                    exchange [cardinality: 0.0, doc-size: 0.0, 
op-cost: 0.0, total-cost: 0.0]
-                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      empty-tuple-source [cardinality: 0.0, 
doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
-                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                          exchange [cardinality: 1000000.0, doc-size: -1.0, 
op-cost: 0.0, total-cost: 1000000.0]
+                              exchange [cardinality: 999900.0, doc-size: -1.0, 
op-cost: 0.0, total-cost: 1000000.0]
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                replicate [cardinality: 999900.0, doc-size: 
-1.0, op-cost: 0.0, total-cost: 1000000.0]
+                                -- REPLICATE  |PARTITIONED|
+                                  exchange [cardinality: 999900.0, doc-size: 
-1.0, op-cost: 0.0, total-cost: 1000000.0]
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    assign [$$146] <- [$$tenk.getField(0)] 
project: [$$146, $$137] [cardinality: 999900.0, doc-size: -1.0, op-cost: 0.0, 
total-cost: 1000000.0]
+                                    -- ASSIGN  |PARTITIONED|
+                                      select (and(lt($$137, 2), lt($$137, 4))) 
[cardinality: 999900.0, doc-size: -1.0, op-cost: 0.0, total-cost: 1000000.0]
+                                      -- STREAM_SELECT  |PARTITIONED|
+                                        exchange [cardinality: 1000000.0, 
doc-size: -1.0, op-cost: 0.0, total-cost: 1000000.0]
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          data-scan []<-[$$137, $$tenk] <- 
test.tenk [cardinality: 1000000.0, doc-size: -1.0, op-cost: 0.0, total-cost: 
1000000.0]
+                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                            exchange [cardinality: 0.0, 
doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                            -- ONE_TO_ONE_EXCHANGE  
|PARTITIONED|
+                                              empty-tuple-source [cardinality: 
0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                              -- EMPTY_TUPLE_SOURCE  
|PARTITIONED|
+                          exchange [cardinality: 999900.0, doc-size: -1.0, 
op-cost: 0.0, total-cost: 1000000.0]
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            assign [$$146] <- [$$tenk.getField(0)] project: 
[$$146, $$137] [cardinality: 1000000.0, doc-size: -1.0, op-cost: 0.0, 
total-cost: 1000000.0]
-                            -- ASSIGN  |PARTITIONED|
-                              select (and(lt($$137, 2), lt($$137, 4))) 
[cardinality: 1000000.0, doc-size: -1.0, op-cost: 0.0, total-cost: 1000000.0]
-                              -- STREAM_SELECT  |PARTITIONED|
-                                exchange [cardinality: 1000000.0, doc-size: 
-1.0, op-cost: 0.0, total-cost: 1000000.0]
-                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                  data-scan []<-[$$137, $$tenk] <- test.tenk 
[cardinality: 1000000.0, doc-size: -1.0, op-cost: 0.0, total-cost: 1000000.0]
-                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                    exchange [cardinality: 0.0, doc-size: 0.0, 
op-cost: 0.0, total-cost: 0.0]
+                            replicate [cardinality: 999900.0, doc-size: -1.0, 
op-cost: 0.0, total-cost: 1000000.0]
+                            -- REPLICATE  |PARTITIONED|
+                              exchange [cardinality: 999900.0, doc-size: -1.0, 
op-cost: 0.0, total-cost: 1000000.0]
+                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                assign [$$146] <- [$$tenk.getField(0)] 
project: [$$146, $$137] [cardinality: 999900.0, doc-size: -1.0, op-cost: 0.0, 
total-cost: 1000000.0]
+                                -- ASSIGN  |PARTITIONED|
+                                  select (and(lt($$137, 2), lt($$137, 4))) 
[cardinality: 999900.0, doc-size: -1.0, op-cost: 0.0, total-cost: 1000000.0]
+                                  -- STREAM_SELECT  |PARTITIONED|
+                                    exchange [cardinality: 1000000.0, 
doc-size: -1.0, op-cost: 0.0, total-cost: 1000000.0]
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      empty-tuple-source [cardinality: 0.0, 
doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
-                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      data-scan []<-[$$137, $$tenk] <- 
test.tenk [cardinality: 1000000.0, doc-size: -1.0, op-cost: 0.0, total-cost: 
1000000.0]
+                                      -- DATASOURCE_SCAN  |PARTITIONED|
+                                        exchange [cardinality: 0.0, doc-size: 
0.0, op-cost: 0.0, total-cost: 0.0]
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          empty-tuple-source [cardinality: 
0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                   exchange [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0]
                   -- BROADCAST_EXCHANGE  |PARTITIONED|
                     assign [$#3] <- [{"unique1": $$tenk.getField(0), 
"unique2": $$138}.getField(0)] project: [$#3, $$138] [cardinality: 0.0, 
doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21066?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: phoenix
Gerrit-Change-Id: I118be88ac67ad1af5f1510e036acd951d05cbb45
Gerrit-Change-Number: 21066
Gerrit-PatchSet: 1
Gerrit-Owner: Preetham Poluparthi <[email protected]>

Reply via email to