>From Ali Alsuliman <[email protected]>:
Ali Alsuliman has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20799?usp=email )
Change subject: Merge branch 'gerrit/morpheus' into 'master'
......................................................................
Merge branch 'gerrit/morpheus' into 'master'
Change-Id: I13faf19294cdb63da4c3c56cd0f6d8d915409cd9
---
M
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByIndexFieldAccessRule.java
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/QueryIndexDatasource.java
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/atomic-and-array-queries/query8.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/atomic-and-array-queries/query9.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/join-quantified-queries/use-case-5/query1.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/join-quantified-queries/use-case-5/query2.plan
M
hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/JavaSerializationUtils.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/DiskBTree.java
M hyracks-fullstack/pom.xml
10 files changed, 43 insertions(+), 392 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/99/20799/1
diff --git
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByIndexFieldAccessRule.java
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByIndexFieldAccessRule.java
index 44f5fe0..28e56e4 100644
---
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByIndexFieldAccessRule.java
+++
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ByNameToByIndexFieldAccessRule.java
@@ -94,26 +94,19 @@
if (fce.getFunctionIdentifier() !=
BuiltinFunctions.FIELD_ACCESS_BY_NAME) {
return changed;
}
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
- changed |= extractFirstArg(fce, op, context);
- if (includeNameToIndexRewrite) {
- IVariableTypeEnvironment env =
context.getOutputTypeEnvironment(op.getInputs().get(0).getValue());
- IAType t = (IAType)
env.getType(fce.getArguments().get(0).getValue());
- changed |= rewriteFieldAccess(exprRef, fce,
TypeComputeUtils.getActualType(t));
- }
-=======
int k = extractFirstArg(fce, op, context);
changed |= k >= 0;
- if (k < 0) {
- if (op.getInputs().size() > 1) {
- context.computeAndSetTypeEnvironmentForOperator(op);
- changed |= rewriteFieldAccessUsing(op, exprRef, context, fce);
- return changed;
+ if (includeNameToIndexRewrite) {
+ if (k < 0) {
+ if (op.getInputs().size() > 1) {
+ context.computeAndSetTypeEnvironmentForOperator(op);
+ changed |= rewriteFieldAccessUsing(op, exprRef, context,
fce);
+ return changed;
+ }
+ k = 0;
}
- k = 0;
+ changed |=
rewriteFieldAccessUsing(op.getInputs().get(k).getValue(), exprRef, context,
fce);
}
- changed |= rewriteFieldAccessUsing(op.getInputs().get(k).getValue(),
exprRef, context, fce);
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
return changed;
}
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/QueryIndexDatasource.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/QueryIndexDatasource.java
index 2261e4d..a84abdc 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/QueryIndexDatasource.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/QueryIndexDatasource.java
@@ -43,17 +43,11 @@
import
org.apache.hyracks.algebricks.core.algebra.metadata.IDataSourcePropertiesProvider;
import
org.apache.hyracks.algebricks.core.algebra.metadata.IProjectionFiltrationInfo;
import
org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
-import
org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator;
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.INodeDomain;
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
import
org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
-=======
import
org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
-import
org.apache.hyracks.algebricks.core.algebra.properties.LocalOrderProperty;
-import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
import
org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
import
org.apache.hyracks.algebricks.core.algebra.properties.UnorderedPartitionedProperty;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
@@ -133,46 +127,28 @@
@Override
public IDataSourcePropertiesProvider getPropertiesProvider() {
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
return new IDataSourcePropertiesProvider() {
@Override
public IPhysicalPropertiesVector
computeRequiredProperties(List<LogicalVariable> scanVariables,
IOptimizationContext ctx) {
return StructuralPropertiesVector.EMPTY_PROPERTIES_VECTOR;
-=======
- return scanVariables -> {
- // scanVariables should be SKs + PKs
- List<ILocalStructuralProperty> propsLocal = new ArrayList<>(1);
- //TODO(ali): local ordering should be gone in compute-storage
separation setup similar to data-scan
- List<OrderColumn> secKeys = new ArrayList<>(numSecKeys);
- for (int i = 0; i < numSecKeys; i++) {
- secKeys.add(new OrderColumn(scanVariables.get(i),
OrderOperator.IOrder.OrderKind.ASC));
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
}
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
@Override
public IPhysicalPropertiesVector
computeDeliveredProperties(List<LogicalVariable> scanVariables,
- IOptimizationContext ctx) {
+ IOptimizationContext ctx) throws AlgebricksException {
+ // scanVariables should be SKs + PKs
List<ILocalStructuralProperty> propsLocal = new ArrayList<>(1);
- //TODO(ali): consider primary keys?
- List<OrderColumn> secKeys = new ArrayList<>(numSecKeys);
- for (int i = 0; i < numSecKeys; i++) {
- secKeys.add(new OrderColumn(scanVariables.get(i),
OrderOperator.IOrder.OrderKind.ASC));
+ int numPKs = ds.getPrimaryKeys().size();
+ Set<LogicalVariable> pVars = new ListSet<>();
+ for (int i = 0, j = numSecKeys; i < numPKs; i++, j++) {
+ pVars.add(scanVariables.get(j));
}
- propsLocal.add(new LocalOrderProperty(secKeys));
- return new StructuralPropertiesVector(new
RandomPartitioningProperty(domain), propsLocal);
+ int[][] computeStorageMap = ((MetadataProvider)
ctx.getMetadataProvider())
+ .getPartitioningProperties(ds).getComputeStorageMap();
+ IPartitioningProperty pp =
UnorderedPartitionedProperty.ofPartitionsMap(pVars, domain, computeStorageMap);
+ return new StructuralPropertiesVector(pp, propsLocal);
}
-=======
- propsLocal.add(new LocalOrderProperty(secKeys));
- int numPKs = ds.getPrimaryKeys().size();
- Set<LogicalVariable> pVars = new ListSet<>();
- for (int i = 0, j = numSecKeys; i < numPKs; i++, j++) {
- pVars.add(scanVariables.get(j));
- }
- IPartitioningProperty pp = new UnorderedPartitionedProperty(pVars,
domain);
- return new StructuralPropertiesVector(pp, propsLocal);
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
};
}
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/atomic-and-array-queries/query8.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/atomic-and-array-queries/query8.plan
index d5cb7f9..c9b9c54 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/atomic-and-array-queries/query8.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/atomic-and-array-queries/query8.plan
@@ -8,7 +8,6 @@
-- STREAM_SELECT |PARTITIONED|
project ([$$D2, $$D1, $$50])
-- STREAM_PROJECT |PARTITIONED|
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
subplan {
aggregate [$$50] <- [non-empty-stream()] [cardinality:
0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
-- AGGREGATE |LOCAL|
@@ -72,72 +71,3 @@
-- ONE_TO_ONE_EXCHANGE
|PARTITIONED|
empty-tuple-source
--
EMPTY_TUPLE_SOURCE |PARTITIONED|
-=======
- select ($$47)
- -- STREAM_SELECT |PARTITIONED|
- project ([$$D2, $$D1, $$47])
- -- STREAM_PROJECT |PARTITIONED|
- subplan {
- aggregate [$$47] <- [non-empty-stream()] [cardinality:
0.0, op-cost: 0.0, total-cost: 0.0]
- -- AGGREGATE |LOCAL|
- select (and(eq($$66, to-bigint($$67)), eq($$64,
to-bigint($$65)))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- STREAM_SELECT |LOCAL|
- assign [$$66, $$64] <- [$$D1I.getField("field2"),
$$D1I.getField("field3")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ASSIGN |LOCAL|
- unnest $$D1I <- scan-collection($$63)
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- UNNEST |LOCAL|
- nested tuple source [cardinality: 0.0,
op-cost: 0.0, total-cost: 0.0]
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- SUBPLAN |PARTITIONED|
- project ([$$D2, $$D1, $$67, $$65, $$63])
- -- STREAM_PROJECT |PARTITIONED|
- select (and(eq($$D1.getField("field4"), $$60),
eq($$D1.getField("field1"), $$58)))
- -- STREAM_SELECT |PARTITIONED|
- assign [$$63] <- [$$D1.getField("items")]
- -- ASSIGN |PARTITIONED|
- project ([$$D2, $$67, $$65, $$60, $$58, $$D1])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$56, $$D1] <- index-search("Dataset1",
0, "TestDataverse", "Dataset1", true, false, 1, $$74, 1, $$74, true, true, true)
- -- BTREE_SEARCH |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$74, $$D2, $$67, $$65, $$60, $$58])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- distinct ([$$74, $$75])
- -- PRE_SORTED_DISTINCT_BY |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$74) (ASC, $$75)
- -- STABLE_SORT [$$74(ASC), $$75(ASC)]
|PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$D2, $$67, $$65, $$60,
$$58, $$74, $$75])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE
|PARTITIONED|
- unnest-map [$$70, $$71, $$72,
$$73, $$74] <- index-search("d1Idx", 0, "TestDataverse", "Dataset1", true,
true, 4, $$58, $$68, $$69, $$60, 4, $$58, $$68, $$69, $$60, true, true, true)
- -- BTREE_SEARCH |PARTITIONED|
- exchange
- -- BROADCAST_EXCHANGE
|PARTITIONED|
- running-aggregate [$$75] <-
[create-query-uid()]
- -- RUNNING_AGGREGATE
|PARTITIONED|
- assign [$$69, $$68] <-
[to-bigint($$65), to-bigint($$67)]
- -- ASSIGN |PARTITIONED|
- assign [$$60, $$58,
$$67, $$65] <- [to-bigint($$D2.getField("field4")),
to-bigint($$D2.getField("field1")), $$D2.getField("field2"),
$$D2.getField("field3")]
- -- ASSIGN |PARTITIONED|
- project ([$$D2])
- -- STREAM_PROJECT
|PARTITIONED|
- exchange
- --
ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan
[]<-[$$55, $$D2] <- TestDataverse.Dataset2
- -- DATASOURCE_SCAN
|PARTITIONED|
- exchange
- --
ONE_TO_ONE_EXCHANGE |PARTITIONED|
-
empty-tuple-source
- --
EMPTY_TUPLE_SOURCE |PARTITIONED|
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/atomic-and-array-queries/query9.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/atomic-and-array-queries/query9.plan
index c5708c7..badead3 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/atomic-and-array-queries/query9.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/atomic-and-array-queries/query9.plan
@@ -8,7 +8,6 @@
-- STREAM_SELECT |PARTITIONED|
project ([$$D2, $$D1, $$72])
-- STREAM_PROJECT |PARTITIONED|
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
subplan {
aggregate [$$72] <- [non-empty-stream()] [cardinality:
0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
-- AGGREGATE |LOCAL|
@@ -28,29 +27,7 @@
project ([$$97, $$95, $$93, $$91])
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_PROJECT |LOCAL|
nested tuple source
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
-=======
- select ($$68)
- -- STREAM_SELECT |PARTITIONED|
- project ([$$D2, $$D1, $$68])
- -- STREAM_PROJECT |PARTITIONED|
- subplan {
- aggregate [$$68] <- [non-empty-stream()] [cardinality:
0.0, op-cost: 0.0, total-cost: 0.0]
- -- AGGREGATE |LOCAL|
- select ($$66) [cardinality: 0.0, op-cost: 0.0,
total-cost: 0.0]
- -- STREAM_SELECT |LOCAL|
- subplan {
- aggregate [$$66] <- [non-empty-stream()]
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- AGGREGATE |LOCAL|
- select (and(eq($$92, to-bigint($$93)),
eq($$90, to-bigint($$91)), eq($$88, to-bigint($$89)))) [cardinality: 0.0,
op-cost: 0.0, total-cost: 0.0]
- -- STREAM_SELECT |LOCAL|
- assign [$$92, $$90, $$88] <-
[$$DII.getField("field2"), $$DII.getField("field3"),
$$DII.getField("field3_notindexed")] [cardinality: 0.0, op-cost: 0.0,
total-cost: 0.0]
- -- ASSIGN |LOCAL|
- unnest $$DII <-
scan-collection($$87) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- UNNEST |LOCAL|
- nested tuple source
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
-- NESTED_TUPLE_SOURCE |LOCAL|
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
} [cardinality: 0.0, doc-size: 0.0, op-cost:
0.0, total-cost: 0.0]
-- SUBPLAN |LOCAL|
select (eq($$89, to-bigint($$90))) project: [$$97,
$$95, $$93, $$91] [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost:
0.0]
@@ -62,19 +39,7 @@
project ([$$97, $$95, $$93, $$90, $$88])
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
-- STREAM_PROJECT |LOCAL|
nested tuple source [cardinality: 0.0,
doc-size: 0.0, op-cost: 0.0, total-cost: 0.0]
-=======
- } [cardinality: 0.0, op-cost: 0.0,
total-cost: 0.0]
- -- SUBPLAN |LOCAL|
- select (eq($$85, to-bigint($$86))) [cardinality:
0.0, op-cost: 0.0, total-cost: 0.0]
- -- STREAM_SELECT |LOCAL|
- assign [$$87, $$85] <-
[$$DOI.getField("inner_items"), $$DOI.getField("field2_notindexed")]
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ASSIGN |LOCAL|
- unnest $$DOI <- scan-collection($$84)
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- UNNEST |LOCAL|
- nested tuple source [cardinality: 0.0,
op-cost: 0.0, total-cost: 0.0]
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
-- NESTED_TUPLE_SOURCE |LOCAL|
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
}
-- SUBPLAN |PARTITIONED|
select (and(eq($$D1.getField("field4"), $$85),
eq($$D1.getField("field1"), $$83))) project: [$$D2, $$D1, $$97, $$95, $$93,
$$90, $$88]
@@ -125,57 +90,3 @@
-- ONE_TO_ONE_EXCHANGE
|PARTITIONED|
empty-tuple-source
--
EMPTY_TUPLE_SOURCE |PARTITIONED|
-=======
- }
- -- SUBPLAN |PARTITIONED|
- project ([$$D2, $$D1, $$93, $$91, $$89, $$86, $$84])
- -- STREAM_PROJECT |PARTITIONED|
- select (and(eq($$D1.getField("field4"), $$81),
eq($$D1.getField("field1"), $$79)))
- -- STREAM_SELECT |PARTITIONED|
- assign [$$84] <- [$$D1.getField("outer_items")]
- -- ASSIGN |PARTITIONED|
- project ([$$D2, $$93, $$91, $$89, $$86, $$81, $$79,
$$D1])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$77, $$D1] <- index-search("Dataset1",
0, "TestDataverse", "Dataset1", true, false, 1, $$104, 1, $$104, true, true,
true)
- -- BTREE_SEARCH |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$104, $$D2, $$93, $$91, $$89, $$86,
$$81, $$79])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- distinct ([$$104, $$105])
- -- PRE_SORTED_DISTINCT_BY |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$104) (ASC, $$105)
- -- STABLE_SORT [$$104(ASC), $$105(ASC)]
|PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$D2, $$93, $$91, $$89,
$$86, $$81, $$79, $$104, $$105])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE
|PARTITIONED|
- unnest-map [$$100, $$101, $$102,
$$103, $$104] <- index-search("d1Idx", 0, "TestDataverse", "Dataset1", true,
true, 4, $$79, $$96, $$97, $$81, 4, $$79, $$96, $$97, $$81, true, true, true)
- -- BTREE_SEARCH |PARTITIONED|
- exchange
- -- BROADCAST_EXCHANGE
|PARTITIONED|
- running-aggregate [$$105] <-
[create-query-uid()]
- -- RUNNING_AGGREGATE
|PARTITIONED|
- assign [$$97, $$96] <-
[to-bigint($$91), to-bigint($$93)]
- -- ASSIGN |PARTITIONED|
- assign [$$81, $$79,
$$93, $$91, $$89, $$86] <- [to-bigint($$D2.getField("field4")),
to-bigint($$D2.getField("field1")), $$D2.getField("field2"),
$$D2.getField("field3"), $$D2.getField("field3_notindexed"),
$$D2.getField("field2_notindexed")]
- -- ASSIGN |PARTITIONED|
- project ([$$D2])
- -- STREAM_PROJECT
|PARTITIONED|
- exchange
- --
ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan
[]<-[$$76, $$D2] <- TestDataverse.Dataset2
- -- DATASOURCE_SCAN
|PARTITIONED|
- exchange
- --
ONE_TO_ONE_EXCHANGE |PARTITIONED|
-
empty-tuple-source
- --
EMPTY_TUPLE_SOURCE |PARTITIONED|
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/join-quantified-queries/use-case-5/query1.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/join-quantified-queries/use-case-5/query1.plan
index b077023..5ab60ad 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/join-quantified-queries/use-case-5/query1.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/join-quantified-queries/use-case-5/query1.plan
@@ -1,4 +1,3 @@
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
distribute result [$$50]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
exchange
@@ -74,86 +73,3 @@
--
ONE_TO_ONE_EXCHANGE |PARTITIONED|
empty-tuple-source
--
EMPTY_TUPLE_SOURCE |PARTITIONED|
-=======
-distribute result [$$47]
--- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 10
- -- STREAM_LIMIT |UNPARTITIONED|
- exchange
- -- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- project ([$$47])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$47] <- [{"date": $$54, "id": $$49, "forecast": $$52}]
- -- ASSIGN |PARTITIONED|
- limit 10
- -- STREAM_LIMIT |PARTITIONED|
- project ([$$54, $$49, $$52])
- -- STREAM_PROJECT |PARTITIONED|
- select ($$42)
- -- STREAM_SELECT |PARTITIONED|
- subplan {
- aggregate [$$42] <- [non-empty-stream()]
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- AGGREGATE |LOCAL|
- select (eq($$53,
string-concat(ordered-list-constructor($$54, "03")))) [cardinality: 0.0,
op-cost: 0.0, total-cost: 0.0]
- -- STREAM_SELECT |LOCAL|
- assign [$$53] <- [$$ff.getField("fv")]
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ASSIGN |LOCAL|
- unnest $$ff <- scan-collection($$52)
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- UNNEST |LOCAL|
- nested tuple source [cardinality: 0.0,
op-cost: 0.0, total-cost: 0.0]
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- SUBPLAN |PARTITIONED|
- project ([$$54, $$49, $$52])
- -- STREAM_PROJECT |PARTITIONED|
- select (eq($$D1.getField("x"), $$49))
- -- STREAM_SELECT |PARTITIONED|
- assign [$$52] <- [$$D1.getField("forecast")]
- -- ASSIGN |PARTITIONED|
- project ([$$54, $$49, $$D1])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$50, $$D1] <- index-search("D1", 0,
"test", "D1", true, false, 1, $$59, 1, $$59, true, true, true)
- -- BTREE_SEARCH |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$59, $$54, $$49])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- distinct ([$$59, $$60])
- -- PRE_SORTED_DISTINCT_BY |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$59) (ASC, $$60)
- -- STABLE_SORT [$$59(ASC),
$$60(ASC)] |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE
|PARTITIONED|
- project ([$$54, $$49, $$59,
$$60])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE
|PARTITIONED|
- unnest-map [$$58, $$59] <-
index-search("idx_fv", 0, "test", "D1", true, true, 1, $$57, 1, $$57, true,
true, true)
- -- BTREE_SEARCH
|PARTITIONED|
- exchange
- -- BROADCAST_EXCHANGE
|PARTITIONED|
- running-aggregate [$$60]
<- [create-query-uid()]
- -- RUNNING_AGGREGATE
|PARTITIONED|
- assign [$$57] <-
[string-concat(ordered-list-constructor($$54, "03"))]
- -- ASSIGN
|PARTITIONED|
- project ([$$49,
$$54])
- -- STREAM_PROJECT
|PARTITIONED|
- assign [$$54] <-
[$$D2.getField("date")]
- -- ASSIGN
|PARTITIONED|
- exchange
- --
ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan
[]<-[$$49, $$D2] <- test.D2
- --
DATASOURCE_SCAN |PARTITIONED|
- exchange
- --
ONE_TO_ONE_EXCHANGE |PARTITIONED|
-
empty-tuple-source
- --
EMPTY_TUPLE_SOURCE |PARTITIONED|
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/join-quantified-queries/use-case-5/query2.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/join-quantified-queries/use-case-5/query2.plan
index ca887ea..6b9660d 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/join-quantified-queries/use-case-5/query2.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/array-index/join-quantified-queries/use-case-5/query2.plan
@@ -1,4 +1,3 @@
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
distribute result [$$50]
-- DISTRIBUTE_RESULT |UNPARTITIONED|
exchange
@@ -74,88 +73,3 @@
--
ONE_TO_ONE_EXCHANGE |PARTITIONED|
empty-tuple-source
--
EMPTY_TUPLE_SOURCE |PARTITIONED|
-=======
-distribute result [$$47]
--- DISTRIBUTE_RESULT |UNPARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED|
- limit 10
- -- STREAM_LIMIT |UNPARTITIONED|
- exchange
- -- RANDOM_MERGE_EXCHANGE |PARTITIONED|
- project ([$$47])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$47] <- [{"date": $$54, "id": $$49, "forecast": $$52}]
- -- ASSIGN |PARTITIONED|
- limit 10
- -- STREAM_LIMIT |PARTITIONED|
- project ([$$54, $$49, $$52])
- -- STREAM_PROJECT |PARTITIONED|
- select ($$42)
- -- STREAM_SELECT |PARTITIONED|
- subplan {
- aggregate [$$42] <- [non-empty-stream()]
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- AGGREGATE |LOCAL|
- select (eq($$53,
string-concat(ordered-list-constructor($$54, "03")))) [cardinality: 0.0,
op-cost: 0.0, total-cost: 0.0]
- -- STREAM_SELECT |LOCAL|
- assign [$$53] <- [$$ff.getField("fv")]
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- ASSIGN |LOCAL|
- unnest $$ff <- scan-collection($$52)
[cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
- -- UNNEST |LOCAL|
- nested tuple source [cardinality: 0.0,
op-cost: 0.0, total-cost: 0.0]
- -- NESTED_TUPLE_SOURCE |LOCAL|
- }
- -- SUBPLAN |PARTITIONED|
- project ([$$54, $$49, $$52])
- -- STREAM_PROJECT |PARTITIONED|
- assign [$$52] <- [$$D1.getField("forecast")]
- -- ASSIGN |PARTITIONED|
- project ([$$54, $$49, $$D1])
- -- STREAM_PROJECT |PARTITIONED|
- select (eq($$50, $$49))
- -- STREAM_SELECT |PARTITIONED|
- project ([$$54, $$49, $$50, $$D1])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- unnest-map [$$50, $$D1] <- index-search("D1",
0, "test", "D1", true, false, 1, $$59, 1, $$59, true, true, true)
- -- BTREE_SEARCH |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- project ([$$59, $$54, $$49])
- -- STREAM_PROJECT |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- distinct ([$$59, $$60])
- -- PRE_SORTED_DISTINCT_BY
|PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- order (ASC, $$59) (ASC, $$60)
- -- STABLE_SORT [$$59(ASC),
$$60(ASC)] |PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE
|PARTITIONED|
- project ([$$54, $$49, $$59,
$$60])
- -- STREAM_PROJECT
|PARTITIONED|
- exchange
- -- ONE_TO_ONE_EXCHANGE
|PARTITIONED|
- unnest-map [$$58, $$59] <-
index-search("idx_fv", 0, "test", "D1", true, true, 1, $$57, 1, $$57, true,
true, true)
- -- BTREE_SEARCH
|PARTITIONED|
- exchange
- -- BROADCAST_EXCHANGE
|PARTITIONED|
- running-aggregate
[$$60] <- [create-query-uid()]
- -- RUNNING_AGGREGATE
|PARTITIONED|
- assign [$$57] <-
[string-concat(ordered-list-constructor($$54, "03"))]
- -- ASSIGN
|PARTITIONED|
- project ([$$49,
$$54])
- -- STREAM_PROJECT
|PARTITIONED|
- assign [$$54] <-
[$$D2.getField("date")]
- -- ASSIGN
|PARTITIONED|
- exchange
- --
ONE_TO_ONE_EXCHANGE |PARTITIONED|
- data-scan
[]<-[$$49, $$D2] <- test.D2
- --
DATASOURCE_SCAN |PARTITIONED|
- exchange
- --
ONE_TO_ONE_EXCHANGE |PARTITIONED|
-
empty-tuple-source
- --
EMPTY_TUPLE_SOURCE |PARTITIONED|
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
diff --git
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/JavaSerializationUtils.java
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/JavaSerializationUtils.java
index 357b15d..a9e0e99 100644
---
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/JavaSerializationUtils.java
+++
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/JavaSerializationUtils.java
@@ -36,14 +36,11 @@
import org.apache.hyracks.util.ThrowingIOFunction;
public class JavaSerializationUtils {
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
+
private static final ReplacementsAwareJavaSerializationProvider
serProvider =
ReplacementsAwareJavaSerializationProvider.INSTANCE;
-=======
- private static IJavaSerializationProvider serProvider =
DefaultJavaSerializationProvider.INSTANCE;
private static final int MAX_UTF_BYTES = 65535;
private static final int SAFE_CHAR_LIMIT = MAX_UTF_BYTES / 3;
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
private JavaSerializationUtils() {
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/DiskBTree.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/DiskBTree.java
index 10c2364..fcfaa40 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/DiskBTree.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/DiskBTree.java
@@ -125,13 +125,8 @@
// walk down the tree until we find the leaf
childPageId =
ctx.getInteriorFrame().getChildPageId(ctx.getPred());
ICachedPage nextPage =
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), childPageId),
bcOpCtx);
bufferCache.unpin(currentPage, bcOpCtx);
-=======
-
bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), childPageId),
false);
- bufferCache.unpin(currentPage);
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
currentPage = nextPage;
ctx.getInteriorFrame().setPage(currentPage);
}
diff --git a/hyracks-fullstack/pom.xml b/hyracks-fullstack/pom.xml
index 1c8b055..2d871ba 100644
--- a/hyracks-fullstack/pom.xml
+++ b/hyracks-fullstack/pom.xml
@@ -75,14 +75,10 @@
<snappy.version>1.1.10.5</snappy.version>
<jackson.version>2.19.2</jackson.version>
<jackson-databind.version>${jackson.version}</jackson-databind.version>
-<<<<<<< HEAD (76badf [NO ISSUE][RT]: Refactor: Remove code duplication in
stable )
<netty.version>4.1.125.Final</netty.version>
<asm.version>9.3</asm.version>
<awsjavasdk.version>2.29.27</awsjavasdk.version>
<gcsjavasdk.version>2.45.0</gcsjavasdk.version>
-=======
- <netty.version>4.1.130.Final</netty.version>
->>>>>>> BRANCH (3578f0 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
<implementation.title>Apache Hyracks and Algebricks -
${project.name}</implementation.title>
<implementation.url>https://asterixdb.apache.org/</implementation.url>
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20799?usp=email
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I13faf19294cdb63da4c3c56cd0f6d8d915409cd9
Gerrit-Change-Number: 20799
Gerrit-PatchSet: 1
Gerrit-Owner: Ali Alsuliman <[email protected]>