[ASTERIXDB-3209][COMP] CBO Not Picking Up Index (for Equality Pred)
Change-Id: I818171a2f381c941fb336f5c5c9cb2a03d2af70c
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17800
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Vijay Sarathy <vijay.sarathy@couchbase.com>
Reviewed-by: Ian Maxon <imaxon@uci.edu>
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/Cost.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/Cost.java
index 45e6691..145bec8 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/Cost.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/Cost.java
@@ -22,6 +22,9 @@
public class Cost implements ICost {
public static final double MAX_CARD = 1.0e200;
+
+ // Minimum cardinality for operators is 2.1 to prevent bad plans due to cardinality under estimation errors.
+ public static final double MIN_CARD = 2.1;
private static final int COST_EQ = 0;
private final double cost;
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/CostMethods.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/CostMethods.java
index 887cc94..c6f8d0a 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/CostMethods.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/cost/CostMethods.java
@@ -31,6 +31,7 @@
protected long blockSize;
protected long DOP;
protected double maxMemorySize;
+ protected static double selectivityForSecondaryIndexSelection = 0.1;
public CostMethods(IOptimizationContext context) {
optCtx = context;
@@ -58,65 +59,75 @@
return physOptConfig.getMaxFramesForJoin() * physOptConfig.getFrameSize();
}
- // These cost methods are very simple and rudimentary for now. These can be improved by asterixdb developers as needed.
+ // These cost methods are very simple and rudimentary for now.
+ // They can be improved by asterixdb developers as needed.
public Cost costFullScan(JoinNode jn) {
- return new Cost(jn.computeJoinCardinality());
+ return new Cost(jn.getOrigCardinality());
}
public Cost costIndexScan(JoinNode jn, double indexSel) {
- return new Cost(jn.computeJoinCardinality());
+ return new Cost(indexSel * jn.getOrigCardinality());
}
public Cost costIndexDataScan(JoinNode jn, double indexSel) {
- return new Cost(jn.computeJoinCardinality());
+ if (indexSel < selectivityForSecondaryIndexSelection) {
+ return new Cost(indexSel * jn.getOrigCardinality());
+ }
+
+ // If index selectivity is not very selective, make index scan more expensive than full scan.
+ return new Cost(jn.getOrigCardinality());
}
public Cost costHashJoin(JoinNode jn) {
JoinNode leftJn = jn.getLeftJn();
JoinNode rightJn = jn.getRightJn();
- return new Cost(leftJn.computeJoinCardinality() + rightJn.computeJoinCardinality());
+ return new Cost(leftJn.getCardinality() + rightJn.getCardinality());
}
public Cost computeHJProbeExchangeCost(JoinNode jn) {
JoinNode leftJn = jn.getLeftJn();
- return new Cost(leftJn.computeJoinCardinality());
+ return new Cost(leftJn.getCardinality());
}
public Cost computeHJBuildExchangeCost(JoinNode jn) {
JoinNode rightJn = jn.getRightJn();
- return new Cost(rightJn.computeJoinCardinality());
+ return new Cost(rightJn.getCardinality());
}
public Cost costBroadcastHashJoin(JoinNode jn) {
JoinNode leftJn = jn.getLeftJn();
JoinNode rightJn = jn.getRightJn();
- return new Cost(leftJn.computeJoinCardinality() + DOP * rightJn.computeJoinCardinality());
+ return new Cost(leftJn.getCardinality() + DOP * rightJn.getCardinality());
}
public Cost computeBHJBuildExchangeCost(JoinNode jn) {
JoinNode rightJn = jn.getRightJn();
- return new Cost(DOP * rightJn.computeJoinCardinality());
+ return new Cost(DOP * rightJn.getCardinality());
}
public Cost costIndexNLJoin(JoinNode jn) {
JoinNode leftJn = jn.getLeftJn();
JoinNode rightJn = jn.getRightJn();
- return new Cost(leftJn.computeJoinCardinality());
+ double origRightCard = rightJn.getOrigCardinality();
+ double innerCard = rightJn.getCardinality();
+ double joinCard = jn.getCardinality();
+
+ return new Cost(4 * leftJn.getCardinality() + joinCard * origRightCard / innerCard);
}
public Cost computeNLJOuterExchangeCost(JoinNode jn) {
JoinNode leftJn = jn.getLeftJn();
- return new Cost(DOP * leftJn.computeJoinCardinality());
+ return new Cost(DOP * leftJn.getCardinality());
}
public Cost costCartesianProductJoin(JoinNode jn) {
JoinNode leftJn = jn.getLeftJn();
JoinNode rightJn = jn.getRightJn();
- return new Cost(leftJn.computeJoinCardinality() * rightJn.computeJoinCardinality());
+ return new Cost(leftJn.getCardinality() * rightJn.getCardinality());
}
public Cost computeCPRightExchangeCost(JoinNode jn) {
JoinNode rightJn = jn.getRightJn();
- return new Cost(DOP * rightJn.computeJoinCardinality());
+ return new Cost(DOP * rightJn.getCardinality());
}
}
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
index ee9ec4f..752064a 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
@@ -680,10 +680,7 @@
jn.aliases.addAll(jnJ.aliases);
Collections.sort(jn.aliases);
jn.size = jnI.size + jnJ.size;
- jn.cardinality = jn.computeJoinCardinality();
- if (jn.cardinality < 2.1) {
- jn.cardinality = 2.1; // for keeping CP and HJ cost formulas happy.
- }
+ jn.setCardinality(jn.computeJoinCardinality());
} else {
addPlansToThisJn = jnNewBits.jnIndex;
}
@@ -769,15 +766,14 @@
jn.setAvgDocSize(idxDetails.getSourceAvgItemSize());
}
// multiply by the respective predicate selectivities
- jn.cardinality = jn.origCardinality * stats.getSelectivity(leafInput, false);
- if (jn.cardinality < 2.1) {
- jn.cardinality = 2.1; // for keeping CP and HJ cost formulas happy.
- }
+ jn.setCardinality(jn.origCardinality * stats.getSelectivity(leafInput, false));
} else {
// could be unnest or assign
jn.datasetNames = new ArrayList<>(Collections.singleton("unnestOrAssign"));
jn.aliases = new ArrayList<>(Collections.singleton("unnestOrAssign"));
- jn.origCardinality = jn.cardinality = findInListCard(leafInput);
+ double card = findInListCard(leafInput);
+ jn.setOrigCardinality(card);
+ jn.setCardinality(card);
// just a guess
jn.size = 10;
}
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
index 8afc26b..89791ef 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
@@ -123,7 +123,8 @@
}
protected void setCardinality(double card) {
- cardinality = card;
+ // Minimum cardinality for operators is MIN_CARD to prevent bad plans due to cardinality under estimation errors.
+ cardinality = Math.max(card, Cost.MIN_CARD);
}
public double getOrigCardinality() {
@@ -131,7 +132,8 @@
}
protected void setOrigCardinality(double card) {
- origCardinality = card;
+ // Minimum cardinality for operators is MIN_CARD to prevent bad plans due to cardinality under estimation errors.
+ origCardinality = Math.max(card, Cost.MIN_CARD);
}
protected void setAvgDocSize(double avgDocSize) {
@@ -302,6 +304,7 @@
if (this.applicableJoinConditions.size() >= 3) {
redundantSel = removeRedundantPred(this.applicableJoinConditions);
}
+
// By dividing by redundantSel, we are undoing the earlier multiplication of all the selectivities.
return joinCard / redundantSel;
}
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/hash-join-with-redundant-variable/hash-join-with-redundant-variable.1.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/hash-join-with-redundant-variable/hash-join-with-redundant-variable.1.plan
index d44143c..3a7bf12 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/hash-join-with-redundant-variable/hash-join-with-redundant-variable.1.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/hash-join-with-redundant-variable/hash-join-with-redundant-variable.1.plan
@@ -5,7 +5,7 @@
-- AGGREGATE |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- HYBRID_HASH_JOIN [$$137][$$136] |PARTITIONED|
- -- HASH_PARTITION_EXCHANGE [$$137] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- STREAM_SELECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
@@ -14,11 +14,11 @@
-- DATASOURCE_SCAN (test.region) |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
- -- HASH_PARTITION_EXCHANGE [$$136] |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- HYBRID_HASH_JOIN [$$124][$$123] |PARTITIONED|
- -- HASH_PARTITION_EXCHANGE [$$124] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
@@ -26,7 +26,7 @@
-- DATASOURCE_SCAN (test.nation) |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
- -- HASH_PARTITION_EXCHANGE [$$123] |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- HYBRID_HASH_JOIN [$$134, $$122][$$135, $$123] |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849-2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849-2.plan
new file mode 100644
index 0000000..21bb457
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849-2.plan
@@ -0,0 +1,32 @@
+-- COMMIT |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- INSERT_DELETE |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$3] |PARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
+-- COMMIT |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- INSERT_DELETE |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$3] |PARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$47][$$49] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN (test.s) |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |UNPARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_2.plan
new file mode 100644
index 0000000..d6e9fa9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_2.plan
@@ -0,0 +1,28 @@
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ -- SORT_MERGE_EXCHANGE [$$26(ASC) ] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- PRE_CLUSTERED_GROUP_BY[$$22] |PARTITIONED|
+ {
+ -- AGGREGATE |LOCAL|
+ -- STREAM_SELECT |LOCAL|
+ -- NESTED_TUPLE_SOURCE |LOCAL|
+ }
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$22(ASC)] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$22] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$23][$#1] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN (tpch.Customer) |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_2_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_2_ps.plan
new file mode 100644
index 0000000..de7e790
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_2_ps.plan
@@ -0,0 +1,67 @@
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$26(ASC)] |PARTITIONED|
+ -- RANGE_PARTITION_EXCHANGE [$$26(ASC)] |PARTITIONED|
+ -- FORWARD |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- REPLICATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- PRE_CLUSTERED_GROUP_BY[$$22] |PARTITIONED|
+ {
+ -- AGGREGATE |LOCAL|
+ -- STREAM_SELECT |LOCAL|
+ -- NESTED_TUPLE_SOURCE |LOCAL|
+ }
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$22(ASC)] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$22] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$23][$#1] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN (tpch.Customer) |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- AGGREGATE |UNPARTITIONED|
+ -- RANDOM_MERGE_EXCHANGE |PARTITIONED|
+ -- AGGREGATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- REPLICATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- PRE_CLUSTERED_GROUP_BY[$$22] |PARTITIONED|
+ {
+ -- AGGREGATE |LOCAL|
+ -- STREAM_SELECT |LOCAL|
+ -- NESTED_TUPLE_SOURCE |LOCAL|
+ }
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$22(ASC)] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$22] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$23][$#1] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN (tpch.Customer) |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_4.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_4.plan
new file mode 100644
index 0000000..9ba625b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_4.plan
@@ -0,0 +1,28 @@
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ -- SORT_MERGE_EXCHANGE [$$25(ASC) ] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- PRE_CLUSTERED_GROUP_BY[$$21] |PARTITIONED|
+ {
+ -- AGGREGATE |LOCAL|
+ -- STREAM_SELECT |LOCAL|
+ -- NESTED_TUPLE_SOURCE |LOCAL|
+ }
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$21(ASC)] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$21] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$22][$#1] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN (tpch.Customer) |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_4_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_4_ps.plan
new file mode 100644
index 0000000..148d1b0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_4_ps.plan
@@ -0,0 +1,67 @@
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$25(ASC)] |PARTITIONED|
+ -- RANGE_PARTITION_EXCHANGE [$$25(ASC)] |PARTITIONED|
+ -- FORWARD |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- REPLICATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- PRE_CLUSTERED_GROUP_BY[$$21] |PARTITIONED|
+ {
+ -- AGGREGATE |LOCAL|
+ -- STREAM_SELECT |LOCAL|
+ -- NESTED_TUPLE_SOURCE |LOCAL|
+ }
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$21(ASC)] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$21] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$22][$#1] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN (tpch.Customer) |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- AGGREGATE |UNPARTITIONED|
+ -- RANDOM_MERGE_EXCHANGE |PARTITIONED|
+ -- AGGREGATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- REPLICATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- PRE_CLUSTERED_GROUP_BY[$$21] |PARTITIONED|
+ {
+ -- AGGREGATE |LOCAL|
+ -- STREAM_SELECT |LOCAL|
+ -- NESTED_TUPLE_SOURCE |LOCAL|
+ }
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$21(ASC)] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$21] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$22][$#1] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN (tpch.Customer) |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_6.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_6.plan
new file mode 100644
index 0000000..d6e9fa9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_6.plan
@@ -0,0 +1,28 @@
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ -- SORT_MERGE_EXCHANGE [$$26(ASC) ] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- PRE_CLUSTERED_GROUP_BY[$$22] |PARTITIONED|
+ {
+ -- AGGREGATE |LOCAL|
+ -- STREAM_SELECT |LOCAL|
+ -- NESTED_TUPLE_SOURCE |LOCAL|
+ }
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$22(ASC)] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$22] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$23][$#1] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN (tpch.Customer) |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_6_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_6_ps.plan
new file mode 100644
index 0000000..de7e790
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/subquery/in_as_or_6_ps.plan
@@ -0,0 +1,67 @@
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$26(ASC)] |PARTITIONED|
+ -- RANGE_PARTITION_EXCHANGE [$$26(ASC)] |PARTITIONED|
+ -- FORWARD |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- REPLICATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- PRE_CLUSTERED_GROUP_BY[$$22] |PARTITIONED|
+ {
+ -- AGGREGATE |LOCAL|
+ -- STREAM_SELECT |LOCAL|
+ -- NESTED_TUPLE_SOURCE |LOCAL|
+ }
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$22(ASC)] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$22] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$23][$#1] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN (tpch.Customer) |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- AGGREGATE |UNPARTITIONED|
+ -- RANDOM_MERGE_EXCHANGE |PARTITIONED|
+ -- AGGREGATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- REPLICATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- PRE_CLUSTERED_GROUP_BY[$$22] |PARTITIONED|
+ {
+ -- AGGREGATE |LOCAL|
+ -- STREAM_SELECT |LOCAL|
+ -- NESTED_TUPLE_SOURCE |LOCAL|
+ }
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STABLE_SORT [$$22(ASC)] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$22] |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$23][$#1] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN (tpch.Customer) |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- ASSIGN |UNPARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping_broadcast.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping_broadcast.plan
index 4ad65b5..c970de6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping_broadcast.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping_broadcast.plan
@@ -3,13 +3,13 @@
-- STREAM_PROJECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
-- SORT_MERGE_EXCHANGE [$$l_shipmode(ASC) ] |PARTITIONED|
- -- SORT_GROUP_BY[$$131] |PARTITIONED|
+ -- SORT_GROUP_BY[$$135] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
}
- -- HASH_PARTITION_EXCHANGE [$$131] |PARTITIONED|
- -- SORT_GROUP_BY[$$114] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$135] |PARTITIONED|
+ -- SORT_GROUP_BY[$$118] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
@@ -17,7 +17,7 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- HYBRID_HASH_JOIN [$$118][$$121] |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$122][$$125] |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
@@ -28,8 +28,11 @@
-- BROADCAST_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- HYBRID_HASH_JOIN [$$114][$$120] |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$124][$$118] |PARTITIONED|
+ -- RANDOM_PARTITION_EXCHANGE |PARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- STREAM_SELECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
@@ -38,6 +41,3 @@
-- DATASOURCE_SCAN (tpch.LineItem) |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
- -- BROADCAST_EXCHANGE |PARTITIONED|
- -- UNNEST |UNPARTITIONED|
- -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping_broadcast_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping_broadcast_ps.plan
index 7bf4afa..d037732 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping_broadcast_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/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[$$131] |PARTITIONED|
+ -- SORT_GROUP_BY[$$135] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
}
- -- HASH_PARTITION_EXCHANGE [$$131] |PARTITIONED|
- -- SORT_GROUP_BY[$$114] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$135] |PARTITIONED|
+ -- SORT_GROUP_BY[$$118] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
@@ -23,7 +23,7 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- HYBRID_HASH_JOIN [$$118][$$121] |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$122][$$125] |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
@@ -34,8 +34,11 @@
-- BROADCAST_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- HYBRID_HASH_JOIN [$$114][$$120] |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$124][$$118] |PARTITIONED|
+ -- RANDOM_PARTITION_EXCHANGE |PARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- STREAM_SELECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
@@ -44,9 +47,6 @@
-- DATASOURCE_SCAN (tpch.LineItem) |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
- -- BROADCAST_EXCHANGE |PARTITIONED|
- -- UNNEST |UNPARTITIONED|
- -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
-- BROADCAST_EXCHANGE |PARTITIONED|
-- AGGREGATE |UNPARTITIONED|
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
@@ -55,13 +55,13 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- REPLICATE |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- SORT_GROUP_BY[$$131] |PARTITIONED|
+ -- SORT_GROUP_BY[$$135] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
}
- -- HASH_PARTITION_EXCHANGE [$$131] |PARTITIONED|
- -- SORT_GROUP_BY[$$114] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$135] |PARTITIONED|
+ -- SORT_GROUP_BY[$$118] |PARTITIONED|
{
-- AGGREGATE |LOCAL|
-- NESTED_TUPLE_SOURCE |LOCAL|
@@ -69,7 +69,7 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- HYBRID_HASH_JOIN [$$118][$$121] |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$122][$$125] |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
@@ -80,8 +80,11 @@
-- BROADCAST_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- HYBRID_HASH_JOIN [$$114][$$120] |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- HYBRID_HASH_JOIN [$$124][$$118] |PARTITIONED|
+ -- RANDOM_PARTITION_EXCHANGE |PARTITIONED|
+ -- UNNEST |UNPARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
-- STREAM_SELECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
@@ -90,6 +93,3 @@
-- DATASOURCE_SCAN (tpch.LineItem) |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
- -- BROADCAST_EXCHANGE |PARTITIONED|
- -- UNNEST |UNPARTITIONED|
- -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.007.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.007.plan
index 8550e65..00578bd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.007.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.007.plan
@@ -1,24 +1,24 @@
-distribute result [$$d] [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+distribute result [$$d] [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d]) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$d]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$20(ASC) ] |PARTITIONED|
- order (ASC, $$20) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ order (ASC, $$20) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$20(ASC)] |PARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d, $$20]) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$d, $$20]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- select (and(gt($$19, "1"), lt($$19, "3"))) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ select (and(gt($$19, "1"), lt($$19, "3"))) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- assign [$$19] <- [$$d.getField("a")] [cardinality: 6.0, op-cost: 0.0, total-cost: 1.0]
+ assign [$$19] <- [$$d.getField("a")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$20, $$d] <- test.ColumnDataset filter on: and(gt($$d.getField("a"), "1"), lt($$d.getField("a"), "3")) range-filter on: and(gt($$d.getField("a"), "1"), lt($$d.getField("a"), "3")) [cardinality: 6.0, op-cost: 1.0, total-cost: 1.0]
+ data-scan []<-[$$20, $$d] <- test.ColumnDataset filter on: and(gt($$d.getField("a"), "1"), lt($$d.getField("a"), "3")) range-filter on: and(gt($$d.getField("a"), "1"), lt($$d.getField("a"), "3")) [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.009.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.009.plan
index 26029f0..c5bad9f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.009.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.009.plan
@@ -1,24 +1,24 @@
-distribute result [$$d] [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+distribute result [$$d] [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d]) [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ project ([$$d]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$20(ASC) ] |PARTITIONED|
- order (ASC, $$20) [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ order (ASC, $$20) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$20(ASC)] |PARTITIONED|
- exchange [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d, $$20]) [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ project ([$$d, $$20]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- select (and(gt($$19, 1), lt($$19, 3))) [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ select (and(gt($$19, 1), lt($$19, 3))) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- assign [$$19] <- [$$d.getField("a")] [cardinality: 6.0, op-cost: 0.0, total-cost: 0.11]
+ assign [$$19] <- [$$d.getField("a")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$20, $$d] <- test.ColumnDataset filter on: and(gt($$d.getField("a"), 1), lt($$d.getField("a"), 3)) range-filter on: and(gt($$d.getField("a"), 1), lt($$d.getField("a"), 3)) [cardinality: 6.0, op-cost: 0.11, total-cost: 0.11]
+ data-scan []<-[$$20, $$d] <- test.ColumnDataset filter on: and(gt($$d.getField("a"), 1), lt($$d.getField("a"), 3)) range-filter on: and(gt($$d.getField("a"), 1), lt($$d.getField("a"), 3)) [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.011.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.011.plan
index 6b57afe..88018de 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.011.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.011.plan
@@ -1,20 +1,20 @@
-distribute result [$$d] [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+distribute result [$$d] [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d]) [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ project ([$$d]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$28(ASC) ] |PARTITIONED|
- order (ASC, $$28) [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ order (ASC, $$28) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$28(ASC)] |PARTITIONED|
- exchange [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d, $$28]) [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ project ([$$d, $$28]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- select ($$26) [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ select ($$26) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$28, $$d, $$26]) [cardinality: 6.0, op-cost: 0.0, total-cost: 0.11]
+ project ([$$28, $$d, $$26]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
subplan {
aggregate [$$26] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -25,13 +25,13 @@
-- UNNEST |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 6.0, op-cost: 0.0, total-cost: 0.11]
+ } [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- SUBPLAN |PARTITIONED|
- assign [$$29] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 0.11]
+ assign [$$29] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on: lt(scan-collection($$d.getField("array")), "100") range-filter on: lt(scan-collection($$d.getField("array")), "100") [cardinality: 6.0, op-cost: 0.11, total-cost: 0.11]
+ data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on: lt(scan-collection($$d.getField("array")), "100") range-filter on: lt(scan-collection($$d.getField("array")), "100") [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.013.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.013.plan
index 821f0bb..2ed863a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.013.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.013.plan
@@ -1,20 +1,20 @@
-distribute result [$$d] [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+distribute result [$$d] [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d]) [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ project ([$$d]) [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$28(ASC) ] |PARTITIONED|
- order (ASC, $$28) [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ order (ASC, $$28) [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$28(ASC)] |PARTITIONED|
- exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d, $$28]) [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ project ([$$d, $$28]) [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- select ($$26) [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ select ($$26) [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$28, $$d, $$26]) [cardinality: 6.0, op-cost: 0.0, total-cost: 3.0]
+ project ([$$28, $$d, $$26]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
subplan {
aggregate [$$26] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -25,13 +25,13 @@
-- UNNEST |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 6.0, op-cost: 0.0, total-cost: 3.0]
+ } [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- SUBPLAN |PARTITIONED|
- assign [$$29] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 3.0]
+ assign [$$29] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 3.0]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on: lt(scan-collection($$d.getField("array")), 100) range-filter on: lt(scan-collection($$d.getField("array")), 100) [cardinality: 6.0, op-cost: 3.0, total-cost: 3.0]
+ data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on: lt(scan-collection($$d.getField("array")), 100) range-filter on: lt(scan-collection($$d.getField("array")), 100) [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.015.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.015.plan
index c97dc2a..3d4ceef 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.015.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.015.plan
@@ -1,20 +1,20 @@
-distribute result [$$d] [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+distribute result [$$d] [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d]) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$d]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$28(ASC) ] |PARTITIONED|
- order (ASC, $$28) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ order (ASC, $$28) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$28(ASC)] |PARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d, $$28]) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$d, $$28]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- select ($$26) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ select ($$26) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$28, $$d, $$26]) [cardinality: 6.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$28, $$d, $$26]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
subplan {
aggregate [$$26] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -25,13 +25,13 @@
-- UNNEST |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 6.0, op-cost: 0.0, total-cost: 1.0]
+ } [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- SUBPLAN |PARTITIONED|
- assign [$$29] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 1.0]
+ assign [$$29] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on: eq(scan-collection($$d.getField("array")), 100) range-filter on: eq(scan-collection($$d.getField("array")), 100) [cardinality: 6.0, op-cost: 1.0, total-cost: 1.0]
+ data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on: eq(scan-collection($$d.getField("array")), 100) range-filter on: eq(scan-collection($$d.getField("array")), 100) [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.017.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.017.plan
index 8e80f4c..c721841 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.017.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.017.plan
@@ -1,20 +1,20 @@
-distribute result [$$d] [cardinality: 4.0, op-cost: 0.0, total-cost: 4.0]
+distribute result [$$d] [cardinality: 4.0, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 4.0, op-cost: 0.0, total-cost: 4.0]
+ exchange [cardinality: 4.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d]) [cardinality: 4.0, op-cost: 0.0, total-cost: 4.0]
+ project ([$$d]) [cardinality: 4.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 4.0, op-cost: 0.0, total-cost: 4.0]
+ exchange [cardinality: 4.0, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$28(ASC) ] |PARTITIONED|
- order (ASC, $$28) [cardinality: 4.0, op-cost: 0.0, total-cost: 4.0]
+ order (ASC, $$28) [cardinality: 4.0, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$28(ASC)] |PARTITIONED|
- exchange [cardinality: 4.0, op-cost: 0.0, total-cost: 4.0]
+ exchange [cardinality: 4.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d, $$28]) [cardinality: 4.0, op-cost: 0.0, total-cost: 4.0]
+ project ([$$d, $$28]) [cardinality: 4.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- select ($$26) [cardinality: 4.0, op-cost: 0.0, total-cost: 4.0]
+ select ($$26) [cardinality: 4.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$28, $$d, $$26]) [cardinality: 6.0, op-cost: 0.0, total-cost: 4.0]
+ project ([$$28, $$d, $$26]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
subplan {
aggregate [$$26] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -25,13 +25,13 @@
-- UNNEST |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 6.0, op-cost: 0.0, total-cost: 4.0]
+ } [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- SUBPLAN |PARTITIONED|
- assign [$$29] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 4.0]
+ assign [$$29] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 4.0]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on: lt(scan-collection($$d.getField("array")), 100.1) range-filter on: lt(scan-collection($$d.getField("array")), 100.1) [cardinality: 6.0, op-cost: 4.0, total-cost: 4.0]
+ data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on: lt(scan-collection($$d.getField("array")), 100.1) range-filter on: lt(scan-collection($$d.getField("array")), 100.1) [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.019.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.019.plan
index 484d76f..5f136ea 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.019.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.019.plan
@@ -1,28 +1,28 @@
-distribute result [$$item] [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+distribute result [$$item] [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$item]) [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ project ([$$item]) [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$29(ASC), $$item(ASC) ] |PARTITIONED|
- order (ASC, $$29) (ASC, $$item) [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ order (ASC, $$29) (ASC, $$item) [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$29(ASC), $$item(ASC)] |PARTITIONED|
- exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- select (and(gt($$item, 60), lt($$item, 100))) [cardinality: 3.0, op-cost: 0.0, total-cost: 3.0]
+ select (and(gt($$item, 60), lt($$item, 100))) [cardinality: 3.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$29, $$item]) [cardinality: 6.0, op-cost: 0.0, total-cost: 3.0]
+ project ([$$29, $$item]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$item <- scan-collection($$30) [cardinality: 6.0, op-cost: 0.0, total-cost: 3.0]
+ unnest $$item <- scan-collection($$30) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- UNNEST |PARTITIONED|
- project ([$$29, $$30]) [cardinality: 6.0, op-cost: 0.0, total-cost: 3.0]
+ project ([$$29, $$30]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$30] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 3.0]
+ assign [$$30] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 3.0]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$29, $$d] <- test.ColumnDataset project ({array:[any]}) filter on: and(gt(scan-collection($$d.getField("array")), 60), lt(scan-collection($$d.getField("array")), 100)) range-filter on: and(gt(scan-collection($$d.getField("array")), 60), lt(scan-collection($$d.getField("array")), 100)) [cardinality: 6.0, op-cost: 3.0, total-cost: 3.0]
+ data-scan []<-[$$29, $$d] <- test.ColumnDataset project ({array:[any]}) filter on: and(gt(scan-collection($$d.getField("array")), 60), lt(scan-collection($$d.getField("array")), 100)) range-filter on: and(gt(scan-collection($$d.getField("array")), 60), lt(scan-collection($$d.getField("array")), 100)) [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.021.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.021.plan
index 8b3eb88..d6621a3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.021.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.021.plan
@@ -1,28 +1,28 @@
-distribute result [$$item] [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+distribute result [$$item] [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$item]) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$item]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$27(ASC), $$item(ASC) ] |PARTITIONED|
- order (ASC, $$27) (ASC, $$item) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ order (ASC, $$27) (ASC, $$item) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$27(ASC), $$item(ASC)] |PARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- select (eq($$item, 100)) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ select (eq($$item, 100)) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$27, $$item]) [cardinality: 6.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$27, $$item]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$item <- scan-collection($$28) [cardinality: 6.0, op-cost: 0.0, total-cost: 1.0]
+ unnest $$item <- scan-collection($$28) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- UNNEST |PARTITIONED|
- project ([$$27, $$28]) [cardinality: 6.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$27, $$28]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$28] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 1.0]
+ assign [$$28] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$27, $$d] <- test.ColumnDataset project ({array:[any]}) filter on: eq(scan-collection($$d.getField("array")), 100) range-filter on: eq(scan-collection($$d.getField("array")), 100) [cardinality: 6.0, op-cost: 1.0, total-cost: 1.0]
+ data-scan []<-[$$27, $$d] <- test.ColumnDataset project ({array:[any]}) filter on: eq(scan-collection($$d.getField("array")), 100) range-filter on: eq(scan-collection($$d.getField("array")), 100) [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.023.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.023.plan
index 7bda2a5..b89d0a9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.023.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.023.plan
@@ -1,28 +1,28 @@
-distribute result [$$item] [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+distribute result [$$item] [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$item]) [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ project ([$$item]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$27(ASC), $$item(ASC) ] |PARTITIONED|
- order (ASC, $$27) (ASC, $$item) [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ order (ASC, $$27) (ASC, $$item) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$27(ASC), $$item(ASC)] |PARTITIONED|
- exchange [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- select (gt($$item, 10000)) [cardinality: 0.11, op-cost: 0.0, total-cost: 0.11]
+ select (gt($$item, 10000)) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$27, $$item]) [cardinality: 6.0, op-cost: 0.0, total-cost: 0.11]
+ project ([$$27, $$item]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$item <- scan-collection($$28) [cardinality: 6.0, op-cost: 0.0, total-cost: 0.11]
+ unnest $$item <- scan-collection($$28) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- UNNEST |PARTITIONED|
- project ([$$27, $$28]) [cardinality: 6.0, op-cost: 0.0, total-cost: 0.11]
+ project ([$$27, $$28]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$28] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 0.11]
+ assign [$$28] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 0.11]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$27, $$d] <- test.ColumnDataset project ({array:[any]}) filter on: gt(scan-collection($$d.getField("array")), 10000) range-filter on: gt(scan-collection($$d.getField("array")), 10000) [cardinality: 6.0, op-cost: 0.11, total-cost: 0.11]
+ data-scan []<-[$$27, $$d] <- test.ColumnDataset project ({array:[any]}) filter on: gt(scan-collection($$d.getField("array")), 10000) range-filter on: gt(scan-collection($$d.getField("array")), 10000) [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.025.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.025.plan
index 0731954..baf747f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.025.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/001/001.025.plan
@@ -1,34 +1,34 @@
-distribute result [$$31] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+distribute result [$$31] [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$31]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ project ([$$31]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$31] <- [{"a": $$34, "item": $$item}] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ assign [$$31] <- [{"a": $$34, "item": $$item}] [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- project ([$$34, $$item]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ project ([$$34, $$item]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$35(ASC), $$34(ASC), $$item(ASC) ] |PARTITIONED|
- order (ASC, $$35) (ASC, $$34) (ASC, $$item) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ order (ASC, $$35) (ASC, $$34) (ASC, $$item) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$35(ASC), $$34(ASC), $$item(ASC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- select (gt($$item, 10)) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ select (gt($$item, 10)) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$35, $$34, $$item]) [cardinality: 6.0, op-cost: 0.0, total-cost: 2.0]
+ project ([$$35, $$34, $$item]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$item <- scan-collection($$36) [cardinality: 6.0, op-cost: 0.0, total-cost: 2.0]
+ unnest $$item <- scan-collection($$36) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- UNNEST |PARTITIONED|
select (eq($$34, "1")) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$35, $$34, $$36]) [cardinality: 6.0, op-cost: 0.0, total-cost: 2.0]
+ project ([$$35, $$34, $$36]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$34, $$36] <- [$$d.getField("a"), $$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 2.0]
+ assign [$$34, $$36] <- [$$d.getField("a"), $$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 2.0]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$35, $$d] <- test.ColumnDataset project ({a:any,array:[any]}) filter on: and(eq($$d.getField("a"), "1"), gt(scan-collection($$d.getField("array")), 10)) range-filter on: and(eq($$d.getField("a"), "1"), gt(scan-collection($$d.getField("array")), 10)) [cardinality: 6.0, op-cost: 2.0, total-cost: 2.0]
+ data-scan []<-[$$35, $$d] <- test.ColumnDataset project ({a:any,array:[any]}) filter on: and(eq($$d.getField("a"), "1"), gt(scan-collection($$d.getField("array")), 10)) range-filter on: and(eq($$d.getField("a"), "1"), gt(scan-collection($$d.getField("array")), 10)) [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.006.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.006.plan
index d2c4559..8071306 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.006.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.006.plan
@@ -1,32 +1,32 @@
-distribute result [$$47] [cardinality: 99.0, op-cost: 0.0, total-cost: 99.0]
+distribute result [$$47] [cardinality: 99.0, op-cost: 0.0, total-cost: 30.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 99.0, op-cost: 0.0, total-cost: 99.0]
+ exchange [cardinality: 99.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$47]) [cardinality: 99.0, op-cost: 0.0, total-cost: 99.0]
+ project ([$$47]) [cardinality: 99.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$47] <- [{"$1": $$49}] [cardinality: 99.0, op-cost: 0.0, total-cost: 99.0]
+ assign [$$47] <- [{"$1": $$49}] [cardinality: 99.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |UNPARTITIONED|
- aggregate [$$49] <- [agg-sql-sum($$51)] [cardinality: 99.0, op-cost: 0.0, total-cost: 99.0]
+ aggregate [$$49] <- [agg-sql-sum($$51)] [cardinality: 99.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |UNPARTITIONED|
- exchange [cardinality: 99.0, op-cost: 0.0, total-cost: 99.0]
+ exchange [cardinality: 99.0, op-cost: 0.0, total-cost: 30.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- aggregate [$$51] <- [agg-sql-count(1)] [cardinality: 99.0, op-cost: 0.0, total-cost: 99.0]
+ aggregate [$$51] <- [agg-sql-count(1)] [cardinality: 99.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |PARTITIONED|
- select (gt($$D, " ")) [cardinality: 99.0, op-cost: 0.0, total-cost: 99.0]
+ select (gt($$D, " ")) [cardinality: 99.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 99.0]
+ project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$D <- scan-collection($$50) [cardinality: 30.0, op-cost: 0.0, total-cost: 99.0]
+ unnest $$D <- scan-collection($$50) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- UNNEST |PARTITIONED|
- project ([$$50]) [cardinality: 30.0, op-cost: 0.0, total-cost: 99.0]
+ project ([$$50]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$50] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 99.0]
+ assign [$$50] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |PARTITIONED|
- project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 99.0]
+ project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 99.0]
+ exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$48, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: gt(scan-collection($$C.getField("dates")), " ") range-filter on: gt(scan-collection($$C.getField("dates")), " ") [cardinality: 30.0, op-cost: 99.0, total-cost: 99.0]
+ data-scan []<-[$$48, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: gt(scan-collection($$C.getField("dates")), " ") range-filter on: gt(scan-collection($$C.getField("dates")), " ") [cardinality: 30.0, op-cost: 30.0, total-cost: 30.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.102.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.102.plan
index fb64b66..ffd904f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.102.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.102.plan
@@ -1,32 +1,32 @@
-distribute result [$$48] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
+distribute result [$$48] [cardinality: 6.0, op-cost: 0.0, total-cost: 30.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$48]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
+ project ([$$48]) [cardinality: 6.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$48] <- [{"$1": $$50}] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
+ assign [$$48] <- [{"$1": $$50}] [cardinality: 6.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |UNPARTITIONED|
- aggregate [$$50] <- [agg-sql-sum($$52)] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
+ aggregate [$$50] <- [agg-sql-sum($$52)] [cardinality: 6.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |UNPARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 30.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- aggregate [$$52] <- [agg-sql-count(1)] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
+ aggregate [$$52] <- [agg-sql-count(1)] [cardinality: 6.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |PARTITIONED|
- select (eq(substring($$D, 0, 4), "2011")) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
+ select (eq(substring($$D, 0, 4), "2011")) [cardinality: 6.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 6.0]
+ project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$D <- scan-collection($$51) [cardinality: 30.0, op-cost: 0.0, total-cost: 6.0]
+ unnest $$D <- scan-collection($$51) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- UNNEST |PARTITIONED|
- project ([$$51]) [cardinality: 30.0, op-cost: 0.0, total-cost: 6.0]
+ project ([$$51]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$51] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 6.0]
+ assign [$$51] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |PARTITIONED|
- project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 6.0]
+ project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 6.0]
+ exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$49, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011") [cardinality: 30.0, op-cost: 6.0, total-cost: 6.0]
+ data-scan []<-[$$49, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011") [cardinality: 30.0, op-cost: 30.0, total-cost: 30.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.105.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.105.plan
index 317dccc..b59f329 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.105.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.105.plan
@@ -1,36 +1,36 @@
-distribute result [$$51] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
+distribute result [$$51] [cardinality: 20.0, op-cost: 0.0, total-cost: 30.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$51]) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
+ project ([$$51]) [cardinality: 20.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$51] <- [{"$1": $$54}] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
+ assign [$$51] <- [{"$1": $$54}] [cardinality: 20.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |UNPARTITIONED|
- aggregate [$$54] <- [agg-sql-sum($$57)] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
+ aggregate [$$54] <- [agg-sql-sum($$57)] [cardinality: 20.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 30.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- aggregate [$$57] <- [agg-sql-count(1)] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
+ aggregate [$$57] <- [agg-sql-count(1)] [cardinality: 20.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |PARTITIONED|
- select (or(eq($$58, "2011"), eq($$58, "2016"))) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
+ select (or(eq($$58, "2011"), eq($$58, "2016"))) [cardinality: 20.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$58]) [cardinality: 30.0, op-cost: 0.0, total-cost: 20.0]
+ project ([$$58]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$58] <- [substring($$D, 0, 4)] [cardinality: 30.0, op-cost: 0.0, total-cost: 20.0]
+ assign [$$58] <- [substring($$D, 0, 4)] [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |PARTITIONED|
- project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 20.0]
+ project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$D <- scan-collection($$55) [cardinality: 30.0, op-cost: 0.0, total-cost: 20.0]
+ unnest $$D <- scan-collection($$55) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- UNNEST |PARTITIONED|
- project ([$$55]) [cardinality: 30.0, op-cost: 0.0, total-cost: 20.0]
+ project ([$$55]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$55] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 20.0]
+ assign [$$55] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |PARTITIONED|
- project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 20.0]
+ project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 20.0]
+ exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$53, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: or(eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011"), eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2016")) [cardinality: 30.0, op-cost: 20.0, total-cost: 20.0]
+ data-scan []<-[$$53, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: or(eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011"), eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2016")) [cardinality: 30.0, op-cost: 30.0, total-cost: 30.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.108.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.108.plan
index f541fed..d117252 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.108.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.108.plan
@@ -1,20 +1,20 @@
-distribute result [$$52] [cardinality: 11.0, op-cost: 0.0, total-cost: 11.0]
+distribute result [$$52] [cardinality: 11.0, op-cost: 0.0, total-cost: 30.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 11.0, op-cost: 0.0, total-cost: 11.0]
+ exchange [cardinality: 11.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$52]) [cardinality: 11.0, op-cost: 0.0, total-cost: 11.0]
+ project ([$$52]) [cardinality: 11.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$52] <- [{"$1": $$55}] [cardinality: 11.0, op-cost: 0.0, total-cost: 11.0]
+ assign [$$52] <- [{"$1": $$55}] [cardinality: 11.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |UNPARTITIONED|
- aggregate [$$55] <- [agg-sql-sum($$58)] [cardinality: 11.0, op-cost: 0.0, total-cost: 11.0]
+ aggregate [$$55] <- [agg-sql-sum($$58)] [cardinality: 11.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |UNPARTITIONED|
- exchange [cardinality: 11.0, op-cost: 0.0, total-cost: 11.0]
+ exchange [cardinality: 11.0, op-cost: 0.0, total-cost: 30.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- aggregate [$$58] <- [agg-sql-count(1)] [cardinality: 11.0, op-cost: 0.0, total-cost: 11.0]
+ aggregate [$$58] <- [agg-sql-count(1)] [cardinality: 11.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |PARTITIONED|
- select ($$45) [cardinality: 11.0, op-cost: 0.0, total-cost: 11.0]
+ select ($$45) [cardinality: 11.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$45]) [cardinality: 30.0, op-cost: 0.0, total-cost: 11.0]
+ project ([$$45]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
subplan {
aggregate [$$45] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -27,17 +27,17 @@
-- UNNEST |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 30.0, op-cost: 0.0, total-cost: 11.0]
+ } [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- SUBPLAN |PARTITIONED|
- project ([$$56]) [cardinality: 30.0, op-cost: 0.0, total-cost: 11.0]
+ project ([$$56]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$56] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 11.0]
+ assign [$$56] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |PARTITIONED|
- project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 11.0]
+ project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 11.0]
+ exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$54, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: or(eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011"), eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2016")) [cardinality: 30.0, op-cost: 11.0, total-cost: 11.0]
+ data-scan []<-[$$54, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: or(eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011"), eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2016")) [cardinality: 30.0, op-cost: 30.0, total-cost: 30.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.113.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.113.plan
index 552f478..11fa99a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.113.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/004/004.113.plan
@@ -1,38 +1,38 @@
-distribute result [$$54] [cardinality: 7.0, op-cost: 0.0, total-cost: 7.0]
+distribute result [$$54] [cardinality: 7.0, op-cost: 0.0, total-cost: 30.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 7.0, op-cost: 0.0, total-cost: 7.0]
+ exchange [cardinality: 7.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$54]) [cardinality: 7.0, op-cost: 0.0, total-cost: 7.0]
+ project ([$$54]) [cardinality: 7.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$54] <- [{"$1": $$57}] [cardinality: 7.0, op-cost: 0.0, total-cost: 7.0]
+ assign [$$54] <- [{"$1": $$57}] [cardinality: 7.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |UNPARTITIONED|
- aggregate [$$57] <- [agg-sql-sum($$61)] [cardinality: 7.0, op-cost: 0.0, total-cost: 7.0]
+ aggregate [$$57] <- [agg-sql-sum($$61)] [cardinality: 7.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |UNPARTITIONED|
- exchange [cardinality: 7.0, op-cost: 0.0, total-cost: 7.0]
+ exchange [cardinality: 7.0, op-cost: 0.0, total-cost: 30.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- aggregate [$$61] <- [agg-sql-count(1)] [cardinality: 7.0, op-cost: 0.0, total-cost: 7.0]
+ aggregate [$$61] <- [agg-sql-count(1)] [cardinality: 7.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |PARTITIONED|
- select (or(eq($$62, "2011"), eq($$62, "2016"))) [cardinality: 7.0, op-cost: 0.0, total-cost: 7.0]
+ select (or(eq($$62, "2011"), eq($$62, "2016"))) [cardinality: 7.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$62]) [cardinality: 30.0, op-cost: 0.0, total-cost: 7.0]
+ project ([$$62]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$62] <- [substring($$D, 0, 4)] [cardinality: 30.0, op-cost: 0.0, total-cost: 7.0]
+ assign [$$62] <- [substring($$D, 0, 4)] [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |PARTITIONED|
- project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 7.0]
+ project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$D <- scan-collection($$59) [cardinality: 30.0, op-cost: 0.0, total-cost: 7.0]
+ unnest $$D <- scan-collection($$59) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- UNNEST |PARTITIONED|
- project ([$$59]) [cardinality: 30.0, op-cost: 0.0, total-cost: 7.0]
+ project ([$$59]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
select (starts-with($$C.getField("business_id"), "-0")) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
- assign [$$59] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 7.0]
+ assign [$$59] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |PARTITIONED|
- project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 7.0]
+ project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 7.0]
+ exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$56, $$C] <- TestYelp.YelpCheckin project ({dates:[any],business_id:any}) filter on: and(starts-with($$C.getField("business_id"), "-0"), or(eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011"), eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2016"))) [cardinality: 30.0, op-cost: 7.0, total-cost: 7.0]
+ data-scan []<-[$$56, $$C] <- TestYelp.YelpCheckin project ({dates:[any],business_id:any}) filter on: and(starts-with($$C.getField("business_id"), "-0"), or(eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011"), eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2016"))) [cardinality: 30.0, op-cost: 30.0, total-cost: 30.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/005/005.008.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/005/005.008.plan
index 1e221be..9936002 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/005/005.008.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/005/005.008.plan
@@ -1,32 +1,32 @@
-distribute result [$$48] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+distribute result [$$48] [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$48]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ project ([$$48]) [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$48] <- [{"$1": $$50}] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ assign [$$48] <- [{"$1": $$50}] [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |UNPARTITIONED|
- aggregate [$$50] <- [agg-sql-sum($$52)] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ aggregate [$$50] <- [agg-sql-sum($$52)] [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |UNPARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- aggregate [$$52] <- [agg-sql-count(1)] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ aggregate [$$52] <- [agg-sql-count(1)] [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |PARTITIONED|
- select (gt(numeric-add($$D, 1), 2018)) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.0]
+ select (gt(numeric-add($$D, 1), 2018)) [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 2.0]
+ project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$D <- scan-collection($$51) [cardinality: 30.0, op-cost: 0.0, total-cost: 2.0]
+ unnest $$D <- scan-collection($$51) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- UNNEST |PARTITIONED|
- project ([$$51]) [cardinality: 30.0, op-cost: 0.0, total-cost: 2.0]
+ project ([$$51]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$51] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 2.0]
+ assign [$$51] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |PARTITIONED|
- project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 2.0]
+ project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 2.0]
+ exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$49, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: gt(numeric-add(scan-collection($$C.getField("dates")), 1), 2018) [cardinality: 30.0, op-cost: 2.0, total-cost: 2.0]
+ data-scan []<-[$$49, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: gt(numeric-add(scan-collection($$C.getField("dates")), 1), 2018) [cardinality: 30.0, op-cost: 30.0, total-cost: 30.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/005/005.011.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/005/005.011.plan
index 346e3d3..1930f1c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/005/005.011.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/005/005.011.plan
@@ -1,32 +1,32 @@
-distribute result [$$51] [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+distribute result [$$51] [cardinality: 8.0, op-cost: 0.0, total-cost: 30.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$51]) [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ project ([$$51]) [cardinality: 8.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$51] <- [{"$1": $$53}] [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ assign [$$51] <- [{"$1": $$53}] [cardinality: 8.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |UNPARTITIONED|
- aggregate [$$53] <- [agg-sql-sum($$55)] [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ aggregate [$$53] <- [agg-sql-sum($$55)] [cardinality: 8.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |UNPARTITIONED|
- exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 30.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- aggregate [$$55] <- [agg-sql-count(1)] [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ aggregate [$$55] <- [agg-sql-count(1)] [cardinality: 8.0, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |PARTITIONED|
- select (or(gt(numeric-add($$D, 1), 2018), eq(substring($$D, 0, 4), "2011"))) [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ select (or(gt(numeric-add($$D, 1), 2018), eq(substring($$D, 0, 4), "2011"))) [cardinality: 8.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 8.0]
+ project ([$$D]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$D <- scan-collection($$54) [cardinality: 30.0, op-cost: 0.0, total-cost: 8.0]
+ unnest $$D <- scan-collection($$54) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- UNNEST |PARTITIONED|
- project ([$$54]) [cardinality: 30.0, op-cost: 0.0, total-cost: 8.0]
+ project ([$$54]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$54] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 8.0]
+ assign [$$54] <- [$$C.getField("dates")] [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |PARTITIONED|
- project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 8.0]
+ project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 8.0]
+ exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$52, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: or(gt(numeric-add(scan-collection($$C.getField("dates")), 1), 2018), eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011")) [cardinality: 30.0, op-cost: 8.0, total-cost: 8.0]
+ data-scan []<-[$$52, $$C] <- TestYelp.YelpCheckin project ({dates:[any]}) filter on: or(gt(numeric-add(scan-collection($$C.getField("dates")), 1), 2018), eq(substring(scan-collection($$C.getField("dates")), 0, 4), "2011")) [cardinality: 30.0, op-cost: 30.0, total-cost: 30.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/006/006.010.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/006/006.010.plan
index b217e0e..a66d6a8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/006/006.010.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/006/006.010.plan
@@ -1,20 +1,20 @@
-distribute result [$$51] [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+distribute result [$$51] [cardinality: 2.1, op-cost: 0.0, total-cost: 8.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 8.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$51]) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$51]) [cardinality: 2.1, op-cost: 0.0, total-cost: 8.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$51] <- [{"$1": $$53}] [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ assign [$$51] <- [{"$1": $$53}] [cardinality: 2.1, op-cost: 0.0, total-cost: 8.0]
-- ASSIGN |UNPARTITIONED|
- aggregate [$$53] <- [agg-sql-sum($$57)] [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ aggregate [$$53] <- [agg-sql-sum($$57)] [cardinality: 2.1, op-cost: 0.0, total-cost: 8.0]
-- AGGREGATE |UNPARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 8.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- aggregate [$$57] <- [agg-sql-count(1)] [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ aggregate [$$57] <- [agg-sql-count(1)] [cardinality: 2.1, op-cost: 0.0, total-cost: 8.0]
-- AGGREGATE |PARTITIONED|
- select ($$44) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ select ($$44) [cardinality: 2.1, op-cost: 0.0, total-cost: 8.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$44]) [cardinality: 8.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$44]) [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
-- STREAM_PROJECT |PARTITIONED|
subplan {
aggregate [$$44] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -27,17 +27,17 @@
-- UNNEST |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 8.0, op-cost: 0.0, total-cost: 1.0]
+ } [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
-- SUBPLAN |PARTITIONED|
- project ([$$54]) [cardinality: 8.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$54]) [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$54] <- [$$c.getField("geo").getField("coordinates")] [cardinality: 8.0, op-cost: 0.0, total-cost: 1.0]
+ assign [$$54] <- [$$c.getField("geo").getField("coordinates")] [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
-- ASSIGN |PARTITIONED|
- project ([$$c]) [cardinality: 8.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$c]) [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$52, $$c] <- test.ColumnDataset project ({geo:{coordinates:[{lon:any}]}}) [cardinality: 8.0, op-cost: 1.0, total-cost: 1.0]
+ data-scan []<-[$$52, $$c] <- test.ColumnDataset project ({geo:{coordinates:[{lon:any}]}}) [cardinality: 8.0, op-cost: 8.0, total-cost: 8.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/007/007.010.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/007/007.010.plan
index a5f30b3..307a75a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/007/007.010.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/007/007.010.plan
@@ -1,24 +1,24 @@
-distribute result [$$37] [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+distribute result [$$37] [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$37]) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$37]) [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$37] <- [{"$1": $$39}] [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ assign [$$37] <- [{"$1": $$39}] [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- ASSIGN |UNPARTITIONED|
- aggregate [$$39] <- [agg-sql-sum($$42)] [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ aggregate [$$39] <- [agg-sql-sum($$42)] [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |UNPARTITIONED|
- exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- aggregate [$$42] <- [agg-sql-count(1)] [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ aggregate [$$42] <- [agg-sql-count(1)] [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- AGGREGATE |PARTITIONED|
- select (array-contains($$C.getField("checkin_times").getField("dates"), "2018-05-25")) [cardinality: 1.0, op-cost: 0.0, total-cost: 1.0]
+ select (array-contains($$C.getField("checkin_times").getField("dates"), "2018-05-25")) [cardinality: 2.1, op-cost: 0.0, total-cost: 30.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$C]) [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 30.0, op-cost: 0.0, total-cost: 30.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$38, $$C] <- TestYelp.YelpCheckin project ({checkin_times:{dates:any}}) [cardinality: 30.0, op-cost: 1.0, total-cost: 1.0]
+ data-scan []<-[$$38, $$C] <- TestYelp.YelpCheckin project ({checkin_times:{dates:any}}) [cardinality: 30.0, op-cost: 30.0, total-cost: 30.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.101.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.101.plan
index f4aae0b..8a40740 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.101.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.101.plan
@@ -1,20 +1,20 @@
-distribute result [$$d] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$d] [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ project ([$$d]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$20(ASC) ] |PARTITIONED|
- order (ASC, $$20) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$20) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$20(ASC)] |PARTITIONED|
- exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d, $$20]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ project ([$$d, $$20]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- select ($$18) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ select ($$18) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$20, $$d, $$18]) [cardinality: 6.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$20, $$d, $$18]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
subplan {
aggregate [$$18] <- [empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -23,13 +23,13 @@
-- STREAM_SELECT |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 6.0, op-cost: 0.0, total-cost: 2.1]
+ } [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- SUBPLAN |PARTITIONED|
- assign [$$21] <- [$$d.getField("a")] [cardinality: 6.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$21] <- [$$d.getField("a")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$20, $$d] <- test.ColumnDataset [cardinality: 6.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$20, $$d] <- test.ColumnDataset [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.201.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.201.plan
index a768c38..26874d9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.201.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.201.plan
@@ -31,7 +31,7 @@
-- STREAM_PROJECT |PARTITIONED|
exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- left outer join (not(if-missing-or-null(neq($$21, $#1), false))) [cardinality: 2.1, op-cost: 6.0, total-cost: 17.0]
+ left outer join (not(if-missing-or-null(neq($$21, $#1), false))) [cardinality: 6.6, op-cost: 12.6, total-cost: 29.1]
-- NESTED_LOOP |PARTITIONED|
exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.301.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.301.plan
index 9ed9fc9..e115d34 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.301.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/filter/not-in_every/not-in_every.301.plan
@@ -1,20 +1,20 @@
-distribute result [$$d] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$d] [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ project ([$$d]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- SORT_MERGE_EXCHANGE [$$28(ASC) ] |PARTITIONED|
- order (ASC, $$28) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$28) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STABLE_SORT [$$28(ASC)] |PARTITIONED|
- exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$d, $$28]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ project ([$$d, $$28]) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
- select ($$26) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+ select ($$26) [cardinality: 2.1, op-cost: 0.0, total-cost: 6.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$28, $$d, $$26]) [cardinality: 6.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$28, $$d, $$26]) [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- STREAM_PROJECT |PARTITIONED|
subplan {
aggregate [$$26] <- [empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -25,13 +25,13 @@
-- UNNEST |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 6.0, op-cost: 0.0, total-cost: 2.1]
+ } [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- SUBPLAN |PARTITIONED|
- assign [$$29] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$29] <- [$$d.getField("array")] [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 6.0, op-cost: 0.0, total-cost: 6.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$28, $$d] <- test.ColumnDataset [cardinality: 6.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$28, $$d] <- test.ColumnDataset [cardinality: 6.0, op-cost: 6.0, total-cost: 6.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.004.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.004.plan
index afa9eea..8bb276d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.004.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.004.plan
@@ -1,26 +1,26 @@
-distribute result [$$18] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$18] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$18]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$18]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$18] <- [{"display_url": $$22}] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$18] <- [{"display_url": $$22}] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- project ([$$22]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$22]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SORT_MERGE_EXCHANGE [$$20(ASC) ] |PARTITIONED|
- order (ASC, $$20) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$20) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$20(ASC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$22, $$20]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$22, $$20]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$22] <- [get-item($$p.getField("entities").getField("urls"), 0).getField("display_url")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$22] <- [get-item($$p.getField("entities").getField("urls"), 0).getField("display_url")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$20, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$20, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.006.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.006.plan
index 342dfc1..954ac47 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.006.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.006.plan
@@ -20,13 +20,13 @@
-- ASSIGN |PARTITIONED|
select (not(is-missing($$24))) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_SELECT |PARTITIONED|
- project ([$$25, $$24]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$25, $$24]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$24] <- [$$p.getField("entities").getField("urls")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$24] <- [$$p.getField("entities").getField("urls")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$25, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$25, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.008.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.008.plan
index 40c755a..4ae4d46 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.008.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.008.plan
@@ -1,30 +1,30 @@
-distribute result [$$28] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$28] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$28]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$28]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$28] <- [{"display_url": $$urls.getField("display_url")}] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$28] <- [{"display_url": $$urls.getField("display_url")}] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- project ([$$urls]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$urls]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SORT_MERGE_EXCHANGE [$$30(ASC) ] |PARTITIONED|
- order (ASC, $$30) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$30) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$30(ASC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$urls, $$30]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$urls, $$30]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$urls <- scan-collection($$31) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ unnest $$urls <- scan-collection($$31) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- UNNEST |PARTITIONED|
- project ([$$30, $$31]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$30, $$31]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$31] <- [$$p.getField("entities").getField("urls")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$31] <- [$$p.getField("entities").getField("urls")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$30, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$30, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.010.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.010.plan
index d0bf0f0..e50e0db 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.010.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.010.plan
@@ -10,7 +10,7 @@
-- AGGREGATE |PARTITIONED|
select ($$42) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_SELECT |PARTITIONED|
- project ([$$42]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$42]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
subplan {
aggregate [$$42] <- [empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -23,17 +23,17 @@
-- UNNEST |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ } [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SUBPLAN |PARTITIONED|
- project ([$$51]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$51]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$51] <- [$$p.getField("entities").getField("urls")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$51] <- [$$p.getField("entities").getField("urls")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- project ([$$p]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$p]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$49, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$49, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.012.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.012.plan
index 3157c17..4832473 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.012.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/array-access-pushdown/array-access-pushdown.012.plan
@@ -1,26 +1,26 @@
-distribute result [$$19] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$19] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$19]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$19]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$19] <- [get-item(get-item(get-item($$25.getField("coordinates"), 0), 0), 0)] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$19] <- [get-item(get-item(get-item($$25.getField("coordinates"), 0), 0), 0)] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- project ([$$25]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$25]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SORT_MERGE_EXCHANGE [$$21(ASC) ] |PARTITIONED|
- order (ASC, $$21) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$21) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$21(ASC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$25, $$21]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$25, $$21]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$25] <- [$$p.getField("place").getField("bounding_box")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$25] <- [$$p.getField("place").getField("bounding_box")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$21, $$p] <- test.ColumnDataset project ({place:{bounding_box:{coordinates:[[[any]]]}}}) [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$21, $$p] <- test.ColumnDataset project ({place:{bounding_box:{coordinates:[[[any]]]}}}) [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.008.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.008.plan
index acf9d3b..653d2bb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.008.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.008.plan
@@ -1,44 +1,50 @@
-distribute result [$$31] [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+distribute result [$$31] [cardinality: 8.0, op-cost: 0.0, total-cost: 45.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 45.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$31]) [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ project ([$$31]) [cardinality: 8.0, op-cost: 0.0, total-cost: 45.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$31] <- [{"age": $$38, "name": $$39}] [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ assign [$$31] <- [{"age": $$38, "name": $$39}] [cardinality: 8.0, op-cost: 0.0, total-cost: 45.0]
-- ASSIGN |PARTITIONED|
- project ([$$38, $$39]) [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ project ([$$38, $$39]) [cardinality: 8.0, op-cost: 0.0, total-cost: 45.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 45.0]
-- SORT_MERGE_EXCHANGE [$$34(ASC) ] |PARTITIONED|
- order (ASC, $$34) [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ order (ASC, $$34) [cardinality: 8.0, op-cost: 0.0, total-cost: 45.0]
-- STABLE_SORT [$$34(ASC)] |PARTITIONED|
- exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 45.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$38, $$39, $$34]) [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ project ([$$38, $$39, $$34]) [cardinality: 8.0, op-cost: 0.0, total-cost: 45.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$39] <- [$$p2.getField("name")] [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
- -- ASSIGN |PARTITIONED|
- project ([$$38, $$34, $$p2]) [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
- -- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$34, $$p2] <- index-search("ColumnDataset3", 0, "test", "ColumnDataset3", true, true, 1, $$33, 1, $$33, true, true, true) project ({name:any}) [cardinality: 8.0, op-cost: 8.0, total-cost: 8.0]
- -- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$33) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- STABLE_SORT [$$33(ASC)] |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$33] |PARTITIONED|
- project ([$$33, $$38]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$38] <- [$$p1.getField("age")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ASSIGN |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$33, $$p1] <- test.ColumnDataset1 project ({age:any}) [cardinality: 7.0, op-cost: 7.0, total-cost: 7.0]
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ exchange [cardinality: 8.0, op-cost: 0.0, total-cost: 45.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ join (eq($$33, $$34)) [cardinality: 8.0, op-cost: 15.0, total-cost: 45.0]
+ -- HYBRID_HASH_JOIN [$$34][$$33] |PARTITIONED|
+ exchange [cardinality: 8.0, op-cost: 8.0, total-cost: 16.0]
+ -- HASH_PARTITION_EXCHANGE [$$34] |PARTITIONED|
+ project ([$$39, $$34]) [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ -- STREAM_PROJECT |PARTITIONED|
+ assign [$$39] <- [$$p2.getField("name")] [cardinality: 8.0, op-cost: 0.0, total-cost: 8.0]
+ -- ASSIGN |PARTITIONED|
+ exchange [cardinality: 8.0, op-cost: 8.0, total-cost: 16.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ data-scan []<-[$$34, $$p2] <- test.ColumnDataset3 project ({name:any}) [cardinality: 8.0, op-cost: 8.0, total-cost: 8.0]
+ -- DATASOURCE_SCAN |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ exchange [cardinality: 7.0, op-cost: 7.0, total-cost: 14.0]
+ -- HASH_PARTITION_EXCHANGE [$$33] |PARTITIONED|
+ project ([$$38, $$33]) [cardinality: 7.0, op-cost: 0.0, total-cost: 7.0]
+ -- STREAM_PROJECT |PARTITIONED|
+ assign [$$38] <- [$$p1.getField("age")] [cardinality: 7.0, op-cost: 0.0, total-cost: 7.0]
+ -- ASSIGN |PARTITIONED|
+ exchange [cardinality: 7.0, op-cost: 7.0, total-cost: 14.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ data-scan []<-[$$33, $$p1] <- test.ColumnDataset1 project ({age:any}) [cardinality: 7.0, op-cost: 7.0, total-cost: 7.0]
+ -- DATASOURCE_SCAN |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.010.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.010.plan
index 6b9b1d8..c89f877 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.010.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.010.plan
@@ -1,24 +1,24 @@
-distribute result [$$18] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$18] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$18]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$18]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$18] <- [{"id": $$20.getField("id"), "name": $$20.getField("name")}] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$18] <- [{"id": $$20.getField("id"), "name": $$20.getField("name")}] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- project ([$$20]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$20]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$20] <- [$$p.getField("user")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$20] <- [$$p.getField("user")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- project ([$$p]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$p]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SORT_MERGE_EXCHANGE [$$21(ASC) ] |PARTITIONED|
- order (ASC, $$21) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$21) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$21(ASC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$21, $$p] <- test.ColumnDataset4 project ({user:{name:any,id:any}}) [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$21, $$p] <- test.ColumnDataset4 project ({user:{name:any,id:any}}) [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.012.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.012.plan
index 92b7106..c4b9b3b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.012.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.012.plan
@@ -1,16 +1,16 @@
-distribute result [$$34] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$34] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- aggregate [$$34] <- [agg-sql-sum($$35)] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ aggregate [$$34] <- [agg-sql-sum($$35)] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- AGGREGATE |UNPARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- aggregate [$$35] <- [agg-sql-count(1)] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ aggregate [$$35] <- [agg-sql-count(1)] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- AGGREGATE |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$33, $$p] <- test.ColumnDataset4 project ({}) [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$33, $$p] <- test.ColumnDataset4 project ({}) [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.004.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.004.plan
index e957155..6168bb4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.004.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.004.plan
@@ -1,36 +1,40 @@
-distribute result [$$61] [cardinality: 2.21, op-cost: 0.0, total-cost: 12.6]
+distribute result [$$61] [cardinality: 2.1, op-cost: 0.0, total-cost: 12.6]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 2.21, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 12.6]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$61]) [cardinality: 2.21, op-cost: 0.0, total-cost: 12.6]
+ project ([$$61]) [cardinality: 2.1, op-cost: 0.0, total-cost: 12.6]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$61] <- [{"$1": $$66, "$2": $$67}] [cardinality: 2.21, op-cost: 0.0, total-cost: 12.6]
+ assign [$$61] <- [{"$1": $$66, "$2": $$67}] [cardinality: 2.1, op-cost: 0.0, total-cost: 12.6]
-- ASSIGN |UNPARTITIONED|
- aggregate [$$66, $$67] <- [agg-global-sql-sum($$70), agg-global-sql-sum($$71)] [cardinality: 2.21, op-cost: 0.0, total-cost: 12.6]
+ aggregate [$$66, $$67] <- [agg-global-sql-sum($$70), agg-global-sql-sum($$71)] [cardinality: 2.1, op-cost: 0.0, total-cost: 12.6]
-- AGGREGATE |UNPARTITIONED|
- exchange [cardinality: 2.21, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 12.6]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- aggregate [$$70, $$71] <- [agg-local-sql-sum($$54), agg-local-sql-sum($$59)] [cardinality: 2.21, op-cost: 0.0, total-cost: 12.6]
+ aggregate [$$70, $$71] <- [agg-local-sql-sum($$54), agg-local-sql-sum($$59)] [cardinality: 2.1, op-cost: 0.0, total-cost: 12.6]
-- AGGREGATE |PARTITIONED|
- project ([$$54, $$59]) [cardinality: 2.21, op-cost: 0.0, total-cost: 12.6]
+ project ([$$54, $$59]) [cardinality: 2.1, op-cost: 0.0, total-cost: 12.6]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$59, $$54] <- [object-length($$p2), object-length($$p1)] [cardinality: 2.21, op-cost: 0.0, total-cost: 12.6]
+ assign [$$59, $$54] <- [object-length($$p2), object-length($$p1)] [cardinality: 2.1, op-cost: 0.0, total-cost: 12.6]
-- ASSIGN |PARTITIONED|
- project ([$$p1, $$p2]) [cardinality: 2.21, op-cost: 0.0, total-cost: 12.6]
+ project ([$$p1, $$p2]) [cardinality: 2.1, op-cost: 0.0, total-cost: 12.6]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.21, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 12.6]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$63, $$p2] <- index-search("RowDataset", 0, "test", "RowDataset", true, true, 1, $$62, 1, $$62, true, true, true) [cardinality: 2.21, op-cost: 2.1, total-cost: 12.6]
- -- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$62) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- STABLE_SORT [$$62(ASC)] |PARTITIONED|
+ join (eq($$63, $$62)) [cardinality: 2.1, op-cost: 4.2, total-cost: 12.6]
+ -- HYBRID_HASH_JOIN [$$62][$$63] |PARTITIONED|
+ exchange [cardinality: 2.1, op-cost: 2.1, total-cost: 4.2]
+ -- HASH_PARTITION_EXCHANGE [$$62] |PARTITIONED|
+ data-scan []<-[$$62, $$p1] <- test.ColumnDataset [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
+ -- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$62] |PARTITIONED|
- data-scan []<-[$$62, $$p1] <- test.ColumnDataset [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ exchange [cardinality: 2.1, op-cost: 2.1, total-cost: 4.2]
+ -- HASH_PARTITION_EXCHANGE [$$63] |PARTITIONED|
+ data-scan []<-[$$63, $$p2] <- test.RowDataset [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
+ -- DATASOURCE_SCAN |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.006.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.006.plan
index ab6b6cb..4cb5569 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.006.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.006.plan
@@ -20,9 +20,9 @@
-- HASH_PARTITION_EXCHANGE [$$p1] |PARTITIONED|
select (neq($$16, "0")) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_SELECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$16, $$p1] <- test.ColumnDataset [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$16, $$p1] <- test.ColumnDataset [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.008.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.008.plan
index 6ededae..a450f96 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.008.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.008.plan
@@ -28,23 +28,23 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq(lowercase($$71), "string")) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_SELECT |PARTITIONED|
- project ([$$75, $$71]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$75, $$71]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$71] <- [$$ht.getField("display_url")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$71] <- [$$ht.getField("display_url")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- unnest $$ht <- scan-collection($$75) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ unnest $$ht <- scan-collection($$75) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- UNNEST |PARTITIONED|
- project ([$$75]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$75]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$75] <- [$$p1.getField("entities").getField("urls")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$75] <- [$$p1.getField("entities").getField("urls")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- project ([$$p1]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$p1]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
select (neq($$72, "0")) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$72, $$p1] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) filter on: eq(lowercase(scan-collection($$p1.getField("entities").getField("urls")).getField("display_url")), "string") [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$72, $$p1] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) filter on: eq(lowercase(scan-collection($$p1.getField("entities").getField("urls")).getField("display_url")), "string") [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.010.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.010.plan
index 402e741..e57d660 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.010.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.010.plan
@@ -28,25 +28,25 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq(lowercase($$70), "string")) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_SELECT |PARTITIONED|
- project ([$$75, $$70]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$75, $$70]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$75, $$70] <- [$$ht.getField("indices"), $$ht.getField("display_url")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$75, $$70] <- [$$ht.getField("indices"), $$ht.getField("display_url")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- project ([$$ht]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$ht]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$ht <- scan-collection($$74) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ unnest $$ht <- scan-collection($$74) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- UNNEST |PARTITIONED|
- project ([$$74]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$74]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$74] <- [$$p1.getField("entities").getField("urls")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$74] <- [$$p1.getField("entities").getField("urls")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- project ([$$p1]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$p1]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
select (neq($$71, "0")) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$71, $$p1] <- test.ColumnDataset project ({entities:{urls:[{display_url:any,indices:any}]}}) filter on: eq(lowercase(scan-collection($$p1.getField("entities").getField("urls")).getField("display_url")), "string") [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$71, $$p1] <- test.ColumnDataset project ({entities:{urls:[{display_url:any,indices:any}]}}) filter on: eq(lowercase(scan-collection($$p1.getField("entities").getField("urls")).getField("display_url")), "string") [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.012.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.012.plan
index 16f1d72..4d0c38a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.012.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.012.plan
@@ -20,13 +20,13 @@
-- ASSIGN |PARTITIONED|
select (eq(sql-count($$24), 1)) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_SELECT |PARTITIONED|
- project ([$$25, $$24]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$25, $$24]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$24] <- [$$p.getField("entities").getField("urls")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$24] <- [$$p.getField("entities").getField("urls")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$25, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$25, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.014.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.014.plan
index 6db5e85..a207f43 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.014.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/other-pushdowns/other-pushdowns.014.plan
@@ -1,42 +1,42 @@
-distribute result [$$101] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$101] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$101]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$101]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$101] <- [{"uname": $$uname, "cnt": $$105}] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$101] <- [{"uname": $$uname, "cnt": $$105}] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SORT_MERGE_EXCHANGE [$$105(DESC), $$uname(ASC) ] |PARTITIONED|
- order (DESC, $$105) (ASC, $$uname) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (DESC, $$105) (ASC, $$uname) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$105(DESC), $$uname(ASC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
group by ([$$uname := $$116]) decor ([]) {
aggregate [$$105] <- [agg-sql-sum($$115)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- AGGREGATE |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ } [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SORT_GROUP_BY[$$116] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- HASH_PARTITION_EXCHANGE [$$116] |PARTITIONED|
group by ([$$116 := $$102]) decor ([]) {
aggregate [$$115] <- [agg-sql-count(1)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- AGGREGATE |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ } [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SORT_GROUP_BY[$$102] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$102]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$102]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
select ($$92) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$92, $$102]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$92, $$102]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
group by ([$$114 := $$112]) decor ([$$102]) {
aggregate [$$92] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -45,41 +45,41 @@
-- STREAM_SELECT |LOCAL|
nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_TUPLE_SOURCE |LOCAL|
- } [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ } [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- PRE_CLUSTERED_GROUP_BY[$$112] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$112) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$112) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$112(ASC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- HASH_PARTITION_EXCHANGE [$$112] |PARTITIONED|
- project ([$$102, $$113, $$112]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$102, $$113, $$112]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- left outer join (eq($$106, $$88)) [cardinality: 2.21, op-cost: 4.2, total-cost: 12.6]
+ left outer join (eq($$106, $$88)) [cardinality: 2.1, op-cost: 4.2, total-cost: 12.6]
-- HYBRID_HASH_JOIN [$$106][$$88] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- HASH_PARTITION_EXCHANGE [$$106] |PARTITIONED|
- running-aggregate [$$112] <- [create-query-uid()] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ running-aggregate [$$112] <- [create-query-uid()] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- RUNNING_AGGREGATE |PARTITIONED|
- project ([$$102, $$106]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$102, $$106]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$106] <- [$$ht1.getField("display_url")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$106] <- [$$ht1.getField("display_url")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- project ([$$102, $$ht1]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$102, $$ht1]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- unnest $$ht1 <- scan-collection($$107) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ unnest $$ht1 <- scan-collection($$107) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- UNNEST |PARTITIONED|
- project ([$$107, $$102]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$107, $$102]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$107, $$102] <- [$$p1.getField("entities").getField("urls"), $$p1.getField("user").getField("name")] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$107, $$102] <- [$$p1.getField("entities").getField("urls"), $$p1.getField("user").getField("name")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- project ([$$p1]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$p1]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$103, $$p1] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]},user:{name:any}}) [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$103, $$p1] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]},user:{name:any}}) [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
@@ -103,7 +103,7 @@
-- STREAM_PROJECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$104, $$p2] <- test.RowDataset [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$104, $$p2] <- test.RowDataset [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan
index 0e78a96..5bf8d6d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan
@@ -1,66 +1,64 @@
-distribute result [$$51] [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+distribute result [$$51] [cardinality: 150.0, op-cost: 0.0, total-cost: 605.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 605.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$51]) [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ project ([$$51]) [cardinality: 150.0, op-cost: 0.0, total-cost: 605.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$51] <- [{"n_nationkey": $$58, "s_nationkey": $$56, "c_nationkey": $$55}] [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ assign [$$51] <- [{"n_nationkey": $$58, "s_nationkey": $$56, "c_nationkey": $$55}] [cardinality: 150.0, op-cost: 0.0, total-cost: 605.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 605.0]
-- SORT_MERGE_EXCHANGE [$$58(ASC), $$56(ASC), $$55(ASC) ] |PARTITIONED|
- order (ASC, $$58) (ASC, $$56) (ASC, $$55) [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ order (ASC, $$58) (ASC, $$56) (ASC, $$55) [cardinality: 150.0, op-cost: 0.0, total-cost: 605.0]
-- STABLE_SORT [$$58(ASC), $$56(ASC), $$55(ASC)] |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 605.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$58, $$56, $$55]) [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
- -- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (and(eq($$55, $$58), eq($$56, $$66))) [cardinality: 150.0, op-cost: 175.0, total-cost: 560.0]
- -- HYBRID_HASH_JOIN [$$55, $$66][$$58, $$56] |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 150.0, total-cost: 300.0]
- -- HASH_PARTITION_EXCHANGE [$$55, $$66] |PARTITIONED|
- assign [$$66] <- [$$55] [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
- -- ASSIGN |PARTITIONED|
- project ([$$55]) [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$55] <- [$$c.getField(3)] [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
- -- ASSIGN |PARTITIONED|
- project ([$$c]) [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
- -- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 150.0, total-cost: 300.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$60, $$c] <- tpch.Customer [cardinality: 150.0, op-cost: 150.0, total-cost: 150.0]
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 85.0]
- -- HASH_PARTITION_EXCHANGE [$$58, $$56] |PARTITIONED|
- project ([$$56, $$58]) [cardinality: 25.0, op-cost: 0.0, total-cost: 60.0]
+ join (eq($$55, $$58)) [cardinality: 150.0, op-cost: 175.0, total-cost: 605.0]
+ -- HYBRID_HASH_JOIN [$$55][$$58] |PARTITIONED|
+ exchange [cardinality: 150.0, op-cost: 150.0, total-cost: 300.0]
+ -- HASH_PARTITION_EXCHANGE [$$55] |PARTITIONED|
+ project ([$$55]) [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
+ -- STREAM_PROJECT |PARTITIONED|
+ assign [$$55] <- [$$c.getField(3)] [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$c]) [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 85.0]
+ exchange [cardinality: 150.0, op-cost: 150.0, total-cost: 300.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$58, $$n] <- index-search("Nation", 0, "tpch", "Nation", true, true, 1, $$56, 1, $$56, true, true, true) [cardinality: 25.0, op-cost: 10.0, total-cost: 60.0]
- -- BTREE_SEARCH |PARTITIONED|
+ data-scan []<-[$$60, $$c] <- tpch.Customer [cardinality: 150.0, op-cost: 150.0, total-cost: 150.0]
+ -- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$56) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- STABLE_SORT [$$56(ASC)] |PARTITIONED|
+ empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 130.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ join (eq($$56, $$58)) [cardinality: 25.0, op-cost: 35.0, total-cost: 105.0]
+ -- HYBRID_HASH_JOIN [$$58][$$56] |PARTITIONED|
+ exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 50.0]
+ -- HASH_PARTITION_EXCHANGE [$$58] |PARTITIONED|
+ project ([$$58]) [cardinality: 25.0, op-cost: 0.0, total-cost: 25.0]
+ -- STREAM_PROJECT |PARTITIONED|
+ exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 50.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ data-scan []<-[$$58, $$n] <- tpch.Nation [cardinality: 25.0, op-cost: 25.0, total-cost: 25.0]
+ -- DATASOURCE_SCAN |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ exchange [cardinality: 10.0, op-cost: 10.0, total-cost: 20.0]
+ -- HASH_PARTITION_EXCHANGE [$$56] |PARTITIONED|
+ project ([$$56]) [cardinality: 10.0, op-cost: 0.0, total-cost: 10.0]
+ -- STREAM_PROJECT |PARTITIONED|
+ assign [$$56] <- [$$s.getField(3)] [cardinality: 10.0, op-cost: 0.0, total-cost: 10.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$s]) [cardinality: 10.0, op-cost: 0.0, total-cost: 10.0]
+ -- STREAM_PROJECT |PARTITIONED|
+ exchange [cardinality: 10.0, op-cost: 10.0, total-cost: 20.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ data-scan []<-[$$59, $$s] <- tpch.Supplier [cardinality: 10.0, op-cost: 10.0, total-cost: 10.0]
+ -- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$56] |PARTITIONED|
- project ([$$56]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$56] <- [$$s.getField(3)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ASSIGN |PARTITIONED|
- project ([$$s]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$59, $$s] <- tpch.Supplier [cardinality: 10.0, op-cost: 10.0, total-cost: 10.0]
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.10.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.10.plan
index b4a0891..e015463 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.10.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.10.plan
@@ -1,66 +1,64 @@
-distribute result [$$51] [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+distribute result [$$51] [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$51]) [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ project ([$$51]) [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$51] <- [{"n_nationkey": $$58, "s_nationkey": $$56, "c_nationkey": $$55}] [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ assign [$$51] <- [{"n_nationkey": $$58, "s_nationkey": $$56, "c_nationkey": $$55}] [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- SORT_MERGE_EXCHANGE [$$58(ASC), $$56(ASC), $$55(ASC) ] |PARTITIONED|
- order (ASC, $$58) (ASC, $$56) (ASC, $$55) [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ order (ASC, $$58) (ASC, $$56) (ASC, $$55) [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- STABLE_SORT [$$58(ASC), $$56(ASC), $$55(ASC)] |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$58, $$56, $$55]) [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
- -- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (and(eq($$55, $$58), eq($$56, $$66))) [cardinality: 150.0, op-cost: 225.0, total-cost: 500.0]
- -- HYBRID_HASH_JOIN [$$55, $$66][$$58, $$56] |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
- -- RANDOM_PARTITION_EXCHANGE |PARTITIONED|
- assign [$$66] <- [$$55] [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
- -- ASSIGN |PARTITIONED|
- project ([$$55]) [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$55] <- [$$c.getField(3)] [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
- -- ASSIGN |PARTITIONED|
- project ([$$c]) [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
- -- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$60, $$c] <- tpch.Customer [cardinality: 150.0, op-cost: 150.0, total-cost: 150.0]
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange [cardinality: 25.0, op-cost: 75.0, total-cost: 125.0]
- -- BROADCAST_EXCHANGE |PARTITIONED|
- project ([$$56, $$58]) [cardinality: 25.0, op-cost: 0.0, total-cost: 50.0]
+ join (eq($$55, $$58)) [cardinality: 150.0, op-cost: 225.0, total-cost: 555.0]
+ -- HYBRID_HASH_JOIN [$$55][$$58] |PARTITIONED|
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
+ -- RANDOM_PARTITION_EXCHANGE |PARTITIONED|
+ project ([$$55]) [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
+ -- STREAM_PROJECT |PARTITIONED|
+ assign [$$55] <- [$$c.getField(3)] [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$c]) [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 25.0, op-cost: 75.0, total-cost: 125.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$58, $$n] <- index-search("Nation", 0, "tpch", "Nation", true, true, 1, $$56, 1, $$56, true, true, true) [cardinality: 25.0, op-cost: 10.0, total-cost: 50.0]
- -- BTREE_SEARCH |PARTITIONED|
+ data-scan []<-[$$60, $$c] <- tpch.Customer [cardinality: 150.0, op-cost: 150.0, total-cost: 150.0]
+ -- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$56) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- STABLE_SORT [$$56(ASC)] |PARTITIONED|
+ empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ exchange [cardinality: 25.0, op-cost: 75.0, total-cost: 180.0]
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ join (eq($$56, $$58)) [cardinality: 25.0, op-cost: 35.0, total-cost: 105.0]
+ -- HYBRID_HASH_JOIN [$$58][$$56] |PARTITIONED|
+ exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 50.0]
+ -- HASH_PARTITION_EXCHANGE [$$58] |PARTITIONED|
+ project ([$$58]) [cardinality: 25.0, op-cost: 0.0, total-cost: 25.0]
+ -- STREAM_PROJECT |PARTITIONED|
+ exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 50.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ data-scan []<-[$$58, $$n] <- tpch.Nation [cardinality: 25.0, op-cost: 25.0, total-cost: 25.0]
+ -- DATASOURCE_SCAN |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ exchange [cardinality: 10.0, op-cost: 10.0, total-cost: 20.0]
+ -- HASH_PARTITION_EXCHANGE [$$56] |PARTITIONED|
+ project ([$$56]) [cardinality: 10.0, op-cost: 0.0, total-cost: 10.0]
+ -- STREAM_PROJECT |PARTITIONED|
+ assign [$$56] <- [$$s.getField(3)] [cardinality: 10.0, op-cost: 0.0, total-cost: 10.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$s]) [cardinality: 10.0, op-cost: 0.0, total-cost: 10.0]
+ -- STREAM_PROJECT |PARTITIONED|
+ exchange [cardinality: 10.0, op-cost: 10.0, total-cost: 20.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ data-scan []<-[$$59, $$s] <- tpch.Supplier [cardinality: 10.0, op-cost: 10.0, total-cost: 10.0]
+ -- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$56] |PARTITIONED|
- project ([$$56]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$56] <- [$$s.getField(3)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ASSIGN |PARTITIONED|
- project ([$$s]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$59, $$s] <- tpch.Supplier [cardinality: 10.0, op-cost: 10.0, total-cost: 10.0]
- -- DATASOURCE_SCAN |PARTITIONED|
- exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan
index ea91cd5..71a6d82 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan
@@ -1,22 +1,22 @@
-distribute result [$$51] [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+distribute result [$$51] [cardinality: 150.0, op-cost: 0.0, total-cost: 615.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 615.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$51]) [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ project ([$$51]) [cardinality: 150.0, op-cost: 0.0, total-cost: 615.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$51] <- [{"n_nationkey": $$59, "s_nationkey": $$56, "c_nationkey": $$55}] [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ assign [$$51] <- [{"n_nationkey": $$59, "s_nationkey": $$56, "c_nationkey": $$55}] [cardinality: 150.0, op-cost: 0.0, total-cost: 615.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 615.0]
-- SORT_MERGE_EXCHANGE [$$59(ASC), $$56(ASC), $$55(ASC) ] |PARTITIONED|
- order (ASC, $$59) (ASC, $$56) (ASC, $$55) [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ order (ASC, $$59) (ASC, $$56) (ASC, $$55) [cardinality: 150.0, op-cost: 0.0, total-cost: 615.0]
-- STABLE_SORT [$$59(ASC), $$56(ASC), $$55(ASC)] |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 615.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$59, $$56, $$55]) [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ project ([$$59, $$56, $$55]) [cardinality: 150.0, op-cost: 0.0, total-cost: 615.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 560.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 615.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (and(eq($$55, $$59), eq($$56, $$66))) [cardinality: 150.0, op-cost: 175.0, total-cost: 560.0]
+ join (and(eq($$55, $$59), eq($$56, $$66))) [cardinality: 150.0, op-cost: 175.0, total-cost: 615.0]
-- HYBRID_HASH_JOIN [$$55, $$66][$$59, $$56] |PARTITIONED|
exchange [cardinality: 150.0, op-cost: 150.0, total-cost: 300.0]
-- HASH_PARTITION_EXCHANGE [$$55, $$66] |PARTITIONED|
@@ -36,13 +36,13 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 85.0]
+ exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 140.0]
-- HASH_PARTITION_EXCHANGE [$$59, $$56] |PARTITIONED|
- project ([$$56, $$59]) [cardinality: 25.0, op-cost: 0.0, total-cost: 60.0]
+ project ([$$56, $$59]) [cardinality: 25.0, op-cost: 0.0, total-cost: 115.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 85.0]
+ exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 140.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$59, $$n] <- index-search("Nation", 0, "tpch", "Nation", true, true, 1, $$56, 1, $$56, true, true, true) [cardinality: 25.0, op-cost: 10.0, total-cost: 60.0]
+ unnest-map [$$59, $$n] <- index-search("Nation", 0, "tpch", "Nation", true, true, 1, $$56, 1, $$56, true, true, true) [cardinality: 25.0, op-cost: 65.0, total-cost: 115.0]
-- BTREE_SEARCH |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.16.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.16.plan
index 2700e8a..133262b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.16.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.16.plan
@@ -1,22 +1,22 @@
-distribute result [$$51] [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+distribute result [$$51] [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$51]) [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ project ([$$51]) [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$51] <- [{"n_nationkey": $$59, "s_nationkey": $$56, "c_nationkey": $$55}] [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ assign [$$51] <- [{"n_nationkey": $$59, "s_nationkey": $$56, "c_nationkey": $$55}] [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- SORT_MERGE_EXCHANGE [$$59(ASC), $$56(ASC), $$55(ASC) ] |PARTITIONED|
- order (ASC, $$59) (ASC, $$56) (ASC, $$55) [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ order (ASC, $$59) (ASC, $$56) (ASC, $$55) [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- STABLE_SORT [$$59(ASC), $$56(ASC), $$55(ASC)] |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$59, $$56, $$55]) [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ project ([$$59, $$56, $$55]) [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 500.0]
+ exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 555.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (and(eq($$55, $$59), eq($$56, $$66))) [cardinality: 150.0, op-cost: 225.0, total-cost: 500.0]
+ join (and(eq($$55, $$59), eq($$56, $$66))) [cardinality: 150.0, op-cost: 225.0, total-cost: 555.0]
-- HYBRID_HASH_JOIN [$$55, $$66][$$59, $$56] |PARTITIONED|
exchange [cardinality: 150.0, op-cost: 0.0, total-cost: 150.0]
-- RANDOM_PARTITION_EXCHANGE |PARTITIONED|
@@ -36,13 +36,13 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange [cardinality: 25.0, op-cost: 75.0, total-cost: 125.0]
+ exchange [cardinality: 25.0, op-cost: 75.0, total-cost: 180.0]
-- BROADCAST_EXCHANGE |PARTITIONED|
- project ([$$56, $$59]) [cardinality: 25.0, op-cost: 0.0, total-cost: 50.0]
+ project ([$$56, $$59]) [cardinality: 25.0, op-cost: 0.0, total-cost: 105.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 25.0, op-cost: 75.0, total-cost: 125.0]
+ exchange [cardinality: 25.0, op-cost: 75.0, total-cost: 180.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$59, $$n] <- index-search("Nation", 0, "tpch", "Nation", true, true, 1, $$56, 1, $$56, true, true, true) [cardinality: 25.0, op-cost: 10.0, total-cost: 50.0]
+ unnest-map [$$59, $$n] <- index-search("Nation", 0, "tpch", "Nation", true, true, 1, $$56, 1, $$56, true, true, true) [cardinality: 25.0, op-cost: 65.0, total-cost: 105.0]
-- BTREE_SEARCH |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.007.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.007.plan
index a4bd07b..4db64df 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.007.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.007.plan
@@ -1,60 +1,60 @@
-distribute result [$$52] [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+distribute result [$$52] [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$52]) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ project ([$$52]) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$52] <- [{"t1_id": $$53, "t2_id": $$54}] [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ assign [$$52] <- [{"t1_id": $$53, "t2_id": $$54}] [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- SORT_MERGE_EXCHANGE [$$53(ASC), $$54(ASC) ] |PARTITIONED|
- order (ASC, $$53) (ASC, $$54) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ order (ASC, $$53) (ASC, $$54) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STABLE_SORT [$$53(ASC), $$54(ASC)] |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$53, $$54]) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ project ([$$53, $$54]) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STREAM_PROJECT |PARTITIONED|
- select ($$62) [cardinality: 3.15, op-cost: 2.1, total-cost: 12.6]
+ select ($$62) [cardinality: 3.0, op-cost: 11.4, total-cost: 21.9]
-- STREAM_SELECT |PARTITIONED|
- window-aggregate [$$62] <- [win-mark-first-missing-impl($$54)] partition [$$53] order (DESC, $$54) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ window-aggregate [$$62] <- [win-mark-first-missing-impl($$54)] partition [$$53] order (DESC, $$54) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- WINDOW_STREAM |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$53) (DESC, $$54) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$53) (DESC, $$54) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$53(ASC), $$54(DESC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- HASH_PARTITION_EXCHANGE [$$53] |PARTITIONED|
- project ([$$53, $$54]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$54]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
select (eq($$55, $$t2.getField("c_int32"))) retain-untrue ($$54 <- missing) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$53, $$55, $$54, $$t2]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55, $$54, $$t2]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
left-outer-unnest-map [$$54, $$t2] <- index-search("ds_inner_untyped", 0, "test", "ds_inner_untyped", true, false, 1, $$61, 1, $$61, true, true, true) [cardinality: 3.0, op-cost: 3.0, total-cost: 3.0]
-- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$61) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$61) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$61(ASC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$53, $$55, $$61]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55, $$61]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
left-outer-unnest-map [$$60, $$61] <- index-search("idx_c_int32", 0, "test", "ds_inner_untyped", true, true, 1, $$55, 1, $$55, true, true, true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- BROADCAST_EXCHANGE |PARTITIONED|
- project ([$$53, $$55]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$55] <- [int32($$t1.getField("c_int32"))] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$55] <- [int32($$t1.getField("c_int32"))] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$53, $$t1] <- test.ds_outer_untyped [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$53, $$t1] <- test.ds_outer_untyped [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.008.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.008.plan
index 21db7f6..9f0651e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.008.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.008.plan
@@ -1,62 +1,62 @@
-distribute result [$$52] [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+distribute result [$$52] [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$52]) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ project ([$$52]) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$52] <- [{"t1_id": $$73, "t2_id": $$54}] [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ assign [$$52] <- [{"t1_id": $$73, "t2_id": $$54}] [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- SORT_MERGE_EXCHANGE [$$73(ASC), $$54(ASC) ] |PARTITIONED|
- order (ASC, $$73) (ASC, $$54) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ order (ASC, $$73) (ASC, $$54) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STABLE_SORT [$$73(ASC), $$54(ASC)] |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$73, $$54]) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ project ([$$73, $$54]) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STREAM_PROJECT |PARTITIONED|
- select ($$74) [cardinality: 3.15, op-cost: 2.1, total-cost: 12.6]
+ select ($$74) [cardinality: 3.0, op-cost: 11.4, total-cost: 21.9]
-- STREAM_SELECT |PARTITIONED|
- window-aggregate [$$74] <- [win-mark-first-missing-impl($$54)] partition [$$73] order (DESC, $$54) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ window-aggregate [$$74] <- [win-mark-first-missing-impl($$54)] partition [$$73] order (DESC, $$54) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- WINDOW_STREAM |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$73) (DESC, $$54) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$73) (DESC, $$54) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$73(ASC), $$54(DESC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- HASH_PARTITION_EXCHANGE [$$73] |PARTITIONED|
- union ($$70, $$61, $$54) ($$53, $$53, $$73) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ union ($$70, $$61, $$54) ($$53, $$53, $$73) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- UNION_ALL |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$70, $$53]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$70, $$53]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
select (eq($$55, $$71.getField(1))) retain-untrue ($$70 <- missing) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
left-outer-unnest-map [$$70, $$71] <- index-search("ds_inner_typed", 0, "test", "ds_inner_typed", true, false, 1, $$61, 1, $$61, true, true, true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$53, $$55, $$61]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55, $$61]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- split ($$62) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ split ($$62) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SPLIT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
left-outer-unnest-map [$$60, $$61, $$62] <- index-search("idx_c_int32", 0, "test", "ds_inner_typed", true, true, 1, $$55, 1, $$55, true, true, true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- BROADCAST_EXCHANGE |PARTITIONED|
- project ([$$53, $$55]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$55] <- [int32($$t1.getField("c_int32"))] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$55] <- [int32($$t1.getField("c_int32"))] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$53, $$t1] <- test.ds_outer_untyped [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$53, $$t1] <- test.ds_outer_untyped [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
@@ -72,21 +72,21 @@
-- STREAM_PROJECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- split ($$62) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ split ($$62) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SPLIT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
left-outer-unnest-map [$$60, $$61, $$62] <- index-search("idx_c_int32", 0, "test", "ds_inner_typed", true, true, 1, $$55, 1, $$55, true, true, true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- BROADCAST_EXCHANGE |PARTITIONED|
- project ([$$53, $$55]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$55] <- [int32($$t1.getField("c_int32"))] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$55] <- [int32($$t1.getField("c_int32"))] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$53, $$t1] <- test.ds_outer_untyped [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$53, $$t1] <- test.ds_outer_untyped [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.009.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.009.plan
index 33f5c67..51dccd4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.009.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.009.plan
@@ -1,60 +1,60 @@
-distribute result [$$52] [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+distribute result [$$52] [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$52]) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ project ([$$52]) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$52] <- [{"t1_id": $$53, "t2_id": $$54}] [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ assign [$$52] <- [{"t1_id": $$53, "t2_id": $$54}] [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- SORT_MERGE_EXCHANGE [$$53(ASC), $$54(ASC) ] |PARTITIONED|
- order (ASC, $$53) (ASC, $$54) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ order (ASC, $$53) (ASC, $$54) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STABLE_SORT [$$53(ASC), $$54(ASC)] |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$53, $$54]) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ project ([$$53, $$54]) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STREAM_PROJECT |PARTITIONED|
- select ($$62) [cardinality: 3.15, op-cost: 2.1, total-cost: 12.6]
+ select ($$62) [cardinality: 3.0, op-cost: 11.4, total-cost: 21.9]
-- STREAM_SELECT |PARTITIONED|
- window-aggregate [$$62] <- [win-mark-first-missing-impl($$54)] partition [$$53] order (DESC, $$54) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ window-aggregate [$$62] <- [win-mark-first-missing-impl($$54)] partition [$$53] order (DESC, $$54) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- WINDOW_STREAM |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$53) (DESC, $$54) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$53) (DESC, $$54) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$53(ASC), $$54(DESC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- HASH_PARTITION_EXCHANGE [$$53] |PARTITIONED|
- project ([$$53, $$54]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$54]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
select (eq($$55, $$t2.getField("c_int32"))) retain-untrue ($$54 <- missing) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
- project ([$$53, $$55, $$54, $$t2]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55, $$54, $$t2]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
left-outer-unnest-map [$$54, $$t2] <- index-search("ds_inner_untyped", 0, "test", "ds_inner_untyped", true, false, 1, $$61, 1, $$61, true, true, true) [cardinality: 3.0, op-cost: 3.0, total-cost: 3.0]
-- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$61) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$61) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$61(ASC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$53, $$55, $$61]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55, $$61]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
left-outer-unnest-map [$$60, $$61] <- index-search("idx_c_int32", 0, "test", "ds_inner_untyped", true, true, 1, $$55, 1, $$55, true, true, true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- BROADCAST_EXCHANGE |PARTITIONED|
- project ([$$53, $$55]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$55] <- [int32($$t1.getField(1))] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$55] <- [int32($$t1.getField(1))] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$53, $$t1] <- test.ds_outer_typed [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$53, $$t1] <- test.ds_outer_typed [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.010.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.010.plan
index 66c4cf3..7ccdab5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.010.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.010.plan
@@ -1,62 +1,62 @@
-distribute result [$$52] [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+distribute result [$$52] [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- DISTRIBUTE_RESULT |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$52]) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ project ([$$52]) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$52] <- [{"t1_id": $$73, "t2_id": $$54}] [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ assign [$$52] <- [{"t1_id": $$73, "t2_id": $$54}] [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- SORT_MERGE_EXCHANGE [$$73(ASC), $$54(ASC) ] |PARTITIONED|
- order (ASC, $$73) (ASC, $$54) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ order (ASC, $$73) (ASC, $$54) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STABLE_SORT [$$73(ASC), $$54(ASC)] |PARTITIONED|
- exchange [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ exchange [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$73, $$54]) [cardinality: 3.15, op-cost: 0.0, total-cost: 12.6]
+ project ([$$73, $$54]) [cardinality: 3.0, op-cost: 0.0, total-cost: 21.9]
-- STREAM_PROJECT |PARTITIONED|
- select ($$74) [cardinality: 3.15, op-cost: 2.1, total-cost: 12.6]
+ select ($$74) [cardinality: 3.0, op-cost: 11.4, total-cost: 21.9]
-- STREAM_SELECT |PARTITIONED|
- window-aggregate [$$74] <- [win-mark-first-missing-impl($$54)] partition [$$73] order (DESC, $$54) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ window-aggregate [$$74] <- [win-mark-first-missing-impl($$54)] partition [$$73] order (DESC, $$54) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- WINDOW_STREAM |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$73) (DESC, $$54) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$73) (DESC, $$54) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STABLE_SORT [$$73(ASC), $$54(DESC)] |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- HASH_PARTITION_EXCHANGE [$$73] |PARTITIONED|
- union ($$70, $$61, $$54) ($$53, $$53, $$73) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ union ($$70, $$61, $$54) ($$53, $$53, $$73) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- UNION_ALL |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$70, $$53]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$70, $$53]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
select (eq($$55, $$71.getField(1))) retain-untrue ($$70 <- missing) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
left-outer-unnest-map [$$70, $$71] <- index-search("ds_inner_typed", 0, "test", "ds_inner_typed", true, false, 1, $$61, 1, $$61, true, true, true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$53, $$55, $$61]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55, $$61]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- split ($$62) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ split ($$62) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SPLIT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
left-outer-unnest-map [$$60, $$61, $$62] <- index-search("idx_c_int32", 0, "test", "ds_inner_typed", true, true, 1, $$55, 1, $$55, true, true, true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- BROADCAST_EXCHANGE |PARTITIONED|
- project ([$$53, $$55]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$55] <- [int32($$t1.getField(1))] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$55] <- [int32($$t1.getField(1))] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$53, $$t1] <- test.ds_outer_typed [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$53, $$t1] <- test.ds_outer_typed [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
@@ -72,21 +72,21 @@
-- STREAM_PROJECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- split ($$62) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ split ($$62) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- SPLIT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
left-outer-unnest-map [$$60, $$61, $$62] <- index-search("idx_c_int32", 0, "test", "ds_inner_typed", true, true, 1, $$55, 1, $$55, true, true, true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- BTREE_SEARCH |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- BROADCAST_EXCHANGE |PARTITIONED|
- project ([$$53, $$55]) [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$53, $$55]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$55] <- [int32($$t1.getField(1))] [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$55] <- [int32($$t1.getField(1))] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$53, $$t1] <- test.ds_outer_typed [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$53, $$t1] <- test.ds_outer_typed [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.3.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.3.plan
index 49f6ad2..38c5f61 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.3.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.3.plan
@@ -1,18 +1,18 @@
-distribute result [$$c] [cardinality: 6005.0, op-cost: 0.0, total-cost: 1152.42]
+distribute result [$$c] [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 1152.42]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 5 offset 5 [cardinality: 6005.0, op-cost: 0.0, total-cost: 1152.42]
+ limit 5 offset 5 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_LIMIT |UNPARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 1152.42]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- limit 10 [cardinality: 6005.0, op-cost: 0.0, total-cost: 1152.42]
+ limit 10 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_LIMIT |PARTITIONED|
- project ([$$c]) [cardinality: 6005.0, op-cost: 0.0, total-cost: 1152.42]
+ project ([$$c]) [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 1152.42]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$18, $$19, $$c] <- test.LineItem condition (and(lt($$c.getField(2), 150), lt($$c.getField(5), 10000))) limit 10 [cardinality: 6005.0, op-cost: 1152.42, total-cost: 1152.42]
+ data-scan []<-[$$18, $$19, $$c] <- test.LineItem condition (and(lt($$c.getField(2), 150), lt($$c.getField(5), 10000))) limit 10 [cardinality: 6005.0, op-cost: 6005.0, total-cost: 6005.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.5.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.5.plan
index 3b85e2a..a9d2b4f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.5.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup-select/push-limit-to-primary-lookup-select.5.plan
@@ -1,24 +1,24 @@
-distribute result [$$20] [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+distribute result [$$20] [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 5 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ limit 5 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_LIMIT |UNPARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- project ([$$20]) [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ project ([$$20]) [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$20] <- [{"shipdate": substring($$c.getField(10), 0, 4), "suppkey": gt($$21, 0)}] [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ assign [$$20] <- [{"shipdate": substring($$c.getField(10), 0, 4), "suppkey": gt($$21, 0)}] [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- ASSIGN |PARTITIONED|
- limit 5 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ limit 5 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_LIMIT |PARTITIONED|
- assign [$$21] <- [$$c.getField(2)] [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ assign [$$21] <- [$$c.getField(2)] [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- ASSIGN |PARTITIONED|
- project ([$$c]) [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ project ([$$c]) [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$22, $$23, $$c] <- test.LineItem condition (lt($$c.getField(2), 150)) limit 5 [cardinality: 6005.0, op-cost: 6010.65, total-cost: 6010.65]
+ data-scan []<-[$$22, $$23, $$c] <- test.LineItem condition (lt($$c.getField(2), 150)) limit 5 [cardinality: 6005.0, op-cost: 6005.0, total-cost: 6005.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.3.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.3.plan
index 96d3acf..f5fb51e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.3.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.3.plan
@@ -1,18 +1,18 @@
-distribute result [$$c] [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+distribute result [$$c] [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 5 offset 5 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ limit 5 offset 5 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_LIMIT |UNPARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- limit 10 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ limit 10 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_LIMIT |PARTITIONED|
- project ([$$c]) [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ project ([$$c]) [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$15, $$16, $$c] <- test.LineItem condition (lt($$c.getField(2), 150)) limit 10 [cardinality: 6005.0, op-cost: 6010.65, total-cost: 6010.65]
+ data-scan []<-[$$15, $$16, $$c] <- test.LineItem condition (lt($$c.getField(2), 150)) limit 10 [cardinality: 6005.0, op-cost: 6005.0, total-cost: 6005.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.5.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.5.plan
index 383e104..7aa0db8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.5.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-lookup/push-limit-to-primary-lookup.5.plan
@@ -1,18 +1,18 @@
-distribute result [$$c] [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+distribute result [$$c] [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 5 offset 5 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ limit 5 offset 5 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_LIMIT |UNPARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- limit 10 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ limit 10 [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_LIMIT |PARTITIONED|
- project ([$$c]) [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ project ([$$c]) [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6010.65]
+ exchange [cardinality: 6005.0, op-cost: 0.0, total-cost: 6005.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$17, $$18, $$c] <- test.LineItem condition (lt($$c.getField(2), 150)) limit 10 [cardinality: 6005.0, op-cost: 6010.65, total-cost: 6010.65]
+ data-scan []<-[$$17, $$18, $$c] <- test.LineItem condition (lt($$c.getField(2), 150)) limit 10 [cardinality: 6005.0, op-cost: 6005.0, total-cost: 6005.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.3.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.3.plan
index 7c2bdbe..6427067 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.3.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.3.plan
@@ -1,18 +1,18 @@
-distribute result [$$paper] [cardinality: 100.0, op-cost: 0.0, total-cost: 24.0]
+distribute result [$$paper] [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 24.0]
+ exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 5 offset 5 [cardinality: 100.0, op-cost: 0.0, total-cost: 24.0]
+ limit 5 offset 5 [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_LIMIT |UNPARTITIONED|
- exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 24.0]
+ exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- limit 10 [cardinality: 100.0, op-cost: 0.0, total-cost: 24.0]
+ limit 10 [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_LIMIT |PARTITIONED|
- project ([$$paper]) [cardinality: 100.0, op-cost: 0.0, total-cost: 24.0]
+ project ([$$paper]) [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 24.0]
+ exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$15, $$paper] <- test.DBLP1 condition (contains($$paper.getField(1), "kimL89")) limit 10 [cardinality: 100.0, op-cost: 24.0, total-cost: 24.0]
+ data-scan []<-[$$15, $$paper] <- test.DBLP1 condition (contains($$paper.getField(1), "kimL89")) limit 10 [cardinality: 100.0, op-cost: 100.0, total-cost: 100.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.5.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.5.plan
index fb2c1fd..afebd75 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.5.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.5.plan
@@ -1,25 +1,25 @@
-distribute result [$$37] [cardinality: 2.1, op-cost: 0.0, total-cost: 205.0]
+distribute result [$$37] [cardinality: 2.1, op-cost: 0.0, total-cost: 316.8]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 205.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 316.8]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 2 [cardinality: 2.1, op-cost: 0.0, total-cost: 205.0]
+ limit 2 [cardinality: 2.1, op-cost: 0.0, total-cost: 316.8]
-- STREAM_LIMIT |UNPARTITIONED|
- exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 205.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 316.8]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- project ([$$37]) [cardinality: 2.1, op-cost: 0.0, total-cost: 205.0]
+ project ([$$37]) [cardinality: 2.1, op-cost: 0.0, total-cost: 316.8]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$37] <- [{"dblpid": $$38}] [cardinality: 2.1, op-cost: 0.0, total-cost: 205.0]
+ assign [$$37] <- [{"dblpid": $$38}] [cardinality: 2.1, op-cost: 0.0, total-cost: 316.8]
-- ASSIGN |PARTITIONED|
- limit 2 [cardinality: 2.1, op-cost: 0.0, total-cost: 205.0]
+ limit 2 [cardinality: 2.1, op-cost: 0.0, total-cost: 316.8]
-- STREAM_LIMIT |PARTITIONED|
- project ([$$38]) [cardinality: 2.1, op-cost: 0.0, total-cost: 205.0]
+ project ([$$38]) [cardinality: 2.1, op-cost: 0.0, total-cost: 316.8]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 205.0]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 316.8]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- join (eq($$38, $$41)) [cardinality: 2.1, op-cost: 100.0, total-cost: 205.0]
+ join (eq($$38, $$41)) [cardinality: 2.1, op-cost: 108.4, total-cost: 316.8]
-- HYBRID_HASH_JOIN [$$38][$$41] |PARTITIONED|
exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
- -- HASH_PARTITION_EXCHANGE [$$38] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$38]) [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_PROJECT |PARTITIONED|
assign [$$38] <- [$$d.getField(1)] [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
@@ -34,29 +34,29 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
- exchange [cardinality: 100.0, op-cost: 4.0, total-cost: 5.0]
- -- HASH_PARTITION_EXCHANGE [$$41] |PARTITIONED|
- project ([$$41]) [cardinality: 100.0, op-cost: 0.0, total-cost: 1.0]
+ exchange [cardinality: 100.0, op-cost: 8.4, total-cost: 108.4]
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ project ([$$41]) [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$41] <- [get-item($$30, 0).getField(0).getField(1)] [cardinality: 100.0, op-cost: 0.0, total-cost: 1.0]
+ assign [$$41] <- [get-item($$30, 0).getField(0).getField(1)] [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- ASSIGN |UNPARTITIONED|
- aggregate [$$30] <- [listify($$29)] [cardinality: 100.0, op-cost: 0.0, total-cost: 1.0]
+ aggregate [$$30] <- [listify($$29)] [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- AGGREGATE |UNPARTITIONED|
- limit 1 [cardinality: 100.0, op-cost: 0.0, total-cost: 1.0]
+ limit 1 [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_LIMIT |UNPARTITIONED|
- exchange [cardinality: 100.0, op-cost: 4.0, total-cost: 5.0]
+ exchange [cardinality: 100.0, op-cost: 8.4, total-cost: 108.4]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- project ([$$29]) [cardinality: 100.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$29]) [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$29] <- [{"d": $$d}] [cardinality: 100.0, op-cost: 0.0, total-cost: 1.0]
+ assign [$$29] <- [{"d": $$d}] [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- ASSIGN |PARTITIONED|
- limit 1 [cardinality: 100.0, op-cost: 0.0, total-cost: 1.0]
+ limit 1 [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_LIMIT |PARTITIONED|
- project ([$$d]) [cardinality: 100.0, op-cost: 0.0, total-cost: 1.0]
+ project ([$$d]) [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 100.0, op-cost: 4.0, total-cost: 5.0]
+ exchange [cardinality: 100.0, op-cost: 8.4, total-cost: 108.4]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$40, $$d] <- test.DBLP1 condition (ends-with($$d.getField(1), "Blakeley95")) limit 1 [cardinality: 100.0, op-cost: 1.0, total-cost: 1.0]
+ data-scan []<-[$$40, $$d] <- test.DBLP1 condition (ends-with($$d.getField(1), "Blakeley95")) limit 1 [cardinality: 100.0, op-cost: 100.0, total-cost: 100.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.6.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.6.plan
index 26ba31b..9312e62 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.6.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.6.plan
@@ -1,26 +1,26 @@
-distribute result [$$19] [cardinality: 100.0, op-cost: 0.0, total-cost: 2.0]
+distribute result [$$19] [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 2.0]
+ exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 1 [cardinality: 100.0, op-cost: 0.0, total-cost: 2.0]
+ limit 1 [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_LIMIT |UNPARTITIONED|
- exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 2.0]
+ exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- project ([$$19]) [cardinality: 100.0, op-cost: 0.0, total-cost: 2.0]
+ project ([$$19]) [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$19] <- [{"$1": substring($$20, 0, 21)}] [cardinality: 100.0, op-cost: 0.0, total-cost: 2.0]
+ assign [$$19] <- [{"$1": substring($$20, 0, 21)}] [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- ASSIGN |PARTITIONED|
- limit 1 [cardinality: 100.0, op-cost: 0.0, total-cost: 2.0]
+ limit 1 [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_LIMIT |PARTITIONED|
- project ([$$20]) [cardinality: 100.0, op-cost: 0.0, total-cost: 2.0]
+ project ([$$20]) [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$20] <- [$$DBLP1.getField(1)] [cardinality: 100.0, op-cost: 0.0, total-cost: 2.0]
+ assign [$$20] <- [$$DBLP1.getField(1)] [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- ASSIGN |PARTITIONED|
- project ([$$DBLP1]) [cardinality: 100.0, op-cost: 0.0, total-cost: 2.0]
+ project ([$$DBLP1]) [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 2.0]
+ exchange [cardinality: 100.0, op-cost: 0.0, total-cost: 100.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$21, $$DBLP1] <- test.DBLP1 condition (gt($$DBLP1.getField(1), "series")) limit 1 [cardinality: 100.0, op-cost: 2.0, total-cost: 2.0]
+ data-scan []<-[$$21, $$DBLP1] <- test.DBLP1 condition (gt($$DBLP1.getField(1), "series")) limit 1 [cardinality: 100.0, op-cost: 100.0, total-cost: 100.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.8.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.8.plan
index 8c007cf..190a98e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.8.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/limit/push-limit-to-primary-scan-select/push-limit-to-primary-scan-select.8.plan
@@ -1,26 +1,26 @@
-distribute result [$$22] [cardinality: 12.0, op-cost: 0.0, total-cost: 3.0]
+distribute result [$$22] [cardinality: 12.0, op-cost: 0.0, total-cost: 12.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 12.0, op-cost: 0.0, total-cost: 3.0]
+ exchange [cardinality: 12.0, op-cost: 0.0, total-cost: 12.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 2 [cardinality: 12.0, op-cost: 0.0, total-cost: 3.0]
+ limit 2 [cardinality: 12.0, op-cost: 0.0, total-cost: 12.0]
-- STREAM_LIMIT |UNPARTITIONED|
- exchange [cardinality: 12.0, op-cost: 0.0, total-cost: 3.0]
+ exchange [cardinality: 12.0, op-cost: 0.0, total-cost: 12.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- limit 2 [cardinality: 12.0, op-cost: 0.0, total-cost: 3.0]
+ limit 2 [cardinality: 12.0, op-cost: 0.0, total-cost: 12.0]
-- STREAM_LIMIT |PARTITIONED|
- project ([$$22]) [cardinality: 12.0, op-cost: 0.0, total-cost: 3.0]
+ project ([$$22]) [cardinality: 12.0, op-cost: 0.0, total-cost: 12.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$22] <- [$$26.getField("lang")] [cardinality: 12.0, op-cost: 0.0, total-cost: 3.0]
+ assign [$$22] <- [$$26.getField("lang")] [cardinality: 12.0, op-cost: 0.0, total-cost: 12.0]
-- ASSIGN |PARTITIONED|
- project ([$$26]) [cardinality: 12.0, op-cost: 0.0, total-cost: 3.0]
+ project ([$$26]) [cardinality: 12.0, op-cost: 0.0, total-cost: 12.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$26] <- [$$t.getField("user")] [cardinality: 12.0, op-cost: 0.0, total-cost: 3.0]
+ assign [$$26] <- [$$t.getField("user")] [cardinality: 12.0, op-cost: 0.0, total-cost: 12.0]
-- ASSIGN |PARTITIONED|
- project ([$$t]) [cardinality: 12.0, op-cost: 0.0, total-cost: 3.0]
+ project ([$$t]) [cardinality: 12.0, op-cost: 0.0, total-cost: 12.0]
-- STREAM_PROJECT |PARTITIONED|
- exchange [cardinality: 12.0, op-cost: 0.0, total-cost: 3.0]
+ exchange [cardinality: 12.0, op-cost: 0.0, total-cost: 12.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$25, $$t] <- test.TweetMessages condition (and(ge($$t.getField("user").getField("friends_count"), 0), le($$t.getField("user").getField("friends_count"), 150))) limit 2 [cardinality: 12.0, op-cost: 3.0, total-cost: 3.0]
+ data-scan []<-[$$25, $$t] <- test.TweetMessages condition (and(ge($$t.getField("user").getField("friends_count"), 0), le($$t.getField("user").getField("friends_count"), 150))) limit 2 [cardinality: 12.0, op-cost: 12.0, total-cost: 12.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/objects/load-record-fields/load-record-fields.4.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/objects/load-record-fields/load-record-fields.4.plan
index 494b0cc..0795647 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/objects/load-record-fields/load-record-fields.4.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/objects/load-record-fields/load-record-fields.4.plan
@@ -16,9 +16,9 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (neq(uuid(), uuid())) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_SELECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$32, $$md] <- test.MyDataset [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$32, $$md] <- test.MyDataset [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/objects/load-record-fields/load-record-fields.6.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/objects/load-record-fields/load-record-fields.6.plan
index 1998551..3b0d185 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/objects/load-record-fields/load-record-fields.6.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/objects/load-record-fields/load-record-fields.6.plan
@@ -16,9 +16,9 @@
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (neq(current-date(), date: { 1980-09-10 })) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- STREAM_SELECT |PARTITIONED|
- exchange [cardinality: 2.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$32, $$md] <- test.MyDataset [cardinality: 2.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$32, $$md] <- test.MyDataset [cardinality: 2.1, op-cost: 2.1, total-cost: 2.1]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.08.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.08.plan
index 560e511..e15509b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.08.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.08.plan
@@ -1,30 +1,30 @@
-distribute result [$$88] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$88] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$88]) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$88]) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$88] <- [{"id": $$91, "review": $$95}] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$88] <- [{"id": $$91, "review": $$95}] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ASSIGN |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- order (ASC, $$91) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$91) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STABLE_SORT [$$91(ASC)] |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_LIMIT |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_LIMIT |PARTITIONED|
- project ([$$91, $$95]) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$91, $$95]) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$95] <- [$$d.getField(1)] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$95] <- [$$d.getField(1)] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$91, $$d] <- test.DatasetWithKnownField condition (and(not(is-unknown(int64-default-null($$d.getField("year")))), not(is-unknown(int64-default-null($$d.getField("quarter")))), eq($$d.getField(1), "good"))) limit 3 [cardinality: 20.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$91, $$d] <- test.DatasetWithKnownField condition (and(not(is-unknown(int64-default-null($$d.getField("year")))), not(is-unknown(int64-default-null($$d.getField("quarter")))), eq($$d.getField(1), "good"))) limit 3 [cardinality: 20.0, op-cost: 20.0, total-cost: 20.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.10.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.10.plan
index 510a157..af0c764 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.10.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.10.plan
@@ -1,30 +1,30 @@
-distribute result [$$63] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$63] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_LIMIT |UNPARTITIONED|
- project ([$$63]) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$63]) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$63] <- [{"id": $$65, "review": $$69}] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$63] <- [{"id": $$65, "review": $$69}] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- SORT_MERGE_EXCHANGE [$$65(ASC) ] |PARTITIONED|
- limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_LIMIT |PARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (topK: 3) (ASC, $$65) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ order (topK: 3) (ASC, $$65) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STABLE_SORT [topK: 3] [$$65(ASC)] |PARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$65, $$69]) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$65, $$69]) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$69] <- [$$d.getField(1)] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$69] <- [$$d.getField(1)] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$65, $$d] <- test.DatasetWithKnownField [cardinality: 20.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$65, $$d] <- test.DatasetWithKnownField [cardinality: 20.0, op-cost: 20.0, total-cost: 20.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.12.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.12.plan
index 142aa71..1964876 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.12.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.12.plan
@@ -1,30 +1,30 @@
-distribute result [$$94] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$94] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- project ([$$94]) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$94]) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_PROJECT |UNPARTITIONED|
- assign [$$94] <- [{"id": $$97, "review": $$101}] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$94] <- [{"id": $$97, "review": $$101}] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ASSIGN |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- order (ASC, $$97) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ order (ASC, $$97) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STABLE_SORT [$$97(ASC)] |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_LIMIT |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_LIMIT |PARTITIONED|
- project ([$$97, $$101]) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$97, $$101]) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$101] <- [$$d.getField(1)] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$101] <- [$$d.getField(1)] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$97, $$d] <- test.DatasetWithKnownField condition (and(not(is-unknown(int64-default-null($$d.getField("year")))), not(is-unknown(int64-default-null($$d.getField("quarter")))), eq($$d.getField(1), "good"))) limit 3 [cardinality: 20.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$97, $$d] <- test.DatasetWithKnownField condition (and(not(is-unknown(int64-default-null($$d.getField("year")))), not(is-unknown(int64-default-null($$d.getField("quarter")))), eq($$d.getField(1), "good"))) limit 3 [cardinality: 20.0, op-cost: 20.0, total-cost: 20.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.14.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.14.plan
index ac2e92f..2913174 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.14.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/view/view-pushdown/view-pushdown.14.plan
@@ -1,30 +1,30 @@
-distribute result [$$69] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+distribute result [$$69] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_LIMIT |UNPARTITIONED|
- project ([$$69]) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$69]) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$69] <- [{"id": $$71, "review": $$75}] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$69] <- [{"id": $$71, "review": $$75}] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- SORT_MERGE_EXCHANGE [$$71(ASC) ] |PARTITIONED|
- limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ limit 3 [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_LIMIT |PARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (topK: 3) (ASC, $$71) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ order (topK: 3) (ASC, $$71) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STABLE_SORT [topK: 3] [$$71(ASC)] |PARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$71, $$75]) [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ project ([$$71, $$75]) [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- STREAM_PROJECT |PARTITIONED|
- assign [$$75] <- [$$d.getField(1)] [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ assign [$$75] <- [$$d.getField(1)] [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ASSIGN |PARTITIONED|
- exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 2.1]
+ exchange [cardinality: 20.0, op-cost: 0.0, total-cost: 20.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$71, $$d] <- test.DatasetWithKnownField [cardinality: 20.0, op-cost: 2.1, total-cost: 2.1]
+ data-scan []<-[$$71, $$d] <- test.DatasetWithKnownField [cardinality: 20.0, op-cost: 20.0, total-cost: 20.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|