[ASTERIXDB-3580][COMP] Change collection delivered partitioning property
- user model changes: no
- storage format changes: no
- interface changes: yes
Details:
Make collection's delivered partitioning property
UnorderedPartitionedProperty instead random partitioning.
Ext-ref: MB-63354, MB-65314
Change-Id: I38ecaccf133028ff8c4854a02c635b44bdcefcc8
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19524
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>
Reviewed-by: Peeyush Gupta <peeyush.gupta@couchbase.com>
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/SpatialJoinPOperator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/SpatialJoinPOperator.java
index 513b5aa..5895660 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/SpatialJoinPOperator.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/SpatialJoinPOperator.java
@@ -25,7 +25,6 @@
import org.apache.asterix.runtime.operators.joins.spatial.PlaneSweepJoinOperatorDescriptor;
import org.apache.asterix.runtime.operators.joins.spatial.utils.ISpatialJoinUtilFactory;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.common.utils.ListSet;
import org.apache.hyracks.algebricks.core.algebra.base.IHyracksJobBuilder;
import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
@@ -37,6 +36,7 @@
import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator;
import org.apache.hyracks.algebricks.core.algebra.operators.physical.AbstractJoinPOperator;
import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningRequirementsCoordinator;
import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
@@ -44,7 +44,7 @@
import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
-import org.apache.hyracks.algebricks.core.algebra.properties.UnorderedPartitionedProperty;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenHelper;
import org.apache.hyracks.api.dataflow.IOperatorDescriptor;
@@ -121,19 +121,19 @@
keysLeftBranchTileId.add(keysLeftBranch.get(0));
List<LogicalVariable> keysRightBranchTileId = new ArrayList<>();
keysRightBranchTileId.add(keysRightBranch.get(0));
- IPartitioningProperty pp1 = UnorderedPartitionedProperty.of(new ListSet<>(keysLeftBranchTileId),
- context.getComputationNodeDomain());
- IPartitioningProperty pp2 = UnorderedPartitionedProperty.of(new ListSet<>(keysRightBranchTileId),
- context.getComputationNodeDomain());
+ INodeDomain nd = context.getComputationNodeDomain();
+ int[][] pm = context.getMetadataProvider().getPartitionsMap(nd);
+ IPartitioningProperty pp1 = OperatorPropertiesUtil.createUnorderedProperty(nd, pm, keysLeftBranchTileId);
+ IPartitioningProperty pp2 = OperatorPropertiesUtil.createUnorderedProperty(nd, pm, keysRightBranchTileId);
List<ILocalStructuralProperty> localProperties1 = new ArrayList<>();
- List<OrderColumn> orderColumns1 = new ArrayList<OrderColumn>();
+ List<OrderColumn> orderColumns1 = new ArrayList<>();
orderColumns1.add(new OrderColumn(keysLeftBranch.get(0), OrderOperator.IOrder.OrderKind.ASC));
orderColumns1.add(new OrderColumn(keysLeftBranch.get(1), OrderOperator.IOrder.OrderKind.ASC));
localProperties1.add(new LocalOrderProperty(orderColumns1));
List<ILocalStructuralProperty> localProperties2 = new ArrayList<>();
- List<OrderColumn> orderColumns2 = new ArrayList<OrderColumn>();
+ List<OrderColumn> orderColumns2 = new ArrayList<>();
orderColumns2.add(new OrderColumn(keysRightBranch.get(0), OrderOperator.IOrder.OrderKind.ASC));
orderColumns2.add(new OrderColumn(keysRightBranch.get(1), OrderOperator.IOrder.OrderKind.ASC));
localProperties2.add(new LocalOrderProperty(orderColumns2));
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/ASTERIXDB-3580.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/ASTERIXDB-3580.sqlpp
new file mode 100644
index 0000000..56a24ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/ASTERIXDB-3580.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+CREATE COLLECTION c1 PRIMARY KEY(id: int);
+CREATE COLLECTION c2 PRIMARY KEY(id: int);
+
+SELECT COUNT(c1) FROM c1
+WHERE c1.x NOT IN (
+ SELECT VALUE c2.x
+ FROM c2);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan
index 0171a23..83be3b6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan
@@ -195,7 +195,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$235] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$265, $$244] <- [true, $$u.getField(0)]
-- ASSIGN |PARTITIONED|
exchange
@@ -281,7 +281,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$235] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$265, $$244] <- [true, $$u.getField(0)]
-- ASSIGN |PARTITIONED|
exchange
@@ -315,7 +315,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$239, $$240] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$253] <- [$$b.getField("BrokerEndPoint")] project: [$$253, $$239, $$240]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-3580.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-3580.plan
new file mode 100644
index 0000000..47441b8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-3580.plan
@@ -0,0 +1,65 @@
+distribute result [$$55]
+-- DISTRIBUTE_RESULT |UNPARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
+ assign [$$55] <- [{"$1": $$58}] project: [$$55]
+ -- ASSIGN |UNPARTITIONED|
+ aggregate [$$58] <- [agg-sql-sum($$62)]
+ -- AGGREGATE |UNPARTITIONED|
+ exchange
+ -- RANDOM_MERGE_EXCHANGE |PARTITIONED|
+ aggregate [$$62] <- [agg-sql-count(1)]
+ -- AGGREGATE |PARTITIONED|
+ select ($$47)
+ -- STREAM_SELECT |PARTITIONED|
+ project ([$$47])
+ -- STREAM_PROJECT |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ group by ([$$61 := $$56]) decor ([]) {
+ aggregate [$$47] <- [empty-stream()]
+ -- AGGREGATE |LOCAL|
+ select (not(is-missing($$60)))
+ -- STREAM_SELECT |LOCAL|
+ nested tuple source
+ -- NESTED_TUPLE_SOURCE |LOCAL|
+ }
+ -- PRE_CLUSTERED_GROUP_BY[$$56] |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ order (ASC, $$56)
+ -- STABLE_SORT [$$56(ASC)] |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ project ([$$56, $$60])
+ -- STREAM_PROJECT |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ left outer join (not(if-missing-or-null(neq($$59, $$43), false)))
+ -- NESTED_LOOP |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$59] <- [$$c1.getField("x")] project: [$$56, $$59]
+ -- ASSIGN |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ data-scan []<-[$$56, $$c1] <- Default.c1
+ -- DATASOURCE_SCAN |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ exchange
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ assign [$$60, $$43] <- [true, $$c2.getField("x")] project: [$$60, $$43]
+ -- ASSIGN |PARTITIONED|
+ project ([$$c2])
+ -- STREAM_PROJECT |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ data-scan []<-[$$57, $$c2] <- Default.c2
+ -- DATASOURCE_SCAN |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/collocated.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/collocated.plan
index b2c4781..17d9a29 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/collocated.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/collocated.plan
@@ -11,7 +11,7 @@
join (eq($$32, $$33))
-- HYBRID_HASH_JOIN [$$32][$$33] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$32] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$36] <- [$$user.getField(1)] project: [$$36, $$32]
-- ASSIGN |PARTITIONED|
exchange
@@ -23,7 +23,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$33] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$37] <- [$$visitor.getField(1)] project: [$$37, $$33]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/common-expr-01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/common-expr-01.plan
index 9ea6aaf..416dc77 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/common-expr-01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/common-expr-01.plan
@@ -54,7 +54,7 @@
order (ASC, $$181)
-- STABLE_SORT [$$181(ASC)] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$181] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$179, $$180, $$190, $$181])
-- STREAM_PROJECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/denorm-cust-order.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/denorm-cust-order.plan
index f8133ba..930e106 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/denorm-cust-order.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/denorm-cust-order.plan
@@ -26,7 +26,7 @@
join (eq($$99, $$101))
-- HYBRID_HASH_JOIN [$$99][$$101] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$99] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$99, $$c] <- custorder.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/disjunction-to-join-delete-3.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/disjunction-to-join-delete-3.plan
index 12f2c6b..4033ef3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/disjunction-to-join-delete-3.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/disjunction-to-join-delete-3.plan
@@ -19,7 +19,7 @@
materialize
-- MATERIALIZE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$19] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$24, $$19] <- [$$TestSet.getField(1), $$TestSet.getField(0)]
-- ASSIGN |PARTITIONED|
project ([$$TestSet])
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_4.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_4.plan
index 7fdd2d1..5336247 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_4.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_4.plan
@@ -53,7 +53,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$81] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$81, $$n] <- tpch.nation
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_5.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_5.plan
index f11dcb8..6361b3f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_5.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_5.plan
@@ -39,7 +39,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$81] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$81, $$n] <- tpch.nation
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_6.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_6.plan
index 7fdd2d1..5336247 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_6.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_6.plan
@@ -53,7 +53,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$81] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$81, $$n] <- tpch.nation
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_7.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_7.plan
index 7fdd2d1..5336247 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_7.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/broadcast_join_hint/broadcast_join_hint_7.plan
@@ -53,7 +53,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$81] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$81, $$n] <- tpch.nation
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_1.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_1.plan
index efea9db..dd20fbc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_1.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_1.plan
@@ -39,7 +39,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$81] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$81, $$n] <- tpch.nation
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_2.plan
index 1826f6c..c76dba5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_2.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_2.plan
@@ -53,7 +53,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$81] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$81, $$n] <- tpch.nation
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_3.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_3.plan
index 1826f6c..c76dba5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_3.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_3.plan
@@ -53,7 +53,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$81] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$81, $$n] <- tpch.nation
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_4.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_4.plan
index 1826f6c..c76dba5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_4.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_4.plan
@@ -53,7 +53,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$81] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$81, $$n] <- tpch.nation
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_5.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_5.plan
index efea9db..dd20fbc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_5.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_5.plan
@@ -39,7 +39,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$81] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$81, $$n] <- tpch.nation
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_6.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_6.plan
index efea9db..dd20fbc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_6.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/hints/hashjoin_hint/hashjoin_hint_6.plan
@@ -39,7 +39,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$81] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$81, $$n] <- tpch.nation
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/ngram-jaccard-inline.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/ngram-jaccard-inline.plan
index 7c4233f..07c1d44 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/ngram-jaccard-inline.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/ngram-jaccard-inline.plan
@@ -11,7 +11,7 @@
join (eq($$61, $$52))
-- HYBRID_HASH_JOIN [$$61][$$52] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$61] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$50] <- [$$a.getField(2)] project: [$$50, $$61]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/word-jaccard-inline.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/word-jaccard-inline.plan
index 737d09b..479a5e2 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/word-jaccard-inline.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join-noeqjoin/word-jaccard-inline.plan
@@ -11,7 +11,7 @@
join (eq($$61, $$52))
-- HYBRID_HASH_JOIN [$$61][$$52] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$61] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$50] <- [$$a.getField(2)] project: [$$50, $$61]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/issue741.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/issue741.plan
index 36a6df9..86b0a07 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/issue741.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/issue741.plan
@@ -28,7 +28,7 @@
join (eq($$71, $$60))
-- HYBRID_HASH_JOIN [$$71][$$60] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$71] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(ge($$59, datetime: { 2011-06-18T14:10:17.000 }), lt($$59, datetime: { 2011-06-18T15:10:17.000 }))) project: [$$71]
-- STREAM_SELECT |PARTITIONED|
assign [$$59] <- [$$t.getField(3)] project: [$$71, $$59]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.plan
index 5952503..c8ef0e9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.plan
@@ -28,7 +28,7 @@
join (eq($$78, $$62))
-- HYBRID_HASH_JOIN [$$78][$$62] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$78] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$78, $$t1] <- [$$62, $$79] project: [$$78]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
index 045a498..84139cc 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
@@ -40,7 +40,7 @@
join (eq($$78, $$62))
-- HYBRID_HASH_JOIN [$$78][$$62] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$78] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$78, $$t1] <- [$$62, $$79] project: [$$78]
-- ASSIGN |PARTITIONED|
exchange
@@ -187,7 +187,7 @@
join (eq($$78, $$62))
-- HYBRID_HASH_JOIN [$$78][$$62] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$78] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$78, $$t1] <- [$$62, $$79] project: [$$78]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan
index 825a5f8..1128130 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan
@@ -28,7 +28,7 @@
join (eq($$78, $$62))
-- HYBRID_HASH_JOIN [$$78][$$62] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$78] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$78, $$t1] <- [$$62, $$79] project: [$$78]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
index 980f630..c07fb51 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
@@ -40,7 +40,7 @@
join (eq($$78, $$62))
-- HYBRID_HASH_JOIN [$$78][$$62] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$78] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$78, $$t1] <- [$$62, $$79] project: [$$78]
-- ASSIGN |PARTITIONED|
exchange
@@ -133,7 +133,7 @@
join (eq($$78, $$62))
-- HYBRID_HASH_JOIN [$$78][$$62] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$78] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$78, $$t1] <- [$$62, $$79] project: [$$78]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_02.plan
index 6f32e6d..c01911f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_02.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_03.plan
index 7dc4d2d..6cea4fa 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_03.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_04.plan
index 5f5d2e7..22f6615 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance-check_04.plan
@@ -11,7 +11,7 @@
join (eq($$57, $$47))
-- HYBRID_HASH_JOIN [$$57][$$47] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_02.plan
index 1d02e13..efa1662 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_02.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_03.plan
index bef4fb4..49f0518 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_03.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_04.plan
index 3350bc0..3c19eb4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-edit-distance_04.plan
@@ -11,7 +11,7 @@
join (eq($$57, $$46))
-- HYBRID_HASH_JOIN [$$57][$$46] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-edit-distance_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-edit-distance_01.plan
index cff50d4..f4eb266 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-edit-distance_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-edit-distance_01.plan
@@ -11,7 +11,7 @@
join (eq($$42, $$34))
-- HYBRID_HASH_JOIN [$$42][$$34] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$42] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$42, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-edit-distance_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-edit-distance_03.plan
index 3b6e65c..2b3b0c1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-edit-distance_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-edit-distance_03.plan
@@ -11,7 +11,7 @@
join (eq($$42, $$34))
-- HYBRID_HASH_JOIN [$$42][$$34] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$42] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$42, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
index a22ca54..813358e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_02.plan
@@ -11,7 +11,7 @@
join (eq($$46, $$36))
-- HYBRID_HASH_JOIN [$$46][$$36] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$46] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$46, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
index 6a189db..e23f77e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-fuzzyeq-jaccard_03.plan
@@ -11,7 +11,7 @@
join (eq($$46, $$36))
-- HYBRID_HASH_JOIN [$$46][$$36] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$46] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$46, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_02.plan
index b19014a..8296d07 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_02.plan
@@ -11,7 +11,7 @@
join (eq($$47, $$37))
-- HYBRID_HASH_JOIN [$$47][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$47, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_03.plan
index 77d34c8..962912a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_03.plan
@@ -11,7 +11,7 @@
join (eq($$47, $$37))
-- HYBRID_HASH_JOIN [$$47][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$47, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_04.plan
index 2ed980e..92efd0a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard-check_04.plan
@@ -11,7 +11,7 @@
join (eq($$61, $$49))
-- HYBRID_HASH_JOIN [$$61][$$49] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$61] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$55] <- [$$a.getField(2)]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_02.plan
index b19014a..8296d07 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_02.plan
@@ -11,7 +11,7 @@
join (eq($$47, $$37))
-- HYBRID_HASH_JOIN [$$47][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$47, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_03.plan
index 77d34c8..962912a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_03.plan
@@ -11,7 +11,7 @@
join (eq($$47, $$37))
-- HYBRID_HASH_JOIN [$$47][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$47, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_04.plan
index 1449181..c724771 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ngram-jaccard_04.plan
@@ -11,7 +11,7 @@
join (eq($$61, $$48))
-- HYBRID_HASH_JOIN [$$61][$$48] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$61] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$55] <- [$$a.getField(2)]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_02.plan
index bcbc2a4..ac6f7f5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_02.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_03.plan
index 2bef1ee..ff38d6c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_03.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_04.plan
index 08f9f07..27286b1 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance-check_04.plan
@@ -11,7 +11,7 @@
join (eq($$57, $$47))
-- HYBRID_HASH_JOIN [$$57][$$47] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_02.plan
index ad96ed3..f6c481a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_02.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_03.plan
index 1681bb7..7a578bd 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_03.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_04.plan
index 67a2547..5587842 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-edit-distance_04.plan
@@ -11,7 +11,7 @@
join (eq($$57, $$46))
-- HYBRID_HASH_JOIN [$$57][$$46] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-edit-distance_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-edit-distance_02.plan
index 7b809e6..1767714 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-edit-distance_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-edit-distance_02.plan
@@ -11,7 +11,7 @@
join (eq($$42, $$34))
-- HYBRID_HASH_JOIN [$$42][$$34] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$42] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$42, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-edit-distance_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-edit-distance_03.plan
index 9125e66..2cf46fa 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-edit-distance_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-edit-distance_03.plan
@@ -11,7 +11,7 @@
join (eq($$42, $$34))
-- HYBRID_HASH_JOIN [$$42][$$34] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$42] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$42, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-jaccard_02.plan
index 4761111..2ff575a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-jaccard_02.plan
@@ -11,7 +11,7 @@
join (eq($$42, $$34))
-- HYBRID_HASH_JOIN [$$42][$$34] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$42] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$42, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-jaccard_03.plan
index 81f3c80..20c081e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-fuzzyeq-jaccard_03.plan
@@ -11,7 +11,7 @@
join (eq($$42, $$34))
-- HYBRID_HASH_JOIN [$$42][$$34] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$42] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$42, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_02.plan
index 19e440d..d3aef1a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_02.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_03.plan
index 70f2b35..07d8454 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_03.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_04.plan
index 3f866ed..71d7fa9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard-check_04.plan
@@ -11,7 +11,7 @@
join (eq($$57, $$47))
-- HYBRID_HASH_JOIN [$$57][$$47] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_02.plan
index 19e440d..d3aef1a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_02.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_03.plan
index 70f2b35..07d8454 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_03.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_04.plan
index 6d0121e..d06f308 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/olist-jaccard_04.plan
@@ -11,7 +11,7 @@
join (eq($$57, $$46))
-- HYBRID_HASH_JOIN [$$57][$$46] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-fuzzyeq-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-fuzzyeq-jaccard_02.plan
index 527152a..7ced504 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-fuzzyeq-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-fuzzyeq-jaccard_02.plan
@@ -11,7 +11,7 @@
join (eq($$42, $$34))
-- HYBRID_HASH_JOIN [$$42][$$34] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$42] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$42, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-fuzzyeq-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-fuzzyeq-jaccard_03.plan
index 140101b..559653b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-fuzzyeq-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-fuzzyeq-jaccard_03.plan
@@ -11,7 +11,7 @@
join (eq($$42, $$34))
-- HYBRID_HASH_JOIN [$$42][$$34] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$42] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$42, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_02.plan
index bea5acb..2fcc88f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_02.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_03.plan
index 4b92305..2e875d5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_03.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_04.plan
index 08d569c..627009c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard-check_04.plan
@@ -11,7 +11,7 @@
join (eq($$57, $$47))
-- HYBRID_HASH_JOIN [$$57][$$47] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_02.plan
index bea5acb..2fcc88f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_02.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_03.plan
index 4b92305..2e875d5 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_03.plan
@@ -11,7 +11,7 @@
join (eq($$43, $$35))
-- HYBRID_HASH_JOIN [$$43][$$35] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$43] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$43, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_04.plan
index 6b2a10b..adca3fe 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/ulist-jaccard_04.plan
@@ -11,7 +11,7 @@
join (eq($$57, $$46))
-- HYBRID_HASH_JOIN [$$57][$$46] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$a] <- test.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_02.plan
index e7ccec2..2884a80 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_02.plan
@@ -11,7 +11,7 @@
join (eq($$46, $$36))
-- HYBRID_HASH_JOIN [$$46][$$36] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$46] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$46, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_03.plan
index c5e62dd..ec58540 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-fuzzyeq-jaccard_03.plan
@@ -11,7 +11,7 @@
join (eq($$46, $$36))
-- HYBRID_HASH_JOIN [$$46][$$36] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$46] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$46, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check-after-btree-access.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check-after-btree-access.plan
index 4ad9902..88785f7 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check-after-btree-access.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check-after-btree-access.plan
@@ -11,7 +11,7 @@
join (eq($$69, $$56))
-- HYBRID_HASH_JOIN [$$69][$$56] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$69] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$60] <- [$$t1.getField(5)] project: [$$60, $$69]
-- ASSIGN |PARTITIONED|
assign [$$69, $$t1] <- [$$56, $$71] project: [$$69, $$t1]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_02.plan
index 6c3238b..9ac401b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_02.plan
@@ -11,7 +11,7 @@
join (eq($$47, $$37))
-- HYBRID_HASH_JOIN [$$47][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$47, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_03.plan
index c281852..024c96d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_03.plan
@@ -11,7 +11,7 @@
join (eq($$47, $$37))
-- HYBRID_HASH_JOIN [$$47][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$47, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_04.plan
index c973504..2975b29 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard-check_04.plan
@@ -11,7 +11,7 @@
join (eq($$61, $$49))
-- HYBRID_HASH_JOIN [$$61][$$49] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$61] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$55] <- [$$a.getField(2)]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_02.plan
index 6c3238b..9ac401b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_02.plan
@@ -11,7 +11,7 @@
join (eq($$47, $$37))
-- HYBRID_HASH_JOIN [$$47][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$47, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_03.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_03.plan
index c281852..024c96d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_03.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_03.plan
@@ -11,7 +11,7 @@
join (eq($$47, $$37))
-- HYBRID_HASH_JOIN [$$47][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$47, $$a] <- test.DBLP
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_04.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_04.plan
index d2484f3..b2118ae 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_04.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inverted-index-join/word-jaccard_04.plan
@@ -11,7 +11,7 @@
join (eq($$61, $$48))
-- HYBRID_HASH_JOIN [$$61][$$48] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$61] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$55] <- [$$a.getField(2)]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/join-super-key_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/join-super-key_01.plan
index 4f94d49..dd3974e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/join-super-key_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/join-super-key_01.plan
@@ -11,7 +11,7 @@
join (and(eq($$39, $$41), eq($$44, $$45), eq($$46, $$42)))
-- HYBRID_HASH_JOIN [$$39, $$44, $$46][$$41, $$45, $$42] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$39, $$44, $$46] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$39, $$46] |PARTITIONED|
assign [$$46, $$44] <- [$$li.getField(2), $$li.getField(5)] project: [$$39, $$44, $$46]
-- ASSIGN |PARTITIONED|
project ([$$39, $$li])
@@ -25,7 +25,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$41, $$45, $$42] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$45] <- [$$ps.getField(3)] project: [$$41, $$45, $$42]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/join-super-key_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/join-super-key_02.plan
index 97f59e8..02122d0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/join-super-key_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/join-super-key_02.plan
@@ -11,7 +11,7 @@
join (and(eq($$41, $$39), eq($$44, $$45), eq($$46, $$40)))
-- HYBRID_HASH_JOIN [$$39, $$45, $$40][$$41, $$44, $$46] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$39, $$45, $$40] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$45] <- [$$ps.getField(3)] project: [$$39, $$45, $$40]
-- ASSIGN |PARTITIONED|
exchange
@@ -23,7 +23,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$41, $$44, $$46] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$41, $$46] |PARTITIONED|
assign [$$46, $$44] <- [$$li.getField(2), $$li.getField(5)] project: [$$41, $$44, $$46]
-- ASSIGN |PARTITIONED|
project ([$$41, $$li])
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/joins/inner_right_corr.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/joins/inner_right_corr.plan
index db55da3..b78f46b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/joins/inner_right_corr.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/joins/inner_right_corr.plan
@@ -32,7 +32,7 @@
left outer join (eq($$76, $$92))
-- HYBRID_HASH_JOIN [$$76][$$92] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$76] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$76])
-- STREAM_PROJECT |PARTITIONED|
exchange
@@ -44,7 +44,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$92] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$93] <- [true]
-- ASSIGN |PARTITIONED|
unnest $$82 <- scan-collection($$83) project: [$$92]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/joins/nested_query_with_bcast.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/joins/nested_query_with_bcast.plan
index 896daea..6da59c3 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/joins/nested_query_with_bcast.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/joins/nested_query_with_bcast.plan
@@ -32,7 +32,7 @@
order (ASC, $$40)
-- STABLE_SORT [$$40(ASC)] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$40] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$x, $$33, $$44, $$40])
-- STREAM_PROJECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/leftouterjoin/query-ASTERIXDB-2857.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/leftouterjoin/query-ASTERIXDB-2857.plan
index c5f1ca1..2dc6e5f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/leftouterjoin/query-ASTERIXDB-2857.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/leftouterjoin/query-ASTERIXDB-2857.plan
@@ -25,7 +25,7 @@
join (eq($$136, $$137))
-- HYBRID_HASH_JOIN [$$136][$$137] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$136] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$145] <- [$$tenk.getField(0)] project: [$$145, $$136]
-- ASSIGN |PARTITIONED|
exchange
@@ -39,7 +39,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$137] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$146] <- [$$tenk.getField(0)] project: [$$146, $$137]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-super-key_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-super-key_01.plan
index 5446096..ae3baa0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-super-key_01.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-super-key_01.plan
@@ -30,7 +30,7 @@
left outer join (and(eq($$53, $$54), eq($$49, $$51), eq($$57, $$52)))
-- HYBRID_HASH_JOIN [$$53, $$49, $$57][$$54, $$51, $$52] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$53, $$49, $$57] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$49, $$57] |PARTITIONED|
assign [$$57, $$53] <- [$$li.getField(2), $$li.getField(5)]
-- ASSIGN |PARTITIONED|
exchange
@@ -42,7 +42,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$54, $$51, $$52] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$59, $$54] <- [true, $$ps.getField(3)]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-super-key_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-super-key_02.plan
index 13d0338..6d78e3a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-super-key_02.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/loj-super-key_02.plan
@@ -22,7 +22,7 @@
order (ASC, $$49) (ASC, $$50)
-- STABLE_SORT [$$49(ASC), $$50(ASC)] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$49, $$50] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$ps, $$li, $$59, $$49, $$50])
-- STREAM_PROJECT |PARTITIONED|
exchange
@@ -30,7 +30,7 @@
left outer join (and(eq($$53, $$54), eq($$51, $$49), eq($$57, $$50)))
-- HYBRID_HASH_JOIN [$$54, $$49, $$50][$$53, $$51, $$57] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$54, $$49, $$50] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$54] <- [$$ps.getField(3)]
-- ASSIGN |PARTITIONED|
exchange
@@ -42,7 +42,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$53, $$51, $$57] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$51, $$57] |PARTITIONED|
assign [$$59, $$57, $$53] <- [true, $$li.getField(2), $$li.getField(5)]
-- ASSIGN |PARTITIONED|
project ([$$51, $$li])
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_05.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_05.plan
index 66813cd..23ac3d8 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_05.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_05.plan
@@ -19,7 +19,7 @@
join (eq($$31, $$36))
-- HYBRID_HASH_JOIN [$$31][$$36] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$31] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$ds2, $$31])
-- STREAM_PROJECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_06.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_06.plan
index 8f674bd..6d6e2c0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_06.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_06.plan
@@ -12,7 +12,7 @@
-- STABLE_SORT [$$35(ASC)] |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$35, $$ds2, $$37, $$ds1])
+ project ([$$ds2, $$35, $$37, $$ds1])
-- STREAM_PROJECT |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
@@ -23,8 +23,8 @@
order (ASC, $$35)
-- STABLE_SORT [$$35(ASC)] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$35] |PARTITIONED|
- project ([$$35, $$ds2])
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ project ([$$ds2, $$35])
-- STREAM_PROJECT |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_11.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_11.plan
index 8f674bd..6d6e2c0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_11.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/meta/indexes_on_dataset_with_meta_11.plan
@@ -12,7 +12,7 @@
-- STABLE_SORT [$$35(ASC)] |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$35, $$ds2, $$37, $$ds1])
+ project ([$$ds2, $$35, $$37, $$ds1])
-- STREAM_PROJECT |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
@@ -23,8 +23,8 @@
order (ASC, $$35)
-- STABLE_SORT [$$35(ASC)] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$35] |PARTITIONED|
- project ([$$35, $$ds2])
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ project ([$$ds2, $$35])
-- STREAM_PROJECT |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/ASTERIXDB-2199.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/ASTERIXDB-2199.plan
index a7b0602..2afd612 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/ASTERIXDB-2199.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/ASTERIXDB-2199.plan
@@ -11,7 +11,7 @@
join (eq($$36, $$37))
-- HYBRID_HASH_JOIN [$$36][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$36] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$36, $$first] <- Facebook.Friendship
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -19,7 +19,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$37] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$37, $$second] <- Facebook.Friendship
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
index 50b646a..05f22ae 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
@@ -42,7 +42,7 @@
join (eq($$95, $$74))
-- HYBRID_HASH_JOIN [$$95][$$74] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$95] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$80] <- [$$t1.getField(0).getField(0)] project: [$$80, $$95]
-- ASSIGN |PARTITIONED|
assign [$$95, $$t1] <- [$$74, $$98] project: [$$95, $$t1]
@@ -203,7 +203,7 @@
join (eq($$95, $$74))
-- HYBRID_HASH_JOIN [$$95][$$74] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$95] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$80] <- [$$t1.getField(0).getField(0)] project: [$$80, $$95]
-- ASSIGN |PARTITIONED|
assign [$$95, $$t1] <- [$$74, $$98] project: [$$95, $$t1]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
index d57acf2..9df5749 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01_ps.plan
@@ -42,7 +42,7 @@
join (eq($$95, $$74))
-- HYBRID_HASH_JOIN [$$95][$$74] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$95] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$80] <- [$$t1.getField(0).getField(0)] project: [$$80, $$95]
-- ASSIGN |PARTITIONED|
assign [$$95, $$t1] <- [$$74, $$98] project: [$$95, $$t1]
@@ -141,7 +141,7 @@
join (eq($$95, $$74))
-- HYBRID_HASH_JOIN [$$95][$$74] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$95] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$80] <- [$$t1.getField(0).getField(0)] project: [$$80, $$95]
-- ASSIGN |PARTITIONED|
assign [$$95, $$t1] <- [$$74, $$98] project: [$$95, $$t1]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
index 16819c3..a9529e4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
@@ -42,7 +42,7 @@
join (eq($$95, $$74))
-- HYBRID_HASH_JOIN [$$95][$$74] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$95] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$80] <- [$$t1.getField(0).getField(0)] project: [$$80, $$95]
-- ASSIGN |PARTITIONED|
assign [$$95, $$t1] <- [$$74, $$98] project: [$$95, $$t1]
@@ -203,7 +203,7 @@
join (eq($$95, $$74))
-- HYBRID_HASH_JOIN [$$95][$$74] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$95] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$80] <- [$$t1.getField(0).getField(0)] project: [$$80, $$95]
-- ASSIGN |PARTITIONED|
assign [$$95, $$t1] <- [$$74, $$98] project: [$$95, $$t1]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested_loj2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested_loj2.plan
index bebe54d..5c0bc7f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested_loj2.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested_loj2.plan
@@ -43,7 +43,7 @@
left outer join (eq($$75, $$71))
-- HYBRID_HASH_JOIN [$$71][$$75] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$71] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$71, $$c] <- tpch.Customers
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
index 52654f2..bfc89c6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01_ps.plan
@@ -40,7 +40,7 @@
join (eq($$78, $$62))
-- HYBRID_HASH_JOIN [$$78][$$62] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$78] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$78, $$t1] <- [$$62, $$79] project: [$$78]
-- ASSIGN |PARTITIONED|
exchange
@@ -187,7 +187,7 @@
join (eq($$78, $$62))
-- HYBRID_HASH_JOIN [$$78][$$62] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$78] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$78, $$t1] <- [$$62, $$79] project: [$$78]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/primary-key-index/delete-primary-key-index-with-secondary.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/primary-key-index/delete-primary-key-index-with-secondary.plan
index d4edc74..b089d74 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/primary-key-index/delete-primary-key-index-with-secondary.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/primary-key-index/delete-primary-key-index-with-secondary.plan
@@ -23,7 +23,7 @@
materialize
-- MATERIALIZE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$16] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$22, $$16] <- [$$DBLP.getField(2), $$DBLP.getField(0)]
-- ASSIGN |PARTITIONED|
project ([$$DBLP])
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/q08_group_by.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/q08_group_by.plan
index 0f013e2..dc6aa48 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/q08_group_by.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/q08_group_by.plan
@@ -11,7 +11,7 @@
join (eq($$205, $$233))
-- HYBRID_HASH_JOIN [$$205][$$233] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$205] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$242] <- [$$s.getField(3)] project: [$$242, $$205]
-- ASSIGN |PARTITIONED|
exchange
@@ -115,7 +115,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$211] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$r1.getField(1), "AMERICA")) project: [$$211]
-- STREAM_SELECT |PARTITIONED|
exchange
@@ -127,7 +127,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$212] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$p.getField(4), "ECONOMY ANODIZED STEEL")) project: [$$212]
-- STREAM_SELECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/q09_group_by.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/q09_group_by.plan
index 5cb6e2c..d83809b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/q09_group_by.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/q09_group_by.plan
@@ -11,7 +11,7 @@
join (eq($$147, $$169))
-- HYBRID_HASH_JOIN [$$147][$$169] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$147] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (contains($$p.getField(1), "green")) project: [$$147]
-- STREAM_SELECT |PARTITIONED|
exchange
@@ -31,7 +31,7 @@
join (and(eq($$148, $$169), eq($$149, $$154)))
-- HYBRID_HASH_JOIN [$$148, $$149][$$169, $$154] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$148, $$149] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$177] <- [$$ps.getField(3)] project: [$$177, $$148, $$149]
-- ASSIGN |PARTITIONED|
exchange
@@ -71,7 +71,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$151] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$165] <- [$$n.getField(1)] project: [$$165, $$151]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-159-3.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-159-3.plan
index 4a643aa..010e12f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-159-3.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-159-3.plan
@@ -23,8 +23,8 @@
left outer join (eq($$47, $$56))
-- HYBRID_HASH_JOIN [$$47][$$56] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
- assign [$$47] <- [$$48] project: [$$47]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$47] <- [$$56] project: [$$47]
-- ASSIGN |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
@@ -32,18 +32,26 @@
-- REPLICATE |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$48])
- -- STREAM_PROJECT |PARTITIONED|
+ assign [$$56] <- [$$48] project: [$$56]
+ -- ASSIGN |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$48, $$fu2] <- TinySocial.FacebookUsers
- -- DATASOURCE_SCAN |PARTITIONED|
+ replicate
+ -- REPLICATE |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ project ([$$48])
+ -- STREAM_PROJECT |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ data-scan []<-[$$48, $$fu2] <- TinySocial.FacebookUsers
+ -- DATASOURCE_SCAN |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$56] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(lt($$49, 5), gt($$49, 2))) project: [$$48, $$56]
-- STREAM_SELECT |PARTITIONED|
subplan {
@@ -61,24 +69,28 @@
-- NESTED_LOOP |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- assign [$$56] <- [$$48] project: [$$56]
- -- ASSIGN |PARTITIONED|
+ replicate
+ -- REPLICATE |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- replicate
- -- REPLICATE |PARTITIONED|
+ assign [$$56] <- [$$48] project: [$$56]
+ -- ASSIGN |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$48])
- -- STREAM_PROJECT |PARTITIONED|
+ replicate
+ -- REPLICATE |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan []<-[$$48, $$fu2] <- TinySocial.FacebookUsers
- -- DATASOURCE_SCAN |PARTITIONED|
+ project ([$$48])
+ -- STREAM_PROJECT |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ data-scan []<-[$$48, $$fu2] <- TinySocial.FacebookUsers
+ -- DATASOURCE_SCAN |PARTITIONED|
+ exchange
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ empty-tuple-source
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
-- BROADCAST_EXCHANGE |PARTITIONED|
replicate
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408.plan
index f56c182..1e7091d 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408.plan
@@ -38,7 +38,7 @@
left outer join (eq($$49, $$46))
-- HYBRID_HASH_JOIN [$$46][$$49] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$46] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$51] <- [$$c.getField("name")] project: [$$51, $$46]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408_ps.plan
index c7267f0..129033b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408_ps.plan
@@ -46,7 +46,7 @@
left outer join (eq($$49, $$46))
-- HYBRID_HASH_JOIN [$$46][$$49] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$46] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$51] <- [$$c.getField("name")] project: [$$51, $$46]
-- ASSIGN |PARTITIONED|
exchange
@@ -111,7 +111,7 @@
left outer join (eq($$49, $$46))
-- HYBRID_HASH_JOIN [$$46][$$49] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$46] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$51] <- [$$c.getField("name")] project: [$$51, $$46]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan
index 4f32889..8ccbc0f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan
@@ -75,7 +75,7 @@
left outer join (eq($$156, $$163))
-- HYBRID_HASH_JOIN [$$156][$$163] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$156] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
running-aggregate [$$169] <- [create-query-uid()]
-- RUNNING_AGGREGATE |PARTITIONED|
assign [$$135] <- [{"c_acctbal": $$165, "c_custkey": $$156, "cntrycode": $$phone_substr}]
@@ -191,7 +191,7 @@
left outer join (eq($$156, $$163))
-- HYBRID_HASH_JOIN [$$156][$$163] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$156] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
running-aggregate [$$169] <- [create-query-uid()]
-- RUNNING_AGGREGATE |PARTITIONED|
assign [$$135] <- [{"c_acctbal": $$165, "c_custkey": $$156, "cntrycode": $$phone_substr}]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue3316.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue3316.plan
index b869d74..2eeac1c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue3316.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue3316.plan
@@ -57,7 +57,7 @@
left outer join (eq($$193, $$240))
-- HYBRID_HASH_JOIN [$$193][$$240] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$193] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$116] <- [{"x_id": $$T0.getField("x_id")}] project: [$$116, $$193]
-- ASSIGN |PARTITIONED|
exchange
@@ -481,7 +481,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$399] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
replicate
-- REPLICATE |PARTITIONED|
exchange
@@ -921,7 +921,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$399] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
replicate
-- REPLICATE |PARTITIONED|
exchange
@@ -1350,7 +1350,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$399] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
replicate
-- REPLICATE |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan
index 3863ad7..7728ac4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan
@@ -11,7 +11,7 @@
join (eq($$47, $$49))
-- HYBRID_HASH_JOIN [$$47][$$49] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$47, $$x] <- test.s
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan
index b2cb6eb..bfad7d4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan
@@ -19,7 +19,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$47])
-- STREAM_PROJECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/rightouterjoin/roj-01-core.1.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/rightouterjoin/roj-01-core.1.plan
index c7857e2..e3fdb41 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/rightouterjoin/roj-01-core.1.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/rightouterjoin/roj-01-core.1.plan
@@ -19,7 +19,7 @@
left outer join (eq($$92, $$91))
-- HYBRID_HASH_JOIN [$$91][$$92] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$91] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$96] <- [$$tenk.getField(0)] project: [$$96, $$91]
-- ASSIGN |PARTITIONED|
exchange
@@ -33,7 +33,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$92] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$98] <- [{"unique1": $$tenk.getField(0), "unique2": $$92}.getField(0)] project: [$$98, $$92]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/rightouterjoin/roj-01-core.2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/rightouterjoin/roj-01-core.2.plan
index e97c004..d7962fe 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/rightouterjoin/roj-01-core.2.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/rightouterjoin/roj-01-core.2.plan
@@ -19,7 +19,7 @@
left outer join (eq($$152, $$151))
-- HYBRID_HASH_JOIN [$$151][$$152] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$151] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$160] <- [$$tenk.getField(0)] project: [$$160, $$151]
-- ASSIGN |PARTITIONED|
exchange
@@ -45,7 +45,7 @@
left outer join (eq($$153, $$152))
-- HYBRID_HASH_JOIN [$$152][$$153] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$152] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$116] <- [{"unique1": $$tenk.getField(0), "unique2": $$152}] project: [$$152, $$116]
-- ASSIGN |PARTITIONED|
exchange
@@ -59,7 +59,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$153] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$124] <- [{"unique1": $$tenk.getField(0), "unique2": $$153}] project: [$$124, $$153]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan
index b9e0186..4962de0 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan
@@ -32,7 +32,7 @@
left outer join (eq($$48, $$37))
-- HYBRID_HASH_JOIN [$$48][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$48] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$c.getField("c_nationkey"), 5)) project: [$$48]
-- STREAM_SELECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan
index 47e9c74..d6eaa24 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan
@@ -28,7 +28,7 @@
left outer join (eq($$52, $$51))
-- HYBRID_HASH_JOIN [$$52][$$51] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$52] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$c.getField("c_nationkey"), 5)) project: [$$52]
-- STREAM_SELECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated_ps.plan
index ef475c2..49a23ac 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated_ps.plan
@@ -40,7 +40,7 @@
left outer join (eq($$52, $$51))
-- HYBRID_HASH_JOIN [$$52][$$51] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$52] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$c.getField("c_nationkey"), 5)) project: [$$52]
-- STREAM_SELECT |PARTITIONED|
exchange
@@ -101,7 +101,7 @@
left outer join (eq($$52, $$51))
-- HYBRID_HASH_JOIN [$$52][$$51] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$52] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$c.getField("c_nationkey"), 5)) project: [$$52]
-- STREAM_SELECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_let_8.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_let_8.plan
index 61c6bfd..c17df62 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_let_8.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_let_8.plan
@@ -46,7 +46,7 @@
order (ASC, $$100) (ASC, $$i1) (ASC, $$103) (ASC, $$99)
-- STABLE_SORT [$$100(ASC), $$i1(ASC), $$103(ASC), $$99(ASC)] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$100, $$i1, $$103, $$99] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$99, $$103] <- [$$i1.getField("ts"), $$i1.getField("pid")]
-- ASSIGN |PARTITIONED|
unnest $$i1 <- scan-collection($$104) project: [$$100, $$107, $$i1]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_ps.plan
index a09a030..9b5ee5a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_ps.plan
@@ -44,7 +44,7 @@
left outer join (eq($$48, $$37))
-- HYBRID_HASH_JOIN [$$48][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$48] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$c.getField("c_nationkey"), 5)) project: [$$48]
-- STREAM_SELECT |PARTITIONED|
exchange
@@ -109,7 +109,7 @@
left outer join (eq($$48, $$37))
-- HYBRID_HASH_JOIN [$$48][$$37] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$48] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$c.getField("c_nationkey"), 5)) project: [$$48]
-- STREAM_SELECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815-2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815-2.plan
index d0edd9f..1a3512e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815-2.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815-2.plan
@@ -36,7 +36,7 @@
left outer join (eq($$83, $$94))
-- HYBRID_HASH_JOIN [$$83][$$94] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$83] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$83, $$87] <- [$$94, $$92] project: [$$83, $$87]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815-3.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815-3.plan
index 0ce602e..f7060b4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815-3.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815-3.plan
@@ -36,7 +36,7 @@
left outer join (eq($$89, $$100))
-- HYBRID_HASH_JOIN [$$89][$$100] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$89] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$89, $$93] <- [$$100, $$98] project: [$$89, $$93]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815.plan
index edd692d..2cef126 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2815.plan
@@ -38,7 +38,7 @@
left outer join (eq($$75, $$87))
-- HYBRID_HASH_JOIN [$$75][$$87] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$75] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$75, $$80] <- [$$87, $$85] project: [$$75, $$80]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2845.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2845.plan
index a5ccde4..7c94844 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2845.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-2845.plan
@@ -33,7 +33,7 @@
left outer join (eq($$296, $$jid))
-- HYBRID_HASH_JOIN [$$296][$$jid] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$296] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$304] <- [$$jds.getField("a")] project: [$$296, $$304]
-- ASSIGN |PARTITIONED|
assign [$$296, $$jds] <- [$$322, $$324] project: [$$296, $$jds]
@@ -119,7 +119,7 @@
left outer join (eq($$322, $$325))
-- HYBRID_HASH_JOIN [$$322][$$325] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$322] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$322])
-- STREAM_PROJECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan
index 1e968a7..7f18e3c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan
@@ -69,7 +69,7 @@
join (eq($$127, $$140))
-- HYBRID_HASH_JOIN [$$127][$$140] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$127] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$126] <- [$$a.getField(8)]
-- ASSIGN |PARTITIONED|
exchange
@@ -107,7 +107,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$131] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$131])
-- STREAM_PROJECT |PARTITIONED|
exchange
@@ -119,7 +119,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$132] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$132])
-- STREAM_PROJECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated-2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated-2.plan
index 32968f9..2457f8f 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated-2.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated-2.plan
@@ -82,27 +82,23 @@
left outer join (eq($$144, $$194))
-- HYBRID_HASH_JOIN [$$144][$$194] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$144] |PARTITIONED|
- project ([$$144])
- -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$144, $$item] <- [$$215, $$212] project: [$$144]
+ -- ASSIGN |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- assign [$$144, $$item] <- [$$215, $$212] project: [$$144, $$item]
- -- ASSIGN |PARTITIONED|
+ replicate
+ -- REPLICATE |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- replicate
- -- REPLICATE |PARTITIONED|
+ unnest-map [$$215, $$212] <- index-search("item", 0, "Default", "tpcds", "item", false, false, 1, $$260, 1, $$261, true, true, true)
+ -- BTREE_SEARCH |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$215, $$212] <- index-search("item", 0, "Default", "tpcds", "item", false, false, 1, $$260, 1, $$261, true, true, true)
- -- BTREE_SEARCH |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- assign [$$260, $$261] <- [1, 1]
- -- ASSIGN |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ assign [$$260, $$261] <- [1, 1]
+ -- ASSIGN |PARTITIONED|
+ empty-tuple-source
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
-- HASH_PARTITION_EXCHANGE [$$194] |PARTITIONED|
assign [$$195, $$137] <- [true, {"$2": $$153}] project: [$$137, $$195, $$194]
@@ -189,19 +185,15 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$215] |PARTITIONED|
- replicate
- -- REPLICATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ unnest-map [$$215, $$212] <- index-search("item", 0, "Default", "tpcds", "item", false, false, 1, $$260, 1, $$261, true, true, true)
+ -- BTREE_SEARCH |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$215, $$212] <- index-search("item", 0, "Default", "tpcds", "item", false, false, 1, $$260, 1, $$261, true, true, true)
- -- BTREE_SEARCH |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- assign [$$260, $$261] <- [1, 1]
- -- ASSIGN |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ assign [$$260, $$261] <- [1, 1]
+ -- ASSIGN |PARTITIONED|
+ empty-tuple-source
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$217, $$216] <- [$$222, $$214] project: [$$217, $$216]
@@ -353,19 +345,15 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$215] |PARTITIONED|
- replicate
- -- REPLICATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ unnest-map [$$215, $$212] <- index-search("item", 0, "Default", "tpcds", "item", false, false, 1, $$260, 1, $$261, true, true, true)
+ -- BTREE_SEARCH |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$215, $$212] <- index-search("item", 0, "Default", "tpcds", "item", false, false, 1, $$260, 1, $$261, true, true, true)
- -- BTREE_SEARCH |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- assign [$$260, $$261] <- [1, 1]
- -- ASSIGN |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ assign [$$260, $$261] <- [1, 1]
+ -- ASSIGN |PARTITIONED|
+ empty-tuple-source
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
-- HASH_PARTITION_EXCHANGE [$$204] |PARTITIONED|
assign [$$205] <- [true]
@@ -448,19 +436,15 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$215] |PARTITIONED|
- replicate
- -- REPLICATE |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ unnest-map [$$215, $$212] <- index-search("item", 0, "Default", "tpcds", "item", false, false, 1, $$260, 1, $$261, true, true, true)
+ -- BTREE_SEARCH |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$215, $$212] <- index-search("item", 0, "Default", "tpcds", "item", false, false, 1, $$260, 1, $$261, true, true, true)
- -- BTREE_SEARCH |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- assign [$$260, $$261] <- [1, 1]
- -- ASSIGN |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ assign [$$260, $$261] <- [1, 1]
+ -- ASSIGN |PARTITIONED|
+ empty-tuple-source
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$217, $$216] <- [$$222, $$214] project: [$$217, $$216]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan
index f06b823..deae518 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan
@@ -82,27 +82,23 @@
left outer join (eq($$154, $$144))
-- HYBRID_HASH_JOIN [$$144][$$154] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$144] |PARTITIONED|
- project ([$$144])
- -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$144, $$item] <- [$$206, $$202] project: [$$144]
+ -- ASSIGN |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- assign [$$144, $$item] <- [$$206, $$202] project: [$$144, $$item]
- -- ASSIGN |PARTITIONED|
+ replicate
+ -- REPLICATE |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- replicate
- -- REPLICATE |PARTITIONED|
+ unnest-map [$$206, $$202] <- index-search("item", 0, "Default", "tpcds", "item", false, false, 1, $$247, 1, $$248, true, true, true)
+ -- BTREE_SEARCH |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$206, $$202] <- index-search("item", 0, "Default", "tpcds", "item", false, false, 1, $$247, 1, $$248, true, true, true)
- -- BTREE_SEARCH |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- assign [$$247, $$248] <- [1, 1]
- -- ASSIGN |PARTITIONED|
- empty-tuple-source
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ assign [$$247, $$248] <- [1, 1]
+ -- ASSIGN |PARTITIONED|
+ empty-tuple-source
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$163, $$154] <- [$$213, $$205] project: [$$163, $$154]
@@ -217,7 +213,7 @@
left outer join (eq($$207, $$206))
-- HYBRID_HASH_JOIN [$$206][$$207] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$206] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
replicate
-- REPLICATE |PARTITIONED|
exchange
@@ -383,7 +379,7 @@
left outer join (eq($$207, $$206))
-- HYBRID_HASH_JOIN [$$206][$$207] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$206] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
replicate
-- REPLICATE |PARTITIONED|
exchange
@@ -506,7 +502,7 @@
left outer join (eq($$207, $$206))
-- HYBRID_HASH_JOIN [$$206][$$207] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$206] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
replicate
-- REPLICATE |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan
index f0a76d2..790176a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan
@@ -137,7 +137,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$151] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$151, $$ca] <- tpcds.customer_address
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -173,7 +173,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$154] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(lt($$dd1.getField(10), 4), eq($$dd1.getField(6), 1900)))
-- STREAM_SELECT |PARTITIONED|
exchange
@@ -217,7 +217,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$154] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(lt($$dd1.getField(10), 4), eq($$dd1.getField(6), 1900)))
-- STREAM_SELECT |PARTITIONED|
exchange
@@ -261,7 +261,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$154] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(lt($$dd1.getField(10), 4), eq($$dd1.getField(6), 1900)))
-- STREAM_SELECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596.plan
index e56b411..b25a6a9 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596.plan
@@ -27,7 +27,7 @@
left outer join (and(eq($$54, $$56), eq($$53, $$55)))
-- HYBRID_HASH_JOIN [$$54, $$53][$$56, $$55] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$54, $$53] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$53, $$54, $$cs1] <- tpcds.catalog_sales
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -35,7 +35,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$56, $$55] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$55, $$56, $$cr1] <- tpcds.catalog_returns
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -43,7 +43,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$i1] <- tpcds.item
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596_ps.plan
index 3b949ce..00fd92c 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1596_ps.plan
@@ -35,7 +35,7 @@
left outer join (and(eq($$54, $$56), eq($$53, $$55)))
-- HYBRID_HASH_JOIN [$$54, $$53][$$56, $$55] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$54, $$53] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$53, $$54, $$cs1] <- tpcds.catalog_sales
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -43,7 +43,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$56, $$55] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$55, $$56, $$cr1] <- tpcds.catalog_returns
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -51,7 +51,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$i1] <- tpcds.item
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -89,7 +89,7 @@
left outer join (and(eq($$54, $$56), eq($$53, $$55)))
-- HYBRID_HASH_JOIN [$$54, $$53][$$56, $$55] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$54, $$53] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$53, $$54, $$cs1] <- tpcds.catalog_sales
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -97,7 +97,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$56, $$55] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$55, $$56, $$cr1] <- tpcds.catalog_returns
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -105,7 +105,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$i1] <- tpcds.item
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan
index 6573c67..6e3a45b 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan
@@ -55,7 +55,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$122] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$123] <- [$$o.getField("o_orderpriority")] project: [$$123, $$122]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_ps.plan
index de36b7c..88bd6b6 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_ps.plan
@@ -67,7 +67,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$122] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$123] <- [$$o.getField("o_orderpriority")] project: [$$123, $$122]
-- ASSIGN |PARTITIONED|
exchange
@@ -149,7 +149,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$122] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$123] <- [$$o.getField("o_orderpriority")] project: [$$123, $$122]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/ASTERIXDB-2402.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/ASTERIXDB-2402.plan
index 6c51839..9bc43fb 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/ASTERIXDB-2402.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/ASTERIXDB-2402.plan
@@ -181,7 +181,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$235] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$265, $$244] <- [true, $$u.getField(0)]
-- ASSIGN |PARTITIONED|
exchange
@@ -253,7 +253,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$235] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$265, $$244] <- [true, $$u.getField(0)]
-- ASSIGN |PARTITIONED|
exchange
@@ -287,7 +287,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$239, $$240] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$253] <- [$$b.getField("BrokerEndPoint")] project: [$$253, $$239, $$240]
-- ASSIGN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/ch2/ch2_q16.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/ch2/ch2_q16.plan
index 3d9f362..b63d642 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/ch2/ch2_q16.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/ch2/ch2_q16.plan
@@ -51,7 +51,7 @@
order (ASC, $$133) (ASC, $$134) [cardinality: 9.223372036854776E16, op-cost: 0.0, total-cost: 2.000015E12]
-- STABLE_SORT [$$133(ASC), $$134(ASC)] |PARTITIONED|
exchange [cardinality: 9.223372036854776E16, op-cost: 0.0, total-cost: 2.000015E12]
- -- HASH_PARTITION_EXCHANGE [$$133, $$134] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$129, $$131, $$132, $$145, $$133, $$134, $$138, $$141]) [cardinality: 9.223372036854776E16, op-cost: 0.0, total-cost: 2.000015E12]
-- STREAM_PROJECT |PARTITIONED|
exchange [cardinality: 9.223372036854776E16, op-cost: 0.0, total-cost: 2.000015E12]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/joins/inner_right_corr.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/joins/inner_right_corr.plan
index 3b990cd..1e2482a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/joins/inner_right_corr.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/joins/inner_right_corr.plan
@@ -32,7 +32,7 @@
left outer join (eq($$76, $$92))
-- HYBRID_HASH_JOIN [$$76][$$92] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$76] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$76])
-- STREAM_PROJECT |PARTITIONED|
exchange
@@ -44,7 +44,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$92] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$93] <- [true]
-- ASSIGN |PARTITIONED|
unnest $$82 <- scan-collection($$83) project: [$$92]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/leftouterjoin/query-ASTERIXDB-2857.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/leftouterjoin/query-ASTERIXDB-2857.plan
index 11c1c97..a652dba 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/leftouterjoin/query-ASTERIXDB-2857.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/leftouterjoin/query-ASTERIXDB-2857.plan
@@ -25,7 +25,7 @@
join (eq($$136, $$137)) [cardinality: 5.0E11, op-cost: 2000000.0, total-cost: 6000000.0]
-- HYBRID_HASH_JOIN [$$136][$$137] |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$136] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$145] <- [$$tenk.getField(0)] project: [$$145, $$136] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
@@ -39,7 +39,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$137] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$146] <- [$$tenk.getField(0)] project: [$$146, $$137] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/nested-index/btree-index-join/ASTERIXDB-2199.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/nested-index/btree-index-join/ASTERIXDB-2199.plan
index efb7ea3..174ee438 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/nested-index/btree-index-join/ASTERIXDB-2199.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/nested-index/btree-index-join/ASTERIXDB-2199.plan
@@ -11,7 +11,7 @@
join (eq($$36, $$37)) [cardinality: 5.0E11, op-cost: 2000000.0, total-cost: 6000000.0]
-- HYBRID_HASH_JOIN [$$36][$$37] |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$36] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$36, $$first] <- Facebook.Friendship [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -19,7 +19,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$37] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$37, $$second] <- Facebook.Friendship [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/nested_loj2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/nested_loj2.plan
index cb92f5a..a64c242 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/nested_loj2.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/nested_loj2.plan
@@ -43,7 +43,7 @@
left outer join (eq($$75, $$71)) [cardinality: 5.0E11, op-cost: 2000000.0, total-cost: 6000000.0]
-- HYBRID_HASH_JOIN [$$71][$$75] |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
- -- HASH_PARTITION_EXCHANGE [$$71] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$71, $$c] <- tpch.Customers [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/q08_group_by.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/q08_group_by.plan
index 898dc72..16de373 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/q08_group_by.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/q08_group_by.plan
@@ -51,7 +51,7 @@
join (eq($$205, $$233)) [cardinality: 5.0E11, op-cost: 2000000.0, total-cost: 6000000.0]
-- HYBRID_HASH_JOIN [$$205][$$233] |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$205] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$242] <- [$$s.getField(3)] project: [$$242, $$205] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/q09_group_by.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/q09_group_by.plan
index 9ff9fad..90ca371 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/q09_group_by.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/q09_group_by.plan
@@ -35,7 +35,7 @@
join (and(eq($$148, $$169), eq($$149, $$154))) [cardinality: 1000000.0, op-cost: 2000000.0, total-cost: 6000000.0]
-- HYBRID_HASH_JOIN [$$148, $$149][$$169, $$154] |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$148, $$149] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$177] <- [$$ps.getField(3)] project: [$$177, $$148, $$149] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
@@ -61,7 +61,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$147] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (contains($$p.getField(1), "green")) project: [$$147] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- STREAM_SELECT |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue3316.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue3316.plan
index 6b739e2..e92ce4a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue3316.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue3316.plan
@@ -57,7 +57,7 @@
left outer join (eq($$193, $$240))
-- HYBRID_HASH_JOIN [$$193][$$240] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$193] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$116] <- [{"x_id": $$T0.getField("x_id")}] project: [$$116, $$193]
-- ASSIGN |PARTITIONED|
exchange
@@ -481,7 +481,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$399] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
replicate
-- REPLICATE |PARTITIONED|
exchange
@@ -921,7 +921,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$399] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
replicate
-- REPLICATE |PARTITIONED|
exchange
@@ -1350,7 +1350,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$399] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
replicate
-- REPLICATE |PARTITIONED|
exchange
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
index 3863ad7..7728ac4 100644
--- 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
@@ -11,7 +11,7 @@
join (eq($$47, $$49))
-- HYBRID_HASH_JOIN [$$47][$$49] |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$47, $$x] <- test.s
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849.plan
index b2cb6eb..bfad7d4 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849.plan
@@ -19,7 +19,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |UNPARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$47])
-- STREAM_PROJECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1580.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1580.plan
index de575ef..f5eba1e 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1580.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1580.plan
@@ -69,7 +69,7 @@
join (eq($$127, $$140)) [cardinality: 5.0E11, op-cost: 2000000.0, total-cost: 6000000.0]
-- HYBRID_HASH_JOIN [$$127][$$140] |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$127] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$126] <- [$$a.getField(8)] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1591.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1591.plan
index 2323d7c..7e6ecad 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1591.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1591.plan
@@ -125,7 +125,7 @@
left outer join (eq($$150, $$167)) [cardinality: 9.223372036854776E16, op-cost: 5.00001E11, total-cost: 1.000009E12]
-- HYBRID_HASH_JOIN [$$150][$$167] |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
- -- HASH_PARTITION_EXCHANGE [$$150] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$161] <- [$$c.getField(4)] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
@@ -165,7 +165,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$154] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(lt($$dd1.getField(10), 4), eq($$dd1.getField(6), 1900))) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- STREAM_SELECT |PARTITIONED|
exchange
@@ -217,7 +217,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$154] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(lt($$dd1.getField(10), 4), eq($$dd1.getField(6), 1900))) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- STREAM_SELECT |PARTITIONED|
exchange
@@ -261,7 +261,7 @@
replicate
-- REPLICATE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$154] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(lt($$dd1.getField(10), 4), eq($$dd1.getField(6), 1900))) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- STREAM_SELECT |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1596.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1596.plan
index 9ec9038..f842d61 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1596.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1596.plan
@@ -27,7 +27,7 @@
left outer join (and(eq($$54, $$56), eq($$53, $$55))) [cardinality: 1000000.0, op-cost: 2000000.0, total-cost: 6000000.0]
-- HYBRID_HASH_JOIN [$$54, $$53][$$56, $$55] |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$54, $$53] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$53, $$54, $$cs1] <- tpcds.catalog_sales [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -35,7 +35,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$56, $$55] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$55, $$56, $$cr1] <- tpcds.catalog_returns [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -43,7 +43,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$i1] <- tpcds.item [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1596_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1596_ps.plan
index 4f93a71..f482266 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1596_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpcds/query-ASTERIXDB-1596_ps.plan
@@ -35,7 +35,7 @@
left outer join (and(eq($$54, $$56), eq($$53, $$55))) [cardinality: 1000000.0, op-cost: 2000000.0, total-cost: 6000000.0]
-- HYBRID_HASH_JOIN [$$54, $$53][$$56, $$55] |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$54, $$53] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$53, $$54, $$cs1] <- tpcds.catalog_sales [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -43,7 +43,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$56, $$55] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$55, $$56, $$cr1] <- tpcds.catalog_returns [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -51,7 +51,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$i1] <- tpcds.item [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -89,7 +89,7 @@
left outer join (and(eq($$54, $$56), eq($$53, $$55))) [cardinality: 1000000.0, op-cost: 2000000.0, total-cost: 6000000.0]
-- HYBRID_HASH_JOIN [$$54, $$53][$$56, $$55] |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$54, $$53] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$53, $$54, $$cs1] <- tpcds.catalog_sales [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -97,7 +97,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange
- -- HASH_PARTITION_EXCHANGE [$$56, $$55] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$55, $$56, $$cr1] <- tpcds.catalog_returns [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
@@ -105,7 +105,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$57] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$57, $$i1] <- tpcds.item [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping.plan
index a7ad1b3..7ad3546 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping.plan
@@ -55,7 +55,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$122] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$123] <- [$$o.getField("o_orderpriority")] project: [$$123, $$122] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping_ps.plan
index 7826b98..268705a 100644
--- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping_ps.plan
+++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/tpch/q12_shipping_ps.plan
@@ -67,7 +67,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$122] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$123] <- [$$o.getField("o_orderpriority")] project: [$$123, $$122] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
@@ -149,7 +149,7 @@
empty-tuple-source
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
- -- HASH_PARTITION_EXCHANGE [$$122] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$123] <- [$$o.getField("o_orderpriority")] project: [$$123, $$122] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/subquery/not_in/not_in.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/subquery/not_in/not_in.1.ddl.sqlpp
index 42c6d28..5a8b93b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/subquery/not_in/not_in.1.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/subquery/not_in/not_in.1.ddl.sqlpp
@@ -53,3 +53,6 @@
CREATE EXTERNAL DATASET Orders(OrderType) USING `localfs`
((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),
(`input-format`=`text-input-format`),(`format`=`delimited-text`),(`delimiter`=`|`));
+
+CREATE COLLECTION CustomersDs PRIMARY KEY(id: uuid) autogenerated;
+CREATE COLLECTION OrdersDs PRIMARY KEY(id: uuid) autogenerated;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/subquery/not_in/not_in.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/subquery/not_in/not_in.2.update.sqlpp
index 7220975..e860897 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/subquery/not_in/not_in.2.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/subquery/not_in/not_in.2.update.sqlpp
@@ -15,4 +15,9 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
- */
\ No newline at end of file
+ */
+
+ USE test;
+
+ UPSERT INTO CustomersDs SELECT VALUE v FROM Customers v;
+ UPSERT INTO OrdersDs SELECT VALUE v FROM Orders v;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/subquery/not_in/not_in.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/subquery/not_in/not_in.4.query.sqlpp
new file mode 100644
index 0000000..e975567
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/subquery/not_in/not_in.4.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT COUNT(c) AS cnt
+FROM CustomersDs c
+WHERE c.c_custkey NOT IN (
+ SELECT VALUE o.o_custkey
+ FROM OrdersDs o
+ );
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.3.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.3.plan
index 5f3e48d..b78f690 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.3.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.3.plan
@@ -33,7 +33,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$38] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$44] <- [$$o.getField(1)] project: [$$44, $$38] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.4.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.4.plan
index 7d72bad..110a1ec 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.4.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.4.plan
@@ -33,7 +33,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$38] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$41] <- [$$o.getField(1)] project: [$$41, $$38] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.5.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.5.plan
index 94fc84c..f348a6f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.5.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.5.plan
@@ -55,7 +55,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$103, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$103, $$109, $$107] [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]
@@ -67,7 +67,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$104] <- [$$c.getField(3)] project: [$$104, $$108] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.6.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.6.plan
index df823ed..396cf3c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.6.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.6.plan
@@ -53,7 +53,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$103, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$103, $$109, $$107] [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]
@@ -65,7 +65,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$104] <- [$$c.getField(3)] project: [$$104, $$108] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.7.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.7.plan
index a6db1e3..f1ea02d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.7.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.7.plan
@@ -53,7 +53,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$104, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$104, $$109, $$107] [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]
@@ -65,7 +65,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$103] <- [$$c.getField(3)] project: [$$103, $$108] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.8.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.8.plan
index 83ac5aa..ba5f71b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.8.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/cardinality-estimation/join-queries/join-queries.8.plan
@@ -31,7 +31,7 @@
join (and(eq($$130, $$128), eq($$131, $$143))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$130, $$131][$$128, $$143] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$130, $$131] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$130] |PARTITIONED|
project ([$$139, $$140, $$130, $$131]) [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]
@@ -55,7 +55,7 @@
join (eq($$123, $$136)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$123][$$136] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$123] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$131] <- [$$c.getField(3)] project: [$$131, $$123] [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]
@@ -95,7 +95,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$127] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$130] <- [$$s.getField(3)] project: [$$130, $$127] [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]
@@ -107,7 +107,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$128, $$143] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$143, $$120] <- [$$128, $$n.getField(1)] project: [$$120, $$128, $$143] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/not-in_every/not-in_every.201.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/not-in_every/not-in_every.201.plan
index d4ae3fa..8d82071 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/not-in_every/not-in_every.201.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/not-in_every/not-in_every.201.plan
@@ -24,7 +24,7 @@
order (ASC, $$20) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STABLE_SORT [$$20(ASC)] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$20] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$d, $$23, $$20]) [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.006.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.006.plan
index 8790751..5f42662 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.006.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.006.plan
@@ -17,7 +17,7 @@
join (eq($$33, $$34)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$33][$$34] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$33] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$33, $$p1] <- test.ColumnDataset1 [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -25,7 +25,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$34] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$34]) [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.008.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.008.plan
index 5bca144..f8e4eb8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.008.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.008.plan
@@ -19,7 +19,7 @@
join (eq($$33, $$34)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$33][$$34] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$33] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$38] <- [$$p1.getField("age")] project: [$$38, $$33] [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]
@@ -31,7 +31,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$34] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$39] <- [$$p2.getField("name")] project: [$$39, $$34] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.004.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.004.plan
index cd1f227..c14f3b8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.004.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.004.plan
@@ -19,7 +19,7 @@
join (eq($$63, $$62)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$62][$$63] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$62] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$62, $$p1] <- test.ColumnDataset [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -27,7 +27,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$63] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$63, $$p2] <- test.RowDataset [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan
index ab03c07..2f0c378 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan
@@ -17,7 +17,7 @@
join (eq($$56, $$58)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$58][$$56] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$58] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$58]) [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.06.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.06.plan
index d107789..b785700 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.06.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.06.plan
@@ -17,7 +17,7 @@
join (and(eq($$43, $$44), eq($$49, $$42))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$43, $$49][$$44, $$42] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$43, $$49] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$49] <- [$$43] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$43]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -31,7 +31,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$44, $$42] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$44] |PARTITIONED|
assign [$$42] <- [$$l.getField(2)] project: [$$44, $$42] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$44, $$l]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan
index 3122528..7b79f3b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan
@@ -17,7 +17,7 @@
left outer join (and(eq($$43, $$44), eq($$56, $$47))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$43, $$56][$$44, $$47] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$43, $$56] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$56] <- [$$43] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$43]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -31,7 +31,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$44, $$47] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$44] |PARTITIONED|
assign [$$47] <- [$$l.getField(2)] project: [$$44, $$47] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$44, $$l]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan
index b00473e..28038e3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan
@@ -17,7 +17,7 @@
join (and(eq($$55, $$59), eq($$56, $$66))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$59, $$56][$$55, $$66] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$59, $$56] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$56, $$59]) [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]
@@ -43,7 +43,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$55, $$66] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$55] |PARTITIONED|
assign [$$66] <- [$$55] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
assign [$$55] <- [$$c.getField(3)] project: [$$55] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/subquery/not_in/not_in.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/subquery/not_in/not_in.2.adm
new file mode 100644
index 0000000..7aa2d6d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/subquery/not_in/not_in.2.adm
@@ -0,0 +1 @@
+{ "cnt": 50 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.04.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.04.plan
index 7e14303..b190f25 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.04.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.04.plan
@@ -68,7 +68,7 @@
left outer join (eq($$207, $$200)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$200][$$207] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$200] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(eq($$p.getField(5), 37), like($$p.getField(4), "%COPPER"))) project: [$$244, $$200] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
assign [$$244] <- [$$p.getField(2)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -100,7 +100,7 @@
join (eq($$207, $$209)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$207][$$209] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$207] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$207]) [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]
@@ -144,7 +144,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$211] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$223] <- [$$s2.getField(3)] project: [$$223, $$211] [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]
@@ -156,7 +156,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$212] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$218] <- [$$n2.getField(2)] project: [$$218, $$212] [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]
@@ -176,7 +176,7 @@
replicate [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- REPLICATE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$213] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$r2.getField(1), "EUROPE")) project: [$$213] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -196,7 +196,7 @@
join (eq($$201, $$204)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$201][$$204] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$201] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$247, $$246, $$245, $$237, $$239, $$225] <- [$$s.getField(6), $$s.getField(4), $$s.getField(2), $$s.getField(5), $$s.getField(1), $$s.getField(3)] project: [$$237, $$239, $$245, $$246, $$247, $$225, $$201] [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]
@@ -228,7 +228,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$205] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$238, $$221] <- [$$n.getField(1), $$n.getField(2)] project: [$$238, $$221, $$205] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
assign [$$205, $$n] <- [$$212, $$n2] project: [$$205, $$n] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -254,7 +254,7 @@
replicate [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- REPLICATE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$213] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$r2.getField(1), "EUROPE")) project: [$$213] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.05.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.05.plan
index 4cc9d0a..e293a81 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.05.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.05.plan
@@ -49,7 +49,7 @@
join (eq($$128, $$136)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$128][$$136] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$128] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$c.getField(6), "BUILDING")) project: [$$128] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.06.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.06.plan
index bb627cd..684b012 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.06.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.06.plan
@@ -61,7 +61,7 @@
left outer join (eq($$79, $$77)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$77][$$79] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$77] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(ge($$76, "1996-05-01"), lt($$76, "1996-08-01"))) project: [$$75, $$77] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
assign [$$75, $$76] <- [$$o.getField(5), $$o.getField(4)] project: [$$77, $$75, $$76] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.07.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.07.plan
index 521c4a5..6361d58 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.07.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.07.plan
@@ -51,7 +51,7 @@
join (and(eq($$153, $$154), eq($$170, $$159))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$153, $$170][$$154, $$159] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$153, $$170] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$170] |PARTITIONED|
project ([$$173, $$174, $$153, $$170]) [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]
@@ -67,7 +67,7 @@
join (eq($$155, $$167)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$155][$$167] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$155] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$153] <- [$$c.getField(3)] project: [$$153, $$155] [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]
@@ -107,7 +107,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$154, $$159] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$154] <- [$$s.getField(3)] project: [$$154, $$159] [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]
@@ -119,7 +119,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$160] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$150, $$163] <- [$$n.getField(1), $$n.getField(2)] project: [$$150, $$163, $$160] [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]
@@ -131,7 +131,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$161] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$r.getField(1), "AFRICA")) project: [$$161] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.08.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.08.plan
index e869062..edc33ee 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.08.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.08.plan
@@ -65,7 +65,7 @@
join (eq($$193, $$204)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$193][$$204] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$193] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$205] <- [$$s.getField(3)] project: [$$205, $$193] [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]
@@ -93,7 +93,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$196] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$210] <- [$$o.getField(1)] project: [$$210, $$196] [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]
@@ -105,7 +105,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$197] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$201] <- [$$c.getField(3)] project: [$$201, $$197] [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]
@@ -121,7 +121,7 @@
replicate [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- REPLICATE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$198] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$191] <- [$$n1.getField(1)] project: [$$191, $$198] [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]
@@ -141,7 +141,7 @@
replicate [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- REPLICATE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$198] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$191] <- [$$n1.getField(1)] project: [$$191, $$198] [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]
@@ -151,4 +151,4 @@
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|
\ No newline at end of file
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.09.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.09.plan
index 0ad796d..62d4240 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.09.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.09.plan
@@ -73,7 +73,7 @@
join (and(eq($$202, $$221), eq($$203, $$223))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$202, $$203][$$221, $$223] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$202, $$203] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
join (true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_LOOP |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -101,7 +101,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$221, $$223] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$221] |PARTITIONED|
assign [$$231, $$230, $$223, $$221] <- [$$l.getField(6), $$l.getField(5), $$l.getField(2), $$l.getField(1)] project: [$$230, $$231, $$205, $$221, $$223] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$205, $$l]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -115,7 +115,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$206] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(ge($$201, "1995-01-01"), le($$201, "1996-12-31"))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
assign [$$226, $$201] <- [$$o.getField(1), $$o.getField(4)] project: [$$206, $$226, $$201] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -129,7 +129,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$207] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$218] <- [$$c.getField(3)] project: [$$218, $$207] [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]
@@ -141,7 +141,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$208] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$212] <- [$$n1.getField(2)] project: [$$212, $$208] [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]
@@ -157,7 +157,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$209] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$232] <- [$$n2.getField(1)] project: [$$232, $$209] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
assign [$$209, $$n2] <- [$$208, $$n1] project: [$$209, $$n2] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -175,7 +175,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$210] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$r.getField(1), "AMERICA")) project: [$$210] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.10.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.10.plan
index 06b0977..8f3d103 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.10.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.10.plan
@@ -39,7 +39,7 @@
join (and(eq($$130, $$128), eq($$129, $$125))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$130, $$129][$$128, $$125] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$130, $$129] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
join (true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_LOOP |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -67,7 +67,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$128, $$125] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$125] |PARTITIONED|
assign [$$128, $$125] <- [$$l.getField(2), $$l.getField(1)] project: [$$132, $$128, $$125] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$132, $$l]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -81,7 +81,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$135, $$134] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$134] |PARTITIONED|
project ([$$134, $$135]) [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]
@@ -93,7 +93,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$136] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$136]) [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]
@@ -105,7 +105,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$137] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$137]) [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.11.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.11.plan
index e0ee9d6..490d849 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.11.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/tpch/query-plans/query-plans.11.plan
@@ -57,7 +57,7 @@
join (eq($$195, $$206)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$195][$$206] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$195] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$192, $$191, $$189, $$188, $$187, $$201] <- [$$c.getField(7), $$c.getField(2), $$c.getField(4), $$c.getField(5), $$c.getField(1), $$c.getField(3)] project: [$$195, $$187, $$188, $$189, $$191, $$192, $$201] [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]
@@ -99,7 +99,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$199] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$190] <- [$$n.getField(1)] project: [$$190, $$199] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/cardinality-estimation/join-queries/join-queries.8.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/cardinality-estimation/join-queries/join-queries.8.plan
index 17e8018..076b55a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/cardinality-estimation/join-queries/join-queries.8.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/cardinality-estimation/join-queries/join-queries.8.plan
@@ -69,7 +69,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$128] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$120] <- [$$n.getField(1)] project: [$$120, $$128] [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]
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 d4ae3fa..8d82071 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
@@ -24,7 +24,7 @@
order (ASC, $$20) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STABLE_SORT [$$20(ASC)] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$20] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$d, $$23, $$20]) [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.006.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.006.plan
index 3d196fc..fabbd7c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.006.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/column/pushdown/field-access-pushdown/field-access-pushdown.006.plan
@@ -17,7 +17,7 @@
join (eq($$33, $$34)) [cardinality: 7.0, op-cost: 14.0, total-cost: 42.0]
-- HYBRID_HASH_JOIN [$$33][$$34] |PARTITIONED|
exchange [cardinality: 7.0, op-cost: 7.0, total-cost: 14.0]
- -- HASH_PARTITION_EXCHANGE [$$33] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$33, $$p1] <- test.ColumnDataset1 [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]
@@ -25,7 +25,7 @@
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 [$$34] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$34]) [cardinality: 7.0, op-cost: 0.0, total-cost: 7.0]
-- STREAM_PROJECT |PARTITIONED|
exchange [cardinality: 7.0, op-cost: 7.0, total-cost: 14.0]
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 373f85d..569bb8d 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
@@ -19,7 +19,7 @@
join (eq($$33, $$34)) [cardinality: 2.1, 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|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$39] <- [$$p2.getField("name")] project: [$$39, $$34] [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]
@@ -31,7 +31,7 @@
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|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$38] <- [$$p1.getField("age")] project: [$$38, $$33] [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]
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 90cfae5..8666952 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
@@ -19,7 +19,7 @@
join (eq($$63, $$62)) [cardinality: 2.1, op-cost: 4.0, total-cost: 12.0]
-- HYBRID_HASH_JOIN [$$62][$$63] |PARTITIONED|
exchange [cardinality: 2.0, op-cost: 2.0, total-cost: 4.0]
- -- HASH_PARTITION_EXCHANGE [$$62] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$62, $$p1] <- test.ColumnDataset [cardinality: 2.0, op-cost: 2.0, total-cost: 2.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -27,7 +27,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 2.0, op-cost: 2.0, total-cost: 4.0]
- -- HASH_PARTITION_EXCHANGE [$$63] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
data-scan []<-[$$63, $$p2] <- test.RowDataset [cardinality: 2.0, op-cost: 2.0, total-cost: 2.0]
-- DATASOURCE_SCAN |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan
index 866663f..ad51e05 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan
@@ -17,7 +17,7 @@
left outer join (and(eq($$43, $$44), eq($$56, $$47))) [cardinality: 6016.3, op-cost: 7512.06, total-cost: 22529.12]
-- HYBRID_HASH_JOIN [$$43, $$56][$$44, $$47] |PARTITIONED|
exchange [cardinality: 1500.0, op-cost: 0.0, total-cost: 1500.0]
- -- HASH_PARTITION_EXCHANGE [$$43, $$56] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$56] <- [$$43] [cardinality: 1500.0, op-cost: 0.0, total-cost: 1500.0]
-- ASSIGN |PARTITIONED|
project ([$$43]) [cardinality: 1500.0, op-cost: 0.0, total-cost: 1500.0]
@@ -31,7 +31,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$44, $$47] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$44] |PARTITIONED|
assign [$$47] <- [$$l.getField(2)] project: [$$44, $$47] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$44, $$l]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.04.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.04.plan
index 1bb950f..550638c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.04.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.04.plan
@@ -66,7 +66,7 @@
join (and(eq($$218, $$213), eq($$223, $$212))) [cardinality: 29.05, op-cost: 172.16, total-cost: 264469.8]
-- HYBRID_HASH_JOIN [$$213, $$223][$$218, $$212] |PARTITIONED|
exchange [cardinality: 987.0, op-cost: 147.16, total-cost: 1147.16]
- -- HASH_PARTITION_EXCHANGE [$$213, $$223] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$223] |PARTITIONED|
assign [$$223] <- [$$s2.getField(3)] project: [$$244, $$208, $$200, $$213, $$223] [cardinality: 987.0, op-cost: 0.0, total-cost: 1000.0]
-- ASSIGN |PARTITIONED|
project ([$$208, $$213, $$244, $$200, $$s2]) [cardinality: 987.0, op-cost: 0.0, total-cost: 1000.0]
@@ -154,7 +154,7 @@
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: 50.0]
- -- HASH_PARTITION_EXCHANGE [$$218, $$212] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$218] <- [$$n2.getField(2)] project: [$$218, $$212] [cardinality: 25.0, op-cost: 0.0, total-cost: 25.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 25.0, op-cost: 25.0, total-cost: 50.0]
@@ -210,7 +210,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 25.0, op-cost: 0.0, total-cost: 25.0]
- -- HASH_PARTITION_EXCHANGE [$$205] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$238, $$221] <- [$$n.getField(1), $$n.getField(2)] project: [$$238, $$221, $$205] [cardinality: 25.0, op-cost: 0.0, total-cost: 25.0]
-- ASSIGN |PARTITIONED|
assign [$$205, $$n] <- [$$212, $$n2] project: [$$205, $$n] [cardinality: 25.0, op-cost: 0.0, total-cost: 25.0]
@@ -228,7 +228,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 5.0]
- -- HASH_PARTITION_EXCHANGE [$$206] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$206] <- [$$213] project: [$$206] [cardinality: 1.0, op-cost: 0.0, total-cost: 5.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 1.0, op-cost: 0.0, total-cost: 5.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.06.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.06.plan
index e7c52a5..56f1a04 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.06.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.06.plan
@@ -61,7 +61,7 @@
left outer join (eq($$79, $$77)) [cardinality: 15928.9, op-cost: 382625.54, total-cost: 1515823.09]
-- HYBRID_HASH_JOIN [$$77][$$79] |PARTITIONED|
exchange [cardinality: 6349.95, op-cost: 0.0, total-cost: 150000.0]
- -- HASH_PARTITION_EXCHANGE [$$77] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(ge($$76, "1996-05-01"), lt($$76, "1996-08-01"))) project: [$$75, $$77] [cardinality: 6349.95, op-cost: 0.0, total-cost: 150000.0]
-- STREAM_SELECT |PARTITIONED|
assign [$$75, $$76] <- [$$o.getField(5), $$o.getField(4)] project: [$$77, $$75, $$76] [cardinality: 150000.0, op-cost: 0.0, total-cost: 150000.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.08.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.08.plan
index 0c0f2e9..bc72f57 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.08.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.08.plan
@@ -37,7 +37,7 @@
join (and(eq($$201, $$199), eq($$197, $$210))) [cardinality: 552.41, op-cost: 28797.6, total-cost: 980731.73]
-- HYBRID_HASH_JOIN [$$199, $$210][$$201, $$197] |PARTITIONED|
exchange [cardinality: 150141.11, op-cost: 13783.49, total-cost: 163783.49]
- -- HASH_PARTITION_EXCHANGE [$$199, $$210] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$210] |PARTITIONED|
assign [$$210] <- [$$o.getField(1)] project: [$$191, $$192, $$211, $$212, $$190, $$199, $$210] [cardinality: 150141.11, op-cost: 0.0, total-cost: 150000.0]
-- ASSIGN |PARTITIONED|
project ([$$212, $$211, $$190, $$191, $$192, $$199, $$o]) [cardinality: 150141.11, op-cost: 0.0, total-cost: 150000.0]
@@ -135,7 +135,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 15000.0, op-cost: 15014.11, total-cost: 30014.11]
- -- HASH_PARTITION_EXCHANGE [$$201, $$197] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$201] <- [$$c.getField(3)] project: [$$201, $$197] [cardinality: 15000.0, op-cost: 0.0, total-cost: 15000.0]
-- ASSIGN |PARTITIONED|
exchange [cardinality: 15000.0, op-cost: 15014.11, total-cost: 30014.11]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.10.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.10.plan
index 5013a2b..243ba7d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.10.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/tpch/query-plans/query-plans.10.plan
@@ -89,7 +89,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$130] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$138] <- [$$s.getField(3)] project: [$$130, $$138] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.3.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.3.plan
index 74ee098..5f4ef60 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.3.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.3.plan
@@ -33,7 +33,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$38] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$44] <- [$$o.getField(1)] project: [$$44, $$38] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.4.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.4.plan
index b201286..82c32b2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.4.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.4.plan
@@ -33,7 +33,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$38] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$41] <- [$$o.getField(1)] project: [$$41, $$38] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.5.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.5.plan
index dc90a31..26f4a91 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.5.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.5.plan
@@ -55,7 +55,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$103, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$103, $$109, $$107] [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]
@@ -67,7 +67,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$104] <- [$$c.getField(3)] project: [$$104, $$108] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.6.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.6.plan
index 65a2966..20a527e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.6.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.6.plan
@@ -53,7 +53,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$103, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$103, $$109, $$107] [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]
@@ -65,7 +65,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$104] <- [$$c.getField(3)] project: [$$104, $$108] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.7.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.7.plan
index ba12809..0e6b979 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.7.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.7.plan
@@ -53,7 +53,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$104, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$104, $$109, $$107] [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]
@@ -65,7 +65,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$103] <- [$$c.getField(3)] project: [$$103, $$108] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.8.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.8.plan
index b3c4de2..61bc4f0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.8.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/cardinality-estimation/join-queries/join-queries.8.plan
@@ -31,7 +31,7 @@
join (and(eq($$130, $$128), eq($$131, $$143))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$130, $$131][$$128, $$143] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$130, $$131] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$130] |PARTITIONED|
project ([$$139, $$140, $$130, $$131]) [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]
@@ -55,7 +55,7 @@
join (eq($$123, $$136)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$123][$$136] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$123] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$131] <- [$$c.getField(3)] project: [$$131, $$123] [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]
@@ -95,7 +95,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$127] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$130] <- [$$s.getField(3)] project: [$$130, $$127] [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]
@@ -107,7 +107,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$128, $$143] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$143, $$120] <- [$$128, $$n.getField(1)] project: [$$120, $$128, $$143] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan
index a3ad366..9f6988e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.04.plan
@@ -17,7 +17,7 @@
join (eq($$56, $$58)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$58][$$56] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$58] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$58]) [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.06.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.06.plan
index e3f4ed4..67912a0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.06.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.06.plan
@@ -17,7 +17,7 @@
join (and(eq($$43, $$44), eq($$49, $$42))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$43, $$49][$$44, $$42] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$43, $$49] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$49] <- [$$43] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$43]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -31,7 +31,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$44, $$42] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$44] |PARTITIONED|
assign [$$42] <- [$$l.getField(2)] project: [$$44, $$42] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$44, $$l]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan
index dd677dc..d400426 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.08.plan
@@ -17,7 +17,7 @@
left outer join (and(eq($$43, $$44), eq($$56, $$47))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$43, $$56][$$44, $$47] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$43, $$56] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$56] <- [$$43] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$43]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -31,7 +31,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$44, $$47] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$44] |PARTITIONED|
assign [$$47] <- [$$l.getField(2)] project: [$$44, $$47] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$44, $$l]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan
index 6097059..f7a763f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan
@@ -17,7 +17,7 @@
join (and(eq($$55, $$59), eq($$56, $$66))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$59, $$56][$$55, $$66] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$59, $$56] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$56, $$59]) [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]
@@ -43,7 +43,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$55, $$66] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$55] |PARTITIONED|
assign [$$66] <- [$$55] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
assign [$$55] <- [$$c.getField(3)] project: [$$55] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.04.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.04.plan
index 757b580..bdc6d6c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.04.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.04.plan
@@ -68,7 +68,7 @@
left outer join (eq($$207, $$200)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$200][$$207] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$200] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(eq($$p.getField(5), 37), like($$p.getField(4), "%COPPER"))) project: [$$244, $$200] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
assign [$$244] <- [$$p.getField(2)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -100,7 +100,7 @@
join (eq($$207, $$209)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$207][$$209] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$207] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$207]) [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]
@@ -144,7 +144,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$211] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$223] <- [$$s2.getField(3)] project: [$$223, $$211] [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]
@@ -156,7 +156,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$212] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$218] <- [$$n2.getField(2)] project: [$$218, $$212] [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]
@@ -176,7 +176,7 @@
replicate [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- REPLICATE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$213] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$r2.getField(1), "EUROPE")) project: [$$213] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -196,7 +196,7 @@
join (eq($$201, $$204)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$201][$$204] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$201] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$247, $$246, $$245, $$237, $$239, $$225] <- [$$s.getField(6), $$s.getField(4), $$s.getField(2), $$s.getField(5), $$s.getField(1), $$s.getField(3)] project: [$$237, $$239, $$245, $$246, $$247, $$225, $$201] [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]
@@ -228,7 +228,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$205] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$238, $$221] <- [$$n.getField(1), $$n.getField(2)] project: [$$238, $$221, $$205] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
assign [$$205, $$n] <- [$$212, $$n2] project: [$$205, $$n] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -254,7 +254,7 @@
replicate [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- REPLICATE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$213] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$r2.getField(1), "EUROPE")) project: [$$213] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.05.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.05.plan
index 9612d1f..52e9196 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.05.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.05.plan
@@ -49,7 +49,7 @@
join (eq($$128, $$136)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$128][$$136] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$128] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$c.getField(6), "BUILDING")) project: [$$128] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.06.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.06.plan
index 42ea92f..0104c84 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.06.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.06.plan
@@ -61,7 +61,7 @@
left outer join (eq($$79, $$77)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$77][$$79] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$77] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(ge($$76, "1996-05-01"), lt($$76, "1996-08-01"))) project: [$$75, $$77] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
assign [$$75, $$76] <- [$$o.getField(5), $$o.getField(4)] project: [$$77, $$75, $$76] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.07.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.07.plan
index 0b3a58b..d2a9978 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.07.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.07.plan
@@ -51,7 +51,7 @@
join (and(eq($$153, $$154), eq($$170, $$159))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$153, $$170][$$154, $$159] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$153, $$170] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$170] |PARTITIONED|
project ([$$173, $$174, $$153, $$170]) [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]
@@ -67,7 +67,7 @@
join (eq($$155, $$167)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$155][$$167] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$155] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$153] <- [$$c.getField(3)] project: [$$153, $$155] [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]
@@ -107,7 +107,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$154, $$159] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$154] <- [$$s.getField(3)] project: [$$154, $$159] [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]
@@ -119,7 +119,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$160] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$150, $$163] <- [$$n.getField(1), $$n.getField(2)] project: [$$150, $$163, $$160] [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]
@@ -131,7 +131,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$161] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$r.getField(1), "AFRICA")) project: [$$161] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.08.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.08.plan
index 7bfd7d0..4e29782 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.08.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.08.plan
@@ -65,7 +65,7 @@
join (eq($$193, $$204)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$193][$$204] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$193] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$205] <- [$$s.getField(3)] project: [$$205, $$193] [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]
@@ -93,7 +93,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$196] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$210] <- [$$o.getField(1)] project: [$$210, $$196] [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]
@@ -105,7 +105,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$197] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$201] <- [$$c.getField(3)] project: [$$201, $$197] [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]
@@ -121,7 +121,7 @@
replicate [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- REPLICATE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$198] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$191] <- [$$n1.getField(1)] project: [$$191, $$198] [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]
@@ -141,7 +141,7 @@
replicate [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- REPLICATE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$198] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$191] <- [$$n1.getField(1)] project: [$$191, $$198] [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]
@@ -151,4 +151,4 @@
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|
\ No newline at end of file
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.09.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.09.plan
index 0b918a8..f9dc623 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.09.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.09.plan
@@ -73,7 +73,7 @@
join (and(eq($$202, $$221), eq($$203, $$223))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$202, $$203][$$221, $$223] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$202, $$203] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
join (true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_LOOP |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -101,7 +101,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$221, $$223] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$221] |PARTITIONED|
assign [$$231, $$230, $$223, $$221] <- [$$l.getField(6), $$l.getField(5), $$l.getField(2), $$l.getField(1)] project: [$$230, $$231, $$205, $$221, $$223] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$205, $$l]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -115,7 +115,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$206] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (and(ge($$201, "1995-01-01"), le($$201, "1996-12-31"))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
assign [$$226, $$201] <- [$$o.getField(1), $$o.getField(4)] project: [$$206, $$226, $$201] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -129,7 +129,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$207] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$218] <- [$$c.getField(3)] project: [$$218, $$207] [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]
@@ -141,7 +141,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$208] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$212] <- [$$n1.getField(2)] project: [$$212, $$208] [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]
@@ -157,7 +157,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$209] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$232] <- [$$n2.getField(1)] project: [$$232, $$209] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
assign [$$209, $$n2] <- [$$208, $$n1] project: [$$209, $$n2] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -175,7 +175,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$210] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
select (eq($$r.getField(1), "AMERICA")) project: [$$210] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_SELECT |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.10.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.10.plan
index e0fc455..9f760db 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.10.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.10.plan
@@ -39,7 +39,7 @@
join (and(eq($$130, $$128), eq($$129, $$125))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$130, $$129][$$128, $$125] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$130, $$129] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
join (true) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- NESTED_LOOP |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -67,7 +67,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$128, $$125] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$125] |PARTITIONED|
assign [$$128, $$125] <- [$$l.getField(2), $$l.getField(1)] project: [$$132, $$128, $$125] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- ASSIGN |PARTITIONED|
project ([$$132, $$l]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
@@ -81,7 +81,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$135, $$134] |PARTITIONED|
+ -- HASH_PARTITION_EXCHANGE [$$134] |PARTITIONED|
project ([$$134, $$135]) [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]
@@ -93,7 +93,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$136] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$136]) [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]
@@ -105,7 +105,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$137] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
project ([$$137]) [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.11.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.11.plan
index cf33f7b..a2341d1 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.11.plan
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_column/tpch/query-plans/query-plans.11.plan
@@ -57,7 +57,7 @@
join (eq($$195, $$206)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- HYBRID_HASH_JOIN [$$195][$$206] |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$195] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$192, $$191, $$189, $$188, $$187, $$201] <- [$$c.getField(7), $$c.getField(2), $$c.getField(4), $$c.getField(5), $$c.getField(1), $$c.getField(3)] project: [$$195, $$187, $$188, $$189, $$191, $$192, $$201] [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]
@@ -99,7 +99,7 @@
empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
-- EMPTY_TUPLE_SOURCE |PARTITIONED|
exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- HASH_PARTITION_EXCHANGE [$$199] |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
assign [$$190] <- [$$n.getField(1)] project: [$$190, $$199] [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]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.3.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.3.plan
new file mode 100644
index 0000000..5f3e48d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.3.plan
@@ -0,0 +1,46 @@
+distribute result [$$35] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ distinct ([$$35]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- PRE_SORTED_DISTINCT_BY |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ order (ASC, $$35) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STABLE_SORT [$$35(ASC)] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$35] |PARTITIONED|
+ assign [$$35] <- [{"l_linenumber": $$37, "l_partkey": $$43, "o_custkey": $$44}] project: [$$35] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$37, $$43, $$44]) [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|
+ join (eq($$36, $$38)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$36][$$38] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$36] |PARTITIONED|
+ select (gt($$l.getField(4), 10)) project: [$$37, $$43, $$36] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STREAM_SELECT |PARTITIONED|
+ assign [$$43] <- [$$l.getField(1)] [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 []<-[$$36, $$37, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$38] |PARTITIONED|
+ assign [$$44] <- [$$o.getField(1)] project: [$$44, $$38] [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 []<-[$$38, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_full_parallelism/cardinality-estimation/join-queries/join-queries.4.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.4.plan
new file mode 100644
index 0000000..7d72bad
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.4.plan
@@ -0,0 +1,46 @@
+distribute result [$$34] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ distinct ([$$34]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- PRE_SORTED_DISTINCT_BY |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ order (ASC, $$34) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STABLE_SORT [$$34(ASC)] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$34] |PARTITIONED|
+ assign [$$34] <- [{"l_orderkey": $$36, "o_custkey": $$41}] project: [$$34] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$36, $$41]) [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|
+ join (eq($$36, $$38)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$36][$$38] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$36] |PARTITIONED|
+ select (gt($$l.getField(1), 5)) project: [$$36] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STREAM_SELECT |PARTITIONED|
+ project ([$$36, $$l]) [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 []<-[$$36, $$37, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$38] |PARTITIONED|
+ assign [$$41] <- [$$o.getField(1)] project: [$$41, $$38] [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 []<-[$$38, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_full_parallelism/cardinality-estimation/join-queries/join-queries.5.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.5.plan
new file mode 100644
index 0000000..94fc84c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.5.plan
@@ -0,0 +1,80 @@
+distribute result [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$101] <- [{"$1": $$111}] project: [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$111]) [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|
+ group by ([$$l_partkey := $$115; $$o_orderstatus := $$116; $$c_nationkey := $$117]) decor ([]) {
+ aggregate [$$111] <- [agg-sql-sum($$114)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$115, $$116, $$117] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$115, $$116, $$117] |PARTITIONED|
+ group by ([$$115 := $$102; $$116 := $$103; $$117 := $$104]) decor ([]) {
+ aggregate [$$114] <- [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$102, $$103, $$104] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ project ([$$102, $$103, $$104]) [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|
+ join (eq($$109, $$108)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$109][$$108] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$109] |PARTITIONED|
+ project ([$$102, $$103, $$109]) [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|
+ join (eq($$105, $$107)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$105][$$107] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$105] |PARTITIONED|
+ assign [$$102] <- [$$l.getField(1)] project: [$$102, $$105] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$105, $$l]) [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 []<-[$$105, $$106, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ assign [$$103, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$103, $$109, $$107] [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 []<-[$$107, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ assign [$$104] <- [$$c.getField(3)] project: [$$104, $$108] [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 []<-[$$108, $$c] <- tpch.Customer [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_full_parallelism/cardinality-estimation/join-queries/join-queries.6.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.6.plan
new file mode 100644
index 0000000..df823ed
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.6.plan
@@ -0,0 +1,78 @@
+distribute result [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$101] <- [{"$1": $$111}] project: [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$111]) [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|
+ group by ([$$l_linenumber := $$115; $$o_orderstatus := $$116; $$c_nationkey := $$117]) decor ([]) {
+ aggregate [$$111] <- [agg-sql-sum($$114)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$115, $$116, $$117] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$115, $$116, $$117] |PARTITIONED|
+ group by ([$$115 := $$106; $$116 := $$103; $$117 := $$104]) decor ([]) {
+ aggregate [$$114] <- [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$106, $$103, $$104] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ project ([$$106, $$103, $$104]) [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|
+ join (eq($$109, $$108)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$109][$$108] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$109] |PARTITIONED|
+ project ([$$106, $$103, $$109]) [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|
+ join (eq($$105, $$107)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$105][$$107] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$105] |PARTITIONED|
+ project ([$$106, $$105]) [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 []<-[$$105, $$106, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ assign [$$103, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$103, $$109, $$107] [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 []<-[$$107, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ assign [$$104] <- [$$c.getField(3)] project: [$$104, $$108] [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 []<-[$$108, $$c] <- tpch.Customer [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_full_parallelism/cardinality-estimation/join-queries/join-queries.7.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.7.plan
new file mode 100644
index 0000000..a6db1e3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.7.plan
@@ -0,0 +1,78 @@
+distribute result [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$101] <- [{"$1": $$111}] project: [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$111]) [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|
+ group by ([$$l_linenumber := $$115; $$c_nationkey := $$116; $$o_orderstatus := $$117]) decor ([]) {
+ aggregate [$$111] <- [agg-sql-sum($$114)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$115, $$116, $$117] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$115, $$116, $$117] |PARTITIONED|
+ group by ([$$115 := $$106; $$116 := $$103; $$117 := $$104]) decor ([]) {
+ aggregate [$$114] <- [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$106, $$103, $$104] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ project ([$$106, $$103, $$104]) [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|
+ join (eq($$109, $$108)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$109][$$108] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$109] |PARTITIONED|
+ project ([$$106, $$104, $$109]) [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|
+ join (eq($$105, $$107)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$105][$$107] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$105] |PARTITIONED|
+ project ([$$106, $$105]) [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 []<-[$$105, $$106, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ assign [$$104, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$104, $$109, $$107] [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 []<-[$$107, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ assign [$$103] <- [$$c.getField(3)] project: [$$103, $$108] [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 []<-[$$108, $$c] <- tpch.Customer [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_full_parallelism/cardinality-estimation/join-queries/join-queries.8.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.8.plan
new file mode 100644
index 0000000..83ac5aa
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/cardinality-estimation/join-queries/join-queries.8.plan
@@ -0,0 +1,120 @@
+distribute result [$$119] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$119] <- [{"n_name": $$n_name, "revenue": $$132}] project: [$$119] [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|
+ group by ([$$n_name := $$142]) decor ([]) {
+ aggregate [$$132] <- [agg-global-sql-sum($$141)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$142] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$142] |PARTITIONED|
+ group by ([$$142 := $$120]) decor ([]) {
+ aggregate [$$141] <- [agg-local-sql-sum(numeric-multiply($$139, numeric-subtract(1, $$140)))] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$120] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ project ([$$139, $$140, $$120]) [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|
+ join (and(eq($$130, $$128), eq($$131, $$143))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$130, $$131][$$128, $$143] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$130, $$131] |PARTITIONED|
+ project ([$$139, $$140, $$130, $$131]) [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|
+ join (eq($$133, $$127)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$133][$$127] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$133] |PARTITIONED|
+ project ([$$139, $$140, $$131, $$133]) [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|
+ join (eq($$125, $$124)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$124][$$125] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$124] |PARTITIONED|
+ project ([$$131, $$124]) [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|
+ join (eq($$123, $$136)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$123][$$136] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$123] |PARTITIONED|
+ assign [$$131] <- [$$c.getField(3)] project: [$$131, $$123] [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 []<-[$$123, $$c] <- tpch.Customer [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$136] |PARTITIONED|
+ select (and(lt($$121, "1994-01-01"), ge($$121, "1993-01-01"))) project: [$$124, $$136] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STREAM_SELECT |PARTITIONED|
+ assign [$$136, $$121] <- [$$o.getField(1), $$o.getField(4)] project: [$$124, $$136, $$121] [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 []<-[$$124, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$125] |PARTITIONED|
+ assign [$$140, $$139, $$133] <- [$$l.getField(6), $$l.getField(5), $$l.getField(2)] project: [$$139, $$140, $$133, $$125] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$125, $$l]) [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 []<-[$$125, $$126, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$127] |PARTITIONED|
+ assign [$$130] <- [$$s.getField(3)] project: [$$130, $$127] [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 []<-[$$127, $$s] <- tpch.Supplier [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$128, $$143] |PARTITIONED|
+ assign [$$143, $$120] <- [$$128, $$n.getField(1)] project: [$$120, $$128, $$143] [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 []<-[$$128, $$n] <- tpch.Nation [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_less_parallelism/cardinality-estimation/join-queries/join-queries.3.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.3.plan
new file mode 100644
index 0000000..5f3e48d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.3.plan
@@ -0,0 +1,46 @@
+distribute result [$$35] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ distinct ([$$35]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- PRE_SORTED_DISTINCT_BY |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ order (ASC, $$35) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STABLE_SORT [$$35(ASC)] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$35] |PARTITIONED|
+ assign [$$35] <- [{"l_linenumber": $$37, "l_partkey": $$43, "o_custkey": $$44}] project: [$$35] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$37, $$43, $$44]) [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|
+ join (eq($$36, $$38)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$36][$$38] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$36] |PARTITIONED|
+ select (gt($$l.getField(4), 10)) project: [$$37, $$43, $$36] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STREAM_SELECT |PARTITIONED|
+ assign [$$43] <- [$$l.getField(1)] [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 []<-[$$36, $$37, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$38] |PARTITIONED|
+ assign [$$44] <- [$$o.getField(1)] project: [$$44, $$38] [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 []<-[$$38, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_less_parallelism/cardinality-estimation/join-queries/join-queries.4.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.4.plan
new file mode 100644
index 0000000..7d72bad
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.4.plan
@@ -0,0 +1,46 @@
+distribute result [$$34] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ distinct ([$$34]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- PRE_SORTED_DISTINCT_BY |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ order (ASC, $$34) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STABLE_SORT [$$34(ASC)] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$34] |PARTITIONED|
+ assign [$$34] <- [{"l_orderkey": $$36, "o_custkey": $$41}] project: [$$34] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$36, $$41]) [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|
+ join (eq($$36, $$38)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$36][$$38] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$36] |PARTITIONED|
+ select (gt($$l.getField(1), 5)) project: [$$36] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STREAM_SELECT |PARTITIONED|
+ project ([$$36, $$l]) [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 []<-[$$36, $$37, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$38] |PARTITIONED|
+ assign [$$41] <- [$$o.getField(1)] project: [$$41, $$38] [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 []<-[$$38, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_less_parallelism/cardinality-estimation/join-queries/join-queries.5.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.5.plan
new file mode 100644
index 0000000..94fc84c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.5.plan
@@ -0,0 +1,80 @@
+distribute result [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$101] <- [{"$1": $$111}] project: [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$111]) [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|
+ group by ([$$l_partkey := $$115; $$o_orderstatus := $$116; $$c_nationkey := $$117]) decor ([]) {
+ aggregate [$$111] <- [agg-sql-sum($$114)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$115, $$116, $$117] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$115, $$116, $$117] |PARTITIONED|
+ group by ([$$115 := $$102; $$116 := $$103; $$117 := $$104]) decor ([]) {
+ aggregate [$$114] <- [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$102, $$103, $$104] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ project ([$$102, $$103, $$104]) [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|
+ join (eq($$109, $$108)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$109][$$108] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$109] |PARTITIONED|
+ project ([$$102, $$103, $$109]) [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|
+ join (eq($$105, $$107)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$105][$$107] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$105] |PARTITIONED|
+ assign [$$102] <- [$$l.getField(1)] project: [$$102, $$105] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$105, $$l]) [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 []<-[$$105, $$106, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ assign [$$103, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$103, $$109, $$107] [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 []<-[$$107, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ assign [$$104] <- [$$c.getField(3)] project: [$$104, $$108] [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 []<-[$$108, $$c] <- tpch.Customer [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_less_parallelism/cardinality-estimation/join-queries/join-queries.6.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.6.plan
new file mode 100644
index 0000000..df823ed
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.6.plan
@@ -0,0 +1,78 @@
+distribute result [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$101] <- [{"$1": $$111}] project: [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$111]) [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|
+ group by ([$$l_linenumber := $$115; $$o_orderstatus := $$116; $$c_nationkey := $$117]) decor ([]) {
+ aggregate [$$111] <- [agg-sql-sum($$114)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$115, $$116, $$117] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$115, $$116, $$117] |PARTITIONED|
+ group by ([$$115 := $$106; $$116 := $$103; $$117 := $$104]) decor ([]) {
+ aggregate [$$114] <- [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$106, $$103, $$104] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ project ([$$106, $$103, $$104]) [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|
+ join (eq($$109, $$108)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$109][$$108] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$109] |PARTITIONED|
+ project ([$$106, $$103, $$109]) [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|
+ join (eq($$105, $$107)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$105][$$107] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$105] |PARTITIONED|
+ project ([$$106, $$105]) [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 []<-[$$105, $$106, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ assign [$$103, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$103, $$109, $$107] [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 []<-[$$107, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ assign [$$104] <- [$$c.getField(3)] project: [$$104, $$108] [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 []<-[$$108, $$c] <- tpch.Customer [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_less_parallelism/cardinality-estimation/join-queries/join-queries.7.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.7.plan
new file mode 100644
index 0000000..a6db1e3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.7.plan
@@ -0,0 +1,78 @@
+distribute result [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$101] <- [{"$1": $$111}] project: [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$111]) [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|
+ group by ([$$l_linenumber := $$115; $$c_nationkey := $$116; $$o_orderstatus := $$117]) decor ([]) {
+ aggregate [$$111] <- [agg-sql-sum($$114)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$115, $$116, $$117] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$115, $$116, $$117] |PARTITIONED|
+ group by ([$$115 := $$106; $$116 := $$103; $$117 := $$104]) decor ([]) {
+ aggregate [$$114] <- [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$106, $$103, $$104] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ project ([$$106, $$103, $$104]) [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|
+ join (eq($$109, $$108)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$109][$$108] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$109] |PARTITIONED|
+ project ([$$106, $$104, $$109]) [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|
+ join (eq($$105, $$107)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$105][$$107] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$105] |PARTITIONED|
+ project ([$$106, $$105]) [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 []<-[$$105, $$106, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$107] |PARTITIONED|
+ assign [$$104, $$109] <- [$$o.getField(2), $$o.getField(1)] project: [$$104, $$109, $$107] [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 []<-[$$107, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$108] |PARTITIONED|
+ assign [$$103] <- [$$c.getField(3)] project: [$$103, $$108] [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 []<-[$$108, $$c] <- tpch.Customer [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_less_parallelism/cardinality-estimation/join-queries/join-queries.8.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.8.plan
new file mode 100644
index 0000000..83ac5aa
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/join-queries/join-queries.8.plan
@@ -0,0 +1,120 @@
+distribute result [$$119] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$119] <- [{"n_name": $$n_name, "revenue": $$132}] project: [$$119] [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|
+ group by ([$$n_name := $$142]) decor ([]) {
+ aggregate [$$132] <- [agg-global-sql-sum($$141)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$142] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$142] |PARTITIONED|
+ group by ([$$142 := $$120]) decor ([]) {
+ aggregate [$$141] <- [agg-local-sql-sum(numeric-multiply($$139, numeric-subtract(1, $$140)))] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$120] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ project ([$$139, $$140, $$120]) [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|
+ join (and(eq($$130, $$128), eq($$131, $$143))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$130, $$131][$$128, $$143] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$130, $$131] |PARTITIONED|
+ project ([$$139, $$140, $$130, $$131]) [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|
+ join (eq($$133, $$127)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$133][$$127] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$133] |PARTITIONED|
+ project ([$$139, $$140, $$131, $$133]) [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|
+ join (eq($$125, $$124)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$124][$$125] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$124] |PARTITIONED|
+ project ([$$131, $$124]) [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|
+ join (eq($$123, $$136)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HYBRID_HASH_JOIN [$$123][$$136] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$123] |PARTITIONED|
+ assign [$$131] <- [$$c.getField(3)] project: [$$131, $$123] [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 []<-[$$123, $$c] <- tpch.Customer [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$136] |PARTITIONED|
+ select (and(lt($$121, "1994-01-01"), ge($$121, "1993-01-01"))) project: [$$124, $$136] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STREAM_SELECT |PARTITIONED|
+ assign [$$136, $$121] <- [$$o.getField(1), $$o.getField(4)] project: [$$124, $$136, $$121] [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 []<-[$$124, $$o] <- tpch.Orders [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$125] |PARTITIONED|
+ assign [$$140, $$139, $$133] <- [$$l.getField(6), $$l.getField(5), $$l.getField(2)] project: [$$139, $$140, $$133, $$125] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$125, $$l]) [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 []<-[$$125, $$126, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$127] |PARTITIONED|
+ assign [$$130] <- [$$s.getField(3)] project: [$$130, $$127] [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 []<-[$$127, $$s] <- tpch.Supplier [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$128, $$143] |PARTITIONED|
+ assign [$$143, $$120] <- [$$128, $$n.getField(1)] project: [$$120, $$128, $$143] [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 []<-[$$128, $$n] <- tpch.Nation [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.3.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.3.plan
new file mode 100644
index 0000000..dc9bef3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.3.plan
@@ -0,0 +1,42 @@
+distribute result [$$48] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$48] <- [{"$1": $$51}] project: [$$48] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$51]) [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|
+ group by ([$$o_custkey := $$54]) decor ([]) {
+ aggregate [$$51] <- [agg-sql-sum($$53)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$54] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$54] |PARTITIONED|
+ group by ([$$54 := $$49]) decor ([]) {
+ aggregate [$$53] <- [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$49] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$49] <- [$$o.getField(1)] project: [$$49] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$o]) [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|
+ unnest-map [$$50, $$o] <- index-search("Orders", 0, "Default", "tpch", "Orders", false, false, 1, $$55, 0, false, true, false) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- BTREE_SEARCH |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$55] <- [2] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |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_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.4.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.4.plan
new file mode 100644
index 0000000..38c8af4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.4.plan
@@ -0,0 +1,42 @@
+distribute result [$$48] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$48] <- [{"$1": $$51}] project: [$$48] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$51]) [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|
+ group by ([$$o_orderdate := $$54]) decor ([]) {
+ aggregate [$$51] <- [agg-sql-sum($$53)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$54] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$54] |PARTITIONED|
+ group by ([$$54 := $$49]) decor ([]) {
+ aggregate [$$53] <- [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$49] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$49] <- [$$o.getField(4)] project: [$$49] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$o]) [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|
+ unnest-map [$$50, $$o] <- index-search("Orders", 0, "Default", "tpch", "Orders", false, false, 1, $$55, 0, false, true, false) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- BTREE_SEARCH |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$55] <- [5] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |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_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.5.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.5.plan
new file mode 100644
index 0000000..68bc90e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.5.plan
@@ -0,0 +1,40 @@
+distribute result [$$51] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$51] <- [{"$1": $$55}] project: [$$51] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$55]) [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|
+ group by ([$$l_orderkey := $$59]) decor ([]) {
+ aggregate [$$55] <- [agg-sql-sum($$58)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$59] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$59] |PARTITIONED|
+ group by ([$$59 := $$53]) decor ([]) {
+ aggregate [$$58] <- [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$53] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ select (and(gt($$l.getField(4), 10), gt($$l.getField(1), 1))) project: [$$53] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STREAM_SELECT |PARTITIONED|
+ project ([$$53, $$l]) [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 []<-[$$53, $$54, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.6.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.6.plan
new file mode 100644
index 0000000..9512646
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.6.plan
@@ -0,0 +1,38 @@
+distribute result [$$51] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$51] <- [{"$1": $$55}] project: [$$51] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$55]) [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|
+ group by ([$$l_orderkey := $$59]) decor ([]) {
+ aggregate [$$55] <- [agg-sql-sum($$58)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$59] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$59] |PARTITIONED|
+ group by ([$$59 := $$53]) decor ([]) {
+ aggregate [$$58] <- [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$53] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ select (and(le($$54, 4), gt($$l.getField(4), 10))) project: [$$53] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STREAM_SELECT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ data-scan []<-[$$53, $$54, $$l] <- tpch.LineItem [cardinality: 0.0, op-cost: 0.0, total-cost: 0.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_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.7.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.7.plan
new file mode 100644
index 0000000..927d33d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/cardinality-estimation/single-collection-queries/single-collection-queries.7.plan
@@ -0,0 +1,42 @@
+distribute result [$$51] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$51] <- [{"$1": $$55}] project: [$$51] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ project ([$$55]) [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|
+ group by ([$$l_partkey := $$59]) decor ([]) {
+ aggregate [$$55] <- [agg-sql-sum($$58)] [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$59] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- HASH_PARTITION_EXCHANGE [$$59] |PARTITIONED|
+ group by ([$$59 := $$52]) decor ([]) {
+ aggregate [$$58] <- [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: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- SORT_GROUP_BY[$$52] |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$52] <- [$$l.getField(1)] project: [$$52] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ select (and(gt($$53, 1), gt($$54, 4))) project: [$$l] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- STREAM_SELECT |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ unnest-map [$$53, $$54, $$l] <- index-search("LineItem", 0, "Default", "tpch", "LineItem", false, false, 2, $$60, $$61, 0, true, true, false) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- BTREE_SEARCH |PARTITIONED|
+ exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ assign [$$60, $$61] <- [1, 4] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- ASSIGN |PARTITIONED|
+ empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/IDataPartitioningProvider.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/IDataPartitioningProvider.java
index 828715d..84bdcd46 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/IDataPartitioningProvider.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/IDataPartitioningProvider.java
@@ -24,4 +24,5 @@
AlgebricksAbsolutePartitionConstraint getClusterLocations();
+ int[][] getPartitionsMap();
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourcePartitioningProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourcePartitioningProvider.java
index 238cf69..cee44f0 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourcePartitioningProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourcePartitioningProvider.java
@@ -97,7 +97,12 @@
IOptimizationContext ctx) throws AlgebricksException {
switch (ds.getDatasourceType()) {
case DataSource.Type.INTERNAL_DATASET: {
- IPartitioningProperty pp = new RandomPartitioningProperty(domain);
+ Set<LogicalVariable> pvars = new ListSet<>();
+ Dataset dataset = ((DatasetDataSource) ds).getDataset();
+ int[][] computeStorageMap = ((MetadataProvider) ctx.getMetadataProvider())
+ .getPartitioningProperties(dataset).getComputeStorageMap();
+ IPartitioningProperty pp =
+ getInternalDatasetPartitioningProperty(ds, domain, scanVariables, pvars, computeStorageMap);
List<ILocalStructuralProperty> propsLocal = new ArrayList<>();
ds.computeLocalStructuralProperties(propsLocal, scanVariables);
return new StructuralPropertiesVector(pp, propsLocal);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
index 20299d5..6ed0af9 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -130,6 +131,7 @@
import org.apache.hyracks.algebricks.core.algebra.metadata.IProjectionFiltrationInfo;
import org.apache.hyracks.algebricks.core.algebra.metadata.IWriteDataSink;
import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
+import org.apache.hyracks.algebricks.core.algebra.properties.DefaultNodeGroupDomain;
import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenHelper;
@@ -1874,6 +1876,20 @@
return new AsterixTupleFilterFactory(filterEvalFactory, context.getBinaryBooleanInspectorFactory());
}
+ @Override
+ public int[][] getPartitionsMap(INodeDomain nodeDomain) {
+ if (!(nodeDomain instanceof DefaultNodeGroupDomain inputDomain)) {
+ return null;
+ }
+ String[] inputLocations = inputDomain.getNodes();
+ AlgebricksAbsolutePartitionConstraint locations = dataPartitioningProvider.getClusterLocations();
+ String[] clusterLocations = locations.getLocations();
+ if (!Arrays.equals(inputLocations, clusterLocations)) {
+ return null;
+ }
+ return dataPartitioningProvider.getPartitionsMap();
+ }
+
private void validateRecordType(IAType itemType) throws AlgebricksException {
if (itemType.getTypeTag() != ATypeTag.OBJECT) {
throw new AlgebricksException("Only record types can be indexed.");
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DynamicDataPartitioningProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DynamicDataPartitioningProvider.java
index 1a1c8ac..c87d725 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DynamicDataPartitioningProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DynamicDataPartitioningProvider.java
@@ -70,4 +70,10 @@
public AlgebricksAbsolutePartitionConstraint getClusterLocations() {
return clusterStateManager.getNodeSortedClusterLocations();
}
+
+ @Override
+ public int[][] getPartitionsMap() {
+ AlgebricksAbsolutePartitionConstraint locations = clusterStateManager.getNodeSortedClusterLocations();
+ return getOneToOnePartitionsMap(getLocationsCount(locations));
+ }
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/StaticDataPartitioningProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/StaticDataPartitioningProvider.java
index 44141cb..2282a11 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/StaticDataPartitioningProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/StaticDataPartitioningProvider.java
@@ -134,4 +134,10 @@
SplitComputeLocations locations = getSplits(MetadataConstants.DEFAULT_DATABASE);
return (AlgebricksAbsolutePartitionConstraint) locations.getConstraints();
}
+
+ @Override
+ public int[][] getPartitionsMap() {
+ StorageComputePartitionsMap partitionMap = clusterStateManager.getStorageComputeMap();
+ return partitionMap.getComputeToStorageMap(false);
+ }
}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
index 11c8b81..caac0ae 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
@@ -30,6 +30,7 @@
import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
import org.apache.hyracks.algebricks.core.algebra.functions.IFunctionInfo;
import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
import org.apache.hyracks.algebricks.data.IAWriterFactory;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -199,4 +200,6 @@
boolean isBlockingOperatorDisabled();
+ int[][] getPartitionsMap(INodeDomain nodeDomain);
+
}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractHashJoinPOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractHashJoinPOperator.java
index 7a5fc8a..68f0898 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractHashJoinPOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractHashJoinPOperator.java
@@ -34,6 +34,7 @@
import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
import org.apache.hyracks.algebricks.core.algebra.properties.BroadcastPartitioningProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningRequirementsCoordinator;
import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
@@ -99,14 +100,16 @@
// parent's partitioning requirements.
IPartitioningProperty pp1;
IPartitioningProperty pp2;
+ INodeDomain nodeDomain = ctx.getComputationNodeDomain();
switch (partitioningType) {
case PAIRWISE:
- pp1 = UnorderedPartitionedProperty.of(new ListSet<>(keysLeftBranch), ctx.getComputationNodeDomain());
- pp2 = UnorderedPartitionedProperty.of(new ListSet<>(keysRightBranch), ctx.getComputationNodeDomain());
+ int[][] partitionsMap = ctx.getMetadataProvider().getPartitionsMap(nodeDomain);
+ pp1 = OperatorPropertiesUtil.createUnorderedProperty(nodeDomain, partitionsMap, keysLeftBranch);
+ pp2 = OperatorPropertiesUtil.createUnorderedProperty(nodeDomain, partitionsMap, keysRightBranch);
break;
case BROADCAST:
- pp1 = new RandomPartitioningProperty(ctx.getComputationNodeDomain());
- pp2 = new BroadcastPartitioningProperty(ctx.getComputationNodeDomain());
+ pp1 = new RandomPartitioningProperty(nodeDomain);
+ pp2 = new BroadcastPartitioningProperty(nodeDomain);
break;
default:
throw new IllegalStateException();
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPreSortedDistinctByPOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPreSortedDistinctByPOperator.java
index 2f02a61..a9046f0 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPreSortedDistinctByPOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPreSortedDistinctByPOperator.java
@@ -22,13 +22,13 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.hyracks.algebricks.common.utils.ListSet;
import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator;
import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningRequirementsCoordinator;
import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
@@ -36,7 +36,7 @@
import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
-import org.apache.hyracks.algebricks.core.algebra.properties.UnorderedPartitionedProperty;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
public abstract class AbstractPreSortedDistinctByPOperator extends AbstractDistinctByPOperator {
@@ -65,7 +65,9 @@
IPartitioningProperty pp = null;
AbstractLogicalOperator aop = (AbstractLogicalOperator) op;
if (aop.getExecutionMode() == AbstractLogicalOperator.ExecutionMode.PARTITIONED) {
- pp = UnorderedPartitionedProperty.of(new ListSet<>(columnList), context.getComputationNodeDomain());
+ INodeDomain nodeDomain = context.getComputationNodeDomain();
+ int[][] partitionsMap = context.getMetadataProvider().getPartitionsMap(nodeDomain);
+ pp = OperatorPropertiesUtil.createUnorderedProperty(nodeDomain, partitionsMap, columnList);
}
pv[0] = new StructuralPropertiesVector(pp, localProps);
return new PhysicalRequirements(pv, IPartitioningRequirementsCoordinator.NO_COORDINATION);
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPreclusteredGroupByPOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPreclusteredGroupByPOperator.java
index 969fd99..006f051 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPreclusteredGroupByPOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPreclusteredGroupByPOperator.java
@@ -44,6 +44,7 @@
import org.apache.hyracks.algebricks.core.algebra.properties.FunctionalDependency;
import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty.PropertyType;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningRequirementsCoordinator;
import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
@@ -53,7 +54,6 @@
import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
import org.apache.hyracks.algebricks.core.algebra.properties.PropertiesUtil;
import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
-import org.apache.hyracks.algebricks.core.algebra.properties.UnorderedPartitionedProperty;
import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
public abstract class AbstractPreclusteredGroupByPOperator extends AbstractGroupByPOperator {
@@ -230,7 +230,9 @@
IPartitioningProperty pp = null;
AbstractLogicalOperator aop = (AbstractLogicalOperator) op;
if (aop.getExecutionMode() == ExecutionMode.PARTITIONED) {
- pp = UnorderedPartitionedProperty.of(new ListSet<>(columnList), context.getComputationNodeDomain());
+ INodeDomain nodeDomain = context.getComputationNodeDomain();
+ int[][] partitionsMap = context.getMetadataProvider().getPartitionsMap(nodeDomain);
+ pp = OperatorPropertiesUtil.createUnorderedProperty(nodeDomain, partitionsMap, columnList);
}
pv[0] = new StructuralPropertiesVector(pp, localProps);
return new PhysicalRequirements(pv, IPartitioningRequirementsCoordinator.NO_COORDINATION);
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractWindowPOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractWindowPOperator.java
index 8ff605d..ec12980 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractWindowPOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractWindowPOperator.java
@@ -42,6 +42,7 @@
import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator;
import org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningRequirementsCoordinator;
import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
@@ -49,7 +50,7 @@
import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
-import org.apache.hyracks.algebricks.core.algebra.properties.UnorderedPartitionedProperty;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenHelper;
import org.apache.hyracks.algebricks.data.IBinaryComparatorFactoryProvider;
@@ -79,8 +80,9 @@
IPartitioningProperty pp;
switch (op.getExecutionMode()) {
case PARTITIONED:
- pp = UnorderedPartitionedProperty.of(new ListSet<>(partitionColumns),
- context.getComputationNodeDomain());
+ INodeDomain nodeDomain = context.getComputationNodeDomain();
+ int[][] partitionsMap = context.getMetadataProvider().getPartitionsMap(nodeDomain);
+ pp = OperatorPropertiesUtil.createUnorderedProperty(nodeDomain, partitionsMap, partitionColumns);
break;
case UNPARTITIONED:
pp = IPartitioningProperty.UNPARTITIONED;
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/ExternalGroupByPOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/ExternalGroupByPOperator.java
index 89e17ad..9107f8a 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/ExternalGroupByPOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/ExternalGroupByPOperator.java
@@ -44,12 +44,14 @@
import org.apache.hyracks.algebricks.core.algebra.operators.logical.GroupByOperator;
import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningRequirementsCoordinator;
import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
import org.apache.hyracks.algebricks.core.algebra.properties.LocalGroupingProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
import org.apache.hyracks.algebricks.core.algebra.properties.UnorderedPartitionedProperty;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenHelper;
import org.apache.hyracks.algebricks.core.jobgen.impl.OperatorSchemaImpl;
@@ -108,9 +110,11 @@
AbstractLogicalOperator aop = (AbstractLogicalOperator) op;
if (aop.getExecutionMode() == ExecutionMode.PARTITIONED) {
StructuralPropertiesVector[] pv = new StructuralPropertiesVector[1];
- pv[0] = new StructuralPropertiesVector(
- UnorderedPartitionedProperty.of(new ListSet<>(columnList), context.getComputationNodeDomain()),
- null);
+ INodeDomain nodeDomain = context.getComputationNodeDomain();
+ int[][] partitionsMap = context.getMetadataProvider().getPartitionsMap(nodeDomain);
+ UnorderedPartitionedProperty pp =
+ OperatorPropertiesUtil.createUnorderedProperty(nodeDomain, partitionsMap, columnList);
+ pv[0] = new StructuralPropertiesVector(pp, null);
return new PhysicalRequirements(pv, IPartitioningRequirementsCoordinator.NO_COORDINATION);
} else {
return emptyUnaryRequirements();
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SinkWritePOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SinkWritePOperator.java
index b8c1f36..0428cd1 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SinkWritePOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SinkWritePOperator.java
@@ -26,7 +26,6 @@
import org.apache.commons.lang3.mutable.Mutable;
import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.common.utils.ListSet;
import org.apache.hyracks.algebricks.common.utils.Pair;
import org.apache.hyracks.algebricks.core.algebra.base.IHyracksJobBuilder;
import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
@@ -42,6 +41,7 @@
import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
import org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningRequirementsCoordinator;
import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
@@ -49,7 +49,7 @@
import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
-import org.apache.hyracks.algebricks.core.algebra.properties.UnorderedPartitionedProperty;
+import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenHelper;
import org.apache.hyracks.algebricks.runtime.base.IPushRuntimeFactory;
@@ -95,8 +95,9 @@
IPartitioningProperty pp;
switch (op.getExecutionMode()) {
case PARTITIONED:
- pp = UnorderedPartitionedProperty.of(new ListSet<>(partitionVariables),
- context.getComputationNodeDomain());
+ INodeDomain nodeDomain = context.getComputationNodeDomain();
+ int[][] partitionsMap = context.getMetadataProvider().getPartitionsMap(nodeDomain);
+ pp = OperatorPropertiesUtil.createUnorderedProperty(nodeDomain, partitionsMap, partitionVariables);
break;
case UNPARTITIONED:
pp = IPartitioningProperty.UNPARTITIONED;
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorPropertiesUtil.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorPropertiesUtil.java
index c66ee40..0ce5676 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorPropertiesUtil.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/util/OperatorPropertiesUtil.java
@@ -44,7 +44,9 @@
import org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator;
import org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.CardinalityInferenceVisitor;
import org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
+import org.apache.hyracks.algebricks.core.algebra.properties.UnorderedPartitionedProperty;
public class OperatorPropertiesUtil {
@@ -349,4 +351,13 @@
return value.isMissing() ? AlgebricksBuiltinFunctions.IS_MISSING
: value.isNull() ? AlgebricksBuiltinFunctions.IS_NULL : null;
}
+
+ public static UnorderedPartitionedProperty createUnorderedProperty(INodeDomain nodeDomain, int[][] partitionsMap,
+ List<LogicalVariable> vars) {
+ if (partitionsMap == null) {
+ return UnorderedPartitionedProperty.of(new ListSet<>(vars), nodeDomain);
+ } else {
+ return UnorderedPartitionedProperty.ofPartitionsMap(new ListSet<>(vars), nodeDomain, partitionsMap);
+ }
+ }
}