asterixdb git commit: Adding functions to return unit-time from date, datetime, and time.
Repository: asterixdb Updated Branches: refs/heads/master e311a6346 -> 2176038dd Adding functions to return unit-time from date, datetime, and time. Change-Id: I5a71d73680d2ad47e5bb2c2d9ceec2ec0d676d09 Reviewed-on: https://asterix-gerrit.ics.uci.edu/913 Tested-by: Jenkins Reviewed-by: Ian Maxon Reviewed-by: Till Westmann Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/2176038d Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/2176038d Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/2176038d Branch: refs/heads/master Commit: 2176038ddeeab3ae0c6f78ff2b83746373c9dcf4 Parents: e311a63 Author: Preston Carman Authored: Wed Jun 8 09:45:30 2016 -0700 Committer: Preston Carman Committed: Thu Jun 9 15:48:12 2016 -0700 -- .../translator/util/FunctionCollection.java | 8 ++ .../date_functions/date_functions.3.query.aql | 21 +++- .../datetime_functions.3.query.aql | 28 - .../time_functions/time_functions.3.query.aql | 21 +++- .../date_functions/date_functions.3.query.sqlpp | 23 +++- .../datetime_functions.3.query.sqlpp| 24 +++- .../time_functions/time_functions.3.query.sqlpp | 23 +++- .../date_functions/date_functions.1.adm | 2 +- .../datetime_functions/datetime_functions.1.adm | 2 +- .../time_functions/time_functions.1.adm | 2 +- .../date_functions/date_functions.3.ast | 18 ++- .../datetime_functions/datetime_functions.3.ast | 32 ++ .../time_functions/time_functions.3.ast | 16 +++ .../src/site/markdown/aql/functions.md | 62 +- .../om/functions/AsterixBuiltinFunctions.java | 12 ++ .../UnixTimeFromDateInDaysDescriptor.java | 110 ++ .../UnixTimeFromDatetimeInMsDescriptor.java | 109 ++ .../UnixTimeFromDatetimeInSecsDescriptor.java | 113 +++ .../UnixTimeFromTimeInMsDescriptor.java | 110 ++ 19 files changed, 717 insertions(+), 19 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2176038d/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/FunctionCollection.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/FunctionCollection.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/FunctionCollection.java index 820d935..24ddaf6 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/FunctionCollection.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/FunctionCollection.java @@ -274,6 +274,10 @@ import org.apache.asterix.runtime.evaluators.functions.temporal.PrintDateTimeDes import org.apache.asterix.runtime.evaluators.functions.temporal.PrintTimeDescriptor; import org.apache.asterix.runtime.evaluators.functions.temporal.TimeFromDatetimeDescriptor; import org.apache.asterix.runtime.evaluators.functions.temporal.TimeFromUnixTimeInMsDescriptor; +import org.apache.asterix.runtime.evaluators.functions.temporal.UnixTimeFromDateInDaysDescriptor; +import org.apache.asterix.runtime.evaluators.functions.temporal.UnixTimeFromDatetimeInMsDescriptor; +import org.apache.asterix.runtime.evaluators.functions.temporal.UnixTimeFromDatetimeInSecsDescriptor; +import org.apache.asterix.runtime.evaluators.functions.temporal.UnixTimeFromTimeInMsDescriptor; import org.apache.asterix.runtime.evaluators.functions.temporal.YearMonthDurationGreaterThanComparatorDescriptor; import org.apache.asterix.runtime.evaluators.functions.temporal.YearMonthDurationLessThanComparatorDescriptor; import org.apache.asterix.runtime.evaluators.staticcodegen.CodeGenUtil; @@ -557,6 +561,10 @@ public class FunctionCollection { functionsToInjectUnkownHandling.add(TemporalIntervalEndDatetimeAccessor.FACTORY); // Temporal functions + functionsToInjectUnkownHandling.add(UnixTimeFromDateInDaysDescriptor.FACTORY); + functionsToInjectUnkownHandling.add(UnixTimeFromTimeInMsDescriptor.FACTORY); + functionsToInjectUnkownHandling.add(UnixTimeFromDatetimeInMsDescriptor.FACTORY); + functionsToInjectUnkownHandling.add(UnixTimeFromDatetimeInSecsDescriptor.FACTORY); functionsToInjectUnkownHandling.add(DateFromUnixTimeInDaysDescriptor.FACTORY); functionsToInjectUnkownHandling.add(DateFromDatetimeDescriptor.FACTORY); functionsToInjectUnkownHandling.add(TimeFromUnixTimeInMsDescriptor.FACTORY); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2176038d/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/date_functions/date_functions.3.query.aql --
asterixdb git commit: Fixed the nested loop join algorithm to use join memory parameter.
Repository: asterixdb Updated Branches: refs/heads/master f53c1c697 -> a26100160 Fixed the nested loop join algorithm to use join memory parameter. Change-Id: I50e24ea023c9ae9aa043698716e5021d4dafc327 Reviewed-on: https://asterix-gerrit.ics.uci.edu/953 Reviewed-by: Jenkins Tested-by: Jenkins Reviewed-by: Ian Maxon Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/a2610016 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/a2610016 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/a2610016 Branch: refs/heads/master Commit: a26100160ed6473393a9f155e54fba479f48d9c0 Parents: f53c1c6 Author: Preston Carman Authored: Tue Jun 21 15:17:50 2016 -0700 Committer: Preston Carman Committed: Tue Jun 21 16:56:42 2016 -0700 -- .../apache/asterix/api/common/APIFramework.java | 2 +- .../base/PhysicalOptimizationConfig.java| 20 +- .../algebricks/rewriter/util/JoinUtils.java | 42 +--- 3 files changed, 30 insertions(+), 34 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/a2610016/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java -- diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java index f07fb76..68fbba4 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java @@ -242,7 +242,7 @@ public class APIFramework { OptimizationConfUtil.getPhysicalOptimizationConfig().setFrameSize(frameSize); OptimizationConfUtil.getPhysicalOptimizationConfig().setMaxFramesExternalSort(sortFrameLimit); OptimizationConfUtil.getPhysicalOptimizationConfig().setMaxFramesExternalGroupBy(groupFrameLimit); - OptimizationConfUtil.getPhysicalOptimizationConfig().setMaxFramesHybridHash(joinFrameLimit); + OptimizationConfUtil.getPhysicalOptimizationConfig().setMaxFramesForJoin(joinFrameLimit); HeuristicCompilerFactoryBuilder builder = new HeuristicCompilerFactoryBuilder( AqlOptimizationContextFactory.INSTANCE); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/a2610016/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/PhysicalOptimizationConfig.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/PhysicalOptimizationConfig.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/PhysicalOptimizationConfig.java index f0f858d..7340882 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/PhysicalOptimizationConfig.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/PhysicalOptimizationConfig.java @@ -26,8 +26,8 @@ public class PhysicalOptimizationConfig { private static final String FRAMESIZE = "FRAMESIZE"; private static final String MAX_FRAMES_EXTERNAL_SORT = "MAX_FRAMES_EXTERNAL_SORT"; private static final String MAX_FRAMES_EXTERNAL_GROUP_BY = "MAX_FRAMES_EXTERNAL_GROUP_BY"; -private static final String MAX_FRAMES_LEFT_INPUT_HYBRID_HASH = "MAX_FRAMES_LEFT_INPUT_HYBRID_HASH"; -private static final String MAX_FRAMES_HYBRID_HASH = "MAX_FRAMES_HYBRID_HASH"; +private static final String MAX_FRAMES_FOR_JOIN_LEFT_INPUT = "MAX_FRAMES_FOR_JOIN_LEFT_INPUT"; +private static final String MAX_FRAMES_FOR_JOIN = "MAX_FRAMES_FOR_JOIN"; private static final String FUDGE_FACTOR = "FUDGE_FACTOR"; private static final String MAX_RECORDS_PER_FRAME = "MAX_RECORDS_PER_FRAME"; @@ -73,22 +73,22 @@ public class PhysicalOptimizationConfig { setInt(MAX_RECORDS_PER_FRAME, maxRecords); } -public int getMaxFramesLeftInputHybridHash() { +public int getMaxFramesForJoinLeftInput() { int frameSize = getFrameSize(); -return getInt(MAX_FRAMES_LEFT_INPUT_HYBRID_HASH, (int) (140L * 1024 * MB / frameSize)); +return getInt(MAX_FRAMES_FOR_JOIN_LEFT_INPUT, (int) (140L * 1024 * MB / frameSize)); } -public void setMaxFramesLeftInputHybridHash(int frameLimit) { -setInt(MAX_FRAMES_LEFT_INPUT_HYBRID_HASH, frameLimit); +public void setMaxFramesForJoinLeftInput(int frameLimit) { +setInt(MAX_FRAMES_FOR_JOIN_LEFT_INPUT, frameLimit); } -pu
asterixdb git commit: Rename join operator to be consistent with other join classes.
Repository: asterixdb Updated Branches: refs/heads/master 5b2d4c89c -> c1f984e65 Rename join operator to be consistent with other join classes. Change-Id: Ib38dba95243e894a2b1950de60ac7ab53ba007ca Reviewed-on: https://asterix-gerrit.ics.uci.edu/994 Reviewed-by: Yingyi Bu Tested-by: Jenkins Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/c1f984e6 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/c1f984e6 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/c1f984e6 Branch: refs/heads/master Commit: c1f984e655221bfe7bd444f9f39c3c777cf9c2cf Parents: 5b2d4c8 Author: Preston Carman Authored: Thu Jul 14 09:18:13 2016 -0700 Committer: Preston Carman Committed: Thu Jul 14 10:12:57 2016 -0700 -- .../operators/physical/NLJoinPOperator.java | 295 --- .../physical/NestedLoopJoinPOperator.java | 295 +++ .../algebricks/rewriter/util/JoinUtils.java | 8 +- 3 files changed, 299 insertions(+), 299 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/c1f984e6/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/NLJoinPOperator.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/NLJoinPOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/NLJoinPOperator.java deleted file mode 100644 index 5384347..000 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/NLJoinPOperator.java +++ /dev/null @@ -1,295 +0,0 @@ -/* - * 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. - */ -package org.apache.hyracks.algebricks.core.algebra.operators.physical; - -import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; -import org.apache.hyracks.algebricks.common.exceptions.NotImplementedException; -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; -import org.apache.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag; -import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionRuntimeProvider; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator.JoinKind; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema; -import org.apache.hyracks.algebricks.core.algebra.properties.BroadcastPartitioningProperty; -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; -import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements; -import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector; -import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext; -import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenHelper; -import org.apache.hyracks.algebricks.data.IBinaryBooleanInspector; -import org.apache.hyracks.algebricks.data.IBinaryBooleanInspectorFactory; -import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator; -import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory; -import org.apache.hyracks.api.comm.IFrameTupleAccessor; -import org.apache.hyracks.api.context.IHyracksTaskContext; -import org.apache.hyracks.api.dataflow.IOperatorDe
asterixdb git commit: Updated exchange operator names to include 'exchange' in the class name.
Repository: asterixdb Updated Branches: refs/heads/master c1f984e65 -> 61ec12893 Updated exchange operator names to include 'exchange' in the class name. Change-Id: Icd10c9a7ba0ad9e7b899a350d14213c2c0951e75 Reviewed-on: https://asterix-gerrit.ics.uci.edu/995 Reviewed-by: Yingyi Bu Tested-by: Jenkins Integration-Tests: Jenkins Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/61ec1289 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/61ec1289 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/61ec1289 Branch: refs/heads/master Commit: 61ec128932a6d56ea441915effc46f4248858087 Parents: c1f984e Author: Preston Carman Authored: Thu Jul 14 09:25:05 2016 -0700 Committer: Preston Carman Committed: Thu Jul 14 13:19:25 2016 -0700 -- ...ceRandomPartitioningFeedComputationRule.java | 4 +- .../logical/visitors/UsedVariableVisitor.java | 8 +- .../physical/BroadcastExchangePOperator.java| 75 + .../operators/physical/BroadcastPOperator.java | 75 - .../RandomPartitionExchangePOperator.java | 92 +++ .../physical/RandomPartitionPOperator.java | 92 --- .../RangePartitionExchangePOperator.java| 126 +++ .../RangePartitionMergeExchangePOperator.java | 155 +++ .../physical/RangePartitionMergePOperator.java | 155 --- .../physical/RangePartitionPOperator.java | 126 --- .../rules/EnforceStructuralPropertiesRule.java | 16 +- 11 files changed, 462 insertions(+), 462 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/61ec1289/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceRandomPartitioningFeedComputationRule.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceRandomPartitioningFeedComputationRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceRandomPartitioningFeedComputationRule.java index fb81885..4f5a848 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceRandomPartitioningFeedComputationRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceRandomPartitioningFeedComputationRule.java @@ -34,7 +34,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperat import org.apache.hyracks.algebricks.core.algebra.operators.logical.DataSourceScanOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; import org.apache.hyracks.algebricks.core.algebra.operators.physical.AssignPOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.physical.RandomPartitionPOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.physical.RandomPartitionExchangePOperator; import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain; import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule; @@ -77,7 +77,7 @@ public class IntroduceRandomPartitioningFeedComputationRule implements IAlgebrai } }; -exchangeOp.setPhysicalOperator(new RandomPartitionPOperator(domain)); +exchangeOp.setPhysicalOperator(new RandomPartitionExchangePOperator(domain)); op.getInputs().get(0).setValue(exchangeOp); exchangeOp.getInputs().add(new MutableObject(scanOp)); ExecutionMode em = ((AbstractLogicalOperator) scanOp).getExecutionMode(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/61ec1289/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java index efb45de..e966406 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java @@ -68,8 +68,8 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperato import org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator; import org.a
asterixdb git commit: Moved array list classes to hyracks-storage-common.
Repository: asterixdb Updated Branches: refs/heads/master 61ec12893 -> 8166898f7 Moved array list classes to hyracks-storage-common. * The move allows more projects to reused the array list code. Change-Id: I9c7a3568f35abb392c1de91ddf9bcabb0cac0a7b Reviewed-on: https://asterix-gerrit.ics.uci.edu/996 Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Till Westmann Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/8166898f Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/8166898f Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/8166898f Branch: refs/heads/master Commit: 8166898f7b96af7a8b70db3e38f556f869679418 Parents: 61ec128 Author: Preston Carman Authored: Thu Jul 14 09:42:11 2016 -0700 Committer: Preston Carman Committed: Thu Jul 14 16:22:36 2016 -0700 -- .../asterix/builders/AbstractListBuilder.java | 2 +- .../storage/am/btree/impls/BTreeOpContext.java | 4 +- .../am/common/ophelpers/DoubleArrayList.java| 102 -- .../am/common/ophelpers/IntArrayList.java | 102 -- .../am/common/ophelpers/LongArrayList.java | 103 --- .../common/util/TreeIndexBufferCacheWarmup.java | 2 +- .../storage/am/rtree/impls/PathList.java| 4 +- .../linearize/HilbertDoubleComparator.java | 4 +- .../rtree/linearize/ZCurveDoubleComparator.java | 2 +- .../am/rtree/linearize/ZCurveIntComparator.java | 2 +- .../common/arraylist/DoubleArrayList.java | 102 ++ .../storage/common/arraylist/IntArrayList.java | 102 ++ .../storage/common/arraylist/LongArrayList.java | 103 +++ 13 files changed, 317 insertions(+), 317 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8166898f/asterixdb/asterix-om/src/main/java/org/apache/asterix/builders/AbstractListBuilder.java -- diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/builders/AbstractListBuilder.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/builders/AbstractListBuilder.java index bb79ea2..b3cb416 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/builders/AbstractListBuilder.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/builders/AbstractListBuilder.java @@ -29,7 +29,7 @@ import org.apache.asterix.om.util.NonTaggedFormatUtil; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.data.std.api.IValueReference; import org.apache.hyracks.data.std.util.GrowableArray; -import org.apache.hyracks.storage.am.common.ophelpers.IntArrayList; +import org.apache.hyracks.storage.common.arraylist.IntArrayList; public abstract class AbstractListBuilder implements IAsterixListBuilder { protected final GrowableArray outputStorage; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8166898f/hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTreeOpContext.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTreeOpContext.java b/hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTreeOpContext.java index 3649433..f894c70 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTreeOpContext.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTreeOpContext.java @@ -41,9 +41,9 @@ import org.apache.hyracks.storage.am.common.api.ITreeIndexFrameFactory; import org.apache.hyracks.storage.am.common.api.ITreeIndexMetaDataFrame; import org.apache.hyracks.storage.am.common.api.ITreeIndexTupleReference; import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation; -import org.apache.hyracks.storage.am.common.ophelpers.IntArrayList; -import org.apache.hyracks.storage.am.common.ophelpers.LongArrayList; import org.apache.hyracks.storage.am.common.ophelpers.MultiComparator; +import org.apache.hyracks.storage.common.arraylist.IntArrayList; +import org.apache.hyracks.storage.common.arraylist.LongArrayList; import org.apache.hyracks.storage.common.buffercache.IExtraPageBlockHelper; public class BTreeOpContext implements IIndexOperationContext, IExtraPageBlockHelper { http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8166898f/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/ophelpers/DoubleArrayList.java ---
[2/2] asterixdb git commit: Sonar fixes and other clean up items.
Sonar fixes and other clean up items. Change-Id: Ieb72a0fef3c181282cc4c71b881a7cb52da86818 Reviewed-on: https://asterix-gerrit.ics.uci.edu/999 Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Till Westmann Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/bce1888e Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/bce1888e Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/bce1888e Branch: refs/heads/master Commit: bce1888eebdda3e306203d68c0c769a71dae739e Parents: 196db5d Author: Preston Carman Authored: Sat Jul 16 09:22:09 2016 -0700 Committer: Preston Carman Committed: Sat Jul 16 22:17:02 2016 -0700 -- ...econdaryIndexSearchExpressionAnnotation.java | 19 +-- .../nonvisitor/AIntervalPointable.java | 24 ++-- .../impl/AIntervalTypeComputer.java | 2 +- .../AbstractComparisonEvaluator.java| 2 +- .../comparisons/ComparisonHelper.java | 45 +++--- .../AIntervalConstructorDescriptor.java | 2 - .../AbstractIntervalLogicFuncDescriptor.java| 4 +- .../GetOverlappingIntervalDescriptor.java | 2 +- .../temporal/IntervalAfterDescriptor.java | 8 +- .../temporal/IntervalBeforeDescriptor.java | 4 +- .../temporal/IntervalCoveredByDescriptor.java | 8 +- .../temporal/IntervalCoversDescriptor.java | 8 +- .../temporal/IntervalEndedByDescriptor.java | 8 +- .../temporal/IntervalEndsDescriptor.java| 4 +- .../functions/temporal/IntervalLogic.java | 56 .../temporal/IntervalMeetsDescriptor.java | 8 +- .../temporal/IntervalMetByDescriptor.java | 8 +- .../IntervalOverlappedByDescriptor.java | 8 +- .../temporal/IntervalOverlapsDescriptor.java| 8 +- .../temporal/IntervalStartedByDescriptor.java | 8 +- .../temporal/IntervalStartsDescriptor.java | 8 +- .../functions/temporal/OverlapDescriptor.java | 11 +- .../AbstractExpressionAnnotation.java | 35 + .../ExpressionAnnotationNoCopyImpl.java | 14 +- .../IndexedNLJoinExpressionAnnotation.java | 18 +-- .../logical/AbstractLogicalOperator.java| 37 +++-- .../operators/logical/ReplicateOperator.java| 12 +- .../physical/AbstractExchangePOperator.java | 1 + .../physical/BroadcastExchangePOperator.java| 6 +- .../physical/OneToOneExchangePOperator.java | 5 +- .../physical/RandomMergeExchangePOperator.java | 4 +- .../operators/physical/ReplicatePOperator.java | 2 +- .../operators/physical/UnionAllPOperator.java | 3 - .../properties/IPartitioningProperty.java | 21 ++- .../typing/PropagatingTypeEnvironment.java | 4 +- .../algebricks/core/jobgen/impl/JobBuilder.java | 49 +++ .../PointableBinaryComparatorFactory.java | 2 +- .../hadoop/HadoopMapperOperatorDescriptor.java | 4 + .../hadoop/HadoopReadOperatorDescriptor.java| 2 +- .../mapreduce/MapperOperatorDescriptor.java | 8 +- .../dataflow/std/base/AbstractStateObject.java | 12 ++ .../AbstractTuplePointerAccessor.java | 2 +- .../IPartitionedTupleBufferManager.java | 2 +- .../std/buffermanager/ITupleBufferManager.java | 2 +- .../VPartitionTupleBufferManager.java | 6 +- .../VariableDeletableTupleMemoryManager.java| 8 +- .../MToNBroadcastConnectorDescriptor.java | 136 +++ .../MToNReplicatingConnectorDescriptor.java | 136 --- .../std/group/HashSpillableTableFactory.java| 8 +- .../dataflow/std/join/InMemoryHashJoin.java | 19 ++- .../std/misc/SplitOperatorDescriptor.java | 7 - .../dataflow/std/sort/FrameSorterMergeSort.java | 8 +- .../dataflow/std/sort/TupleSorterHeapSort.java | 4 +- .../std/structures/SerializableHashTable.java | 34 ++--- .../dataflow/std/structures/TuplePointer.java | 35 +++-- .../AbstractTupleMemoryManagerTest.java | 4 +- .../VPartitionTupleBufferManagerTest.java | 4 +- .../VariableTupleMemoryManagerTest.java | 6 +- .../structures/SerializableHashTableTest.java | 2 +- .../tests/integration/CountOfCountsTest.java| 8 +- .../TPCHCustomerOrderHashJoinTest.java | 12 +- .../TPCHCustomerOrderNestedLoopJoinTest.java| 16 +-- .../common/util/TreeIndexBufferCacheWarmup.java | 3 +- .../linearize/HilbertDoubleComparator.java | 1 - .../rtree/linearize/ZCurveDoubleComparator.java | 1 - .../common/arraylist/DoubleArrayList.java | 3 +- .../storage/common/arraylist/IntArrayList.java | 3 +- .../storage/common/arraylist/LongArrayList.java | 4 +- 68 files changed, 494 insertions(+), 474 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/bce1888e/asterixd
[1/2] asterixdb git commit: Sonar fixes and other clean up items.
Repository: asterixdb Updated Branches: refs/heads/master 196db5d8a -> bce1888ee http://git-wip-us.apache.org/repos/asf/asterixdb/blob/bce1888e/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/typing/PropagatingTypeEnvironment.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/typing/PropagatingTypeEnvironment.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/typing/PropagatingTypeEnvironment.java index fee9174..9d2a5da 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/typing/PropagatingTypeEnvironment.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/typing/PropagatingTypeEnvironment.java @@ -36,9 +36,9 @@ public class PropagatingTypeEnvironment extends AbstractTypeEnvironment { private final ITypeEnvPointer[] envPointers; -private final List nonNullVariables = new ArrayList(); +private final List nonNullVariables = new ArrayList<>(); -private final List> correlatedNullableVariableLists = new ArrayList>(); +private final List> correlatedNullableVariableLists = new ArrayList<>(); public PropagatingTypeEnvironment(IExpressionTypeComputer expressionTypeComputer, IMissableTypeComputer nullableTypeComputer, IMetadataProvider metadataProvider, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/bce1888e/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/JobBuilder.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/JobBuilder.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/JobBuilder.java index af40250..4c42db8 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/JobBuilder.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/jobgen/impl/JobBuilder.java @@ -49,19 +49,19 @@ public class JobBuilder implements IHyracksJobBuilder { private final AlgebricksAbsolutePartitionConstraint clusterLocations; private final AlgebricksAbsolutePartitionConstraint countOneLocation; -private final Map> outEdges = new HashMap>(); -private final Map> inEdges = new HashMap>(); -private final Map> connectors = new HashMap>(); +private final Map> outEdges = new HashMap<>(); +private final Map> inEdges = new HashMap<>(); +private final Map> connectors = new HashMap<>(); -private final Map> microOps = new HashMap>(); -private final Map revMicroOpMap = new HashMap(); -private final Map hyracksOps = new HashMap(); -private final Map pcForMicroOps = new HashMap(); +private final Map> microOps = new HashMap<>(); +private final Map revMicroOpMap = new HashMap<>(); +private final Map hyracksOps = new HashMap<>(); +private final Map pcForMicroOps = new HashMap<>(); -private final Map algebraicOpBelongingToMetaAsterixOp = new HashMap(); -private final Map>> metaAsterixOpSkeletons = new HashMap>>(); -private final Map metaAsterixOps = new HashMap(); -private final Map partitionConstraintMap = new HashMap(); +private final Map algebraicOpBelongingToMetaAsterixOp = new HashMap<>(); +private final Map>> metaAsterixOpSkeletons = new HashMap<>(); +private final Map metaAsterixOps = new HashMap<>(); +private final Map partitionConstraintMap = new HashMap<>(); private int aodCounter = 0; @@ -123,14 +123,14 @@ public class JobBuilder implements IHyracksJobBuilder { int destInputIndex) { ArrayList outputs = outEdges.get(src); if (outputs == null) { -outputs = new ArrayList(); +outputs = new ArrayList<>(); outEdges.put(src, outputs); } addAtPos(outputs, dest, srcOutputIndex); ArrayList inp = inEdges.get(dest); if (inp == null) { -inp = new ArrayList(); +inp = new ArrayList<>(); inEdges.put(dest, inp); } addAtPos(inp, src, destInputIndex); @@ -142,7 +142,9 @@ public class JobBuilder implements IHyracksJobBuilder { } @Override -public void contributeAlgebricksPartitionConstraint(IOperatorDescriptor opDesc, AlgebricksPartitionConstraint apc) { +public void contributeAlgebricksPartitionConstraint(IOperatorDescriptor opDesc, +AlgebricksPartitionConstraint apcArg) { +AlgebricksPartitionConstraint apc = apcArg; i
asterixdb git commit: Code clean up and sonar fixes.
Repository: asterixdb Updated Branches: refs/heads/master 0ae44e309 -> 78c6115d1 Code clean up and sonar fixes. Change-Id: I55e2fbca5480ede8ff6bf47e843ca15c3d9d26d4 Reviewed-on: https://asterix-gerrit.ics.uci.edu/1157 Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Till Westmann Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/78c6115d Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/78c6115d Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/78c6115d Branch: refs/heads/master Commit: 78c6115d1e7a40edbd66a681e862f8e934785a2c Parents: 0ae44e3 Author: Preston Carman Authored: Thu Sep 8 13:17:31 2016 -0700 Committer: Preston Carman Committed: Thu Sep 8 16:07:24 2016 -0700 -- .../evaluators/common/FunctionManagerImpl.java | 6 ++-- .../CalendarDurationFromDateTimeDescriptor.java | 6 ++-- .../algebra/functions/FunctionIdentifier.java | 2 +- .../HashPartitionExchangePOperator.java | 2 +- .../algebra/util/OperatorPropertiesUtil.java| 15 + .../rules/EnforceStructuralPropertiesRule.java | 35 +++- .../rewriter/rules/IntroduceProjectsRule.java | 18 +- .../VPartitionTupleBufferManager.java | 10 -- .../VariableDeletableTupleMemoryManager.java| 8 ++--- .../join/NestedLoopJoinOperatorDescriptor.java | 28 +++- .../std/sort/AbstractExternalSortRunMerger.java | 24 +++--- .../dataflow/std/sort/AbstractFrameSorter.java | 16 - .../sort/AbstractSorterOperatorDescriptor.java | 13 .../std/util/FrameTuplePairComparator.java | 8 ++--- .../VPartitionTupleBufferManagerTest.java | 10 ++ 15 files changed, 88 insertions(+), 113 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/78c6115d/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/FunctionManagerImpl.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/FunctionManagerImpl.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/FunctionManagerImpl.java index 1bbd745..034cfeb 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/FunctionManagerImpl.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/FunctionManagerImpl.java @@ -35,12 +35,12 @@ public class FunctionManagerImpl implements IFunctionManager { private final Map, IFunctionDescriptorFactory> functions; public FunctionManagerImpl() { -functions = new HashMap, IFunctionDescriptorFactory>(); +functions = new HashMap<>(); } @Override public synchronized IFunctionDescriptor lookupFunction(FunctionIdentifier fid) throws AlgebricksException { -Pair key = new Pair(fid, fid.getArity()); +Pair key = new Pair<>(fid, fid.getArity()); IFunctionDescriptorFactory factory = functions.get(key); if (factory == null) { throw new AlgebricksException("Inappropriate use of function " + "'" + fid.getName() + "'"); @@ -58,7 +58,7 @@ public class FunctionManagerImpl implements IFunctionManager { public synchronized void unregisterFunction(IFunctionDescriptorFactory descriptorFactory) throws AlgebricksException { FunctionIdentifier fid = descriptorFactory.createFunctionDescriptor().getIdentifier(); -Pair key = new Pair(fid, fid.getArity()); +Pair key = new Pair<>(fid, fid.getArity()); functions.remove(key); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/78c6115d/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/CalendarDurationFromDateTimeDescriptor.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/CalendarDurationFromDateTimeDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/CalendarDurationFromDateTimeDescriptor.java index c42865c..b053d99 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/CalendarDurationFromDateTimeDescriptor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/CalendarDurationFromDateTimeDescriptor.java @@ -63,9 +63,9 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference; * */ public class CalendarDurationFromDateTimeDescriptor extends AbstractScalarFunctionDynamicDescript
asterixdb git commit: ASTERIXDB-1635 Fix for overlap-bins start for dates.
Repository: asterixdb Updated Branches: refs/heads/master b0dc27e8d -> 2a73f4112 ASTERIXDB-1635 Fix for overlap-bins start for dates. The fix involves two code changes and several sonar fixes. The code changes are the following: - DurationArithmeticOperations line 75: When the month was zero, an index out of bound error occured in line 88 or 92. The month value should be between 1 and 12. - OverlapBinsDescriptor line 170: The Gregorian Calendar is expecting a value in ms. When a date value comes in, AsterixDB represents the value as the number of days from epoc. So the year for a date basically allways translated to 1970. In lines 121, a condition was added to check if the interval was a date, if so, convert the date to ms. Change-Id: I24122a84ef9edda4b05260af881c430177f1dc86 Reviewed-on: https://asterix-gerrit.ics.uci.edu/1151 Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Steven Jacobs Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/2a73f411 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/2a73f411 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/2a73f411 Branch: refs/heads/master Commit: 2a73f411264b282aefed51fa35322187f892d707 Parents: b0dc27e Author: Preston Carman Authored: Thu Sep 8 12:06:44 2016 -0700 Committer: Preston Carman Committed: Fri Sep 9 09:40:29 2016 -0700 -- .../datetime_functions.3.query.aql | 4 + .../overlap_bins/overlap_bins.3.query.aql | 2 +- .../datetime_functions.3.query.sqlpp| 2 + .../overlap_bins/overlap_bins.3.query.sqlpp | 2 +- .../datetime_functions/datetime_functions.1.adm | 2 +- .../temporal/overlap_bins/overlap_bins.1.adm| 2 +- .../datetime_functions/datetime_functions.3.ast | 26 +++ .../temporal/overlap_bins/overlap_bins.3.ast| 2 +- .../src/site/markdown/aql/functions.md | 9 +- .../om/base/temporal/DateTimeFormatUtils.java | 200 ++- .../temporal/DurationArithmeticOperations.java | 32 +-- .../temporal/OverlapBinsDescriptor.java | 25 ++- 12 files changed, 179 insertions(+), 129 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a73f411/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.3.query.aql -- diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.3.query.aql index b94b5bf..47831e2 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.3.query.aql +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/datetime_functions/datetime_functions.3.query.aql @@ -39,12 +39,16 @@ let $dt3 := $dt1 + $dr1 let $null6 := null + $dr1 let $null7 := $dt1 + null let $c1 := $dt1 = ($dt1 - $dt3) + $dt3 +let $dt4 := $dt1 - duration("P1MT1S") +let $dt5 := $dt1 + duration("P1MT1S") return { "datetime1" : $dt1, "datetime1secs": $dtsecs1, "datetime2" : $dt2, "datetime3" : $dt3, + "datetime4" : $dt4, + "datetime5" : $dt5, "unixms1" : $unixms1, "unixsecs1": $unixsecs1, "duration1" : $dr1, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a73f411/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/overlap_bins/overlap_bins.3.query.aql -- diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/overlap_bins/overlap_bins.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/overlap_bins/overlap_bins.3.query.aql index 8011ad6..bfb5527 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/overlap_bins/overlap_bins.3.query.aql +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/overlap_bins/overlap_bins.3.query.aql @@ -25,5 +25,5 @@ let $itv1 := interval(time("17:23:37"), time("18:30:21")) let $itv2 := interval(date("1984-03-17"), date("2013-08-22")) let $itv3 := interval(datetime("1800-01-01T23:59:48.938"), datetime("2015-07-26T13:28:30.218")) return { "timebins": overlap-bins($itv1, time("00:00:00"), day-time-duration("PT30M")), - "datebins": overlap-bins($itv2, date("1990-01-01"), year-month-duration("P20Y")), + "datebins": overlap-bins($itv2, date("1990-01-01"), year-month-duration("P10Y")), "datetimebins": overlap-bins($itv3, datetime("1900-01-01T00:00:00.000"), year-month-duration("P100Y")) } http://git-wip-us.apache.org/repos/asf
[1/2] asterixdb git commit: Interval join test questions for AQL.
Repository: asterixdb Updated Branches: refs/heads/master 717e9415c -> 2e3d16739 http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2e3d1673/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm -- diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm new file mode 100644 index 000..f38e40b --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_before/interval_before.4.adm @@ -0,0 +1,5 @@ +{ "staff": "Franklin", "student": "Olga" } +{ "staff": "Maryann", "student": "Charles" } +{ "staff": "Maryann", "student": "Frank" } +{ "staff": "Maryann", "student": "Mary" } +{ "staff": "Maryann", "student": "Olga" } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2e3d1673/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm -- diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm new file mode 100644 index 000..4e22101 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.3.adm @@ -0,0 +1,15 @@ +{ "staff": "Elisabeth", "student": "Karen" } +{ "staff": "Elisabeth", "student": "Mary" } +{ "staff": "Elisabeth", "student": "Steve" } +{ "staff": "Elisabeth", "student": "Tess" } +{ "staff": "Franklin", "student": "Karen" } +{ "staff": "Maryann", "student": "Karen" } +{ "staff": "Maryann", "student": "Steve" } +{ "staff": "Maryann", "student": "Tess" } +{ "staff": "Vicky", "student": "Charles" } +{ "staff": "Vicky", "student": "Frank" } +{ "staff": "Vicky", "student": "Karen" } +{ "staff": "Vicky", "student": "Mary" } +{ "staff": "Vicky", "student": "Olga" } +{ "staff": "Vicky", "student": "Steve" } +{ "staff": "Vicky", "student": "Tess" } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2e3d1673/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.4.adm -- diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.4.adm new file mode 100644 index 000..1a67e10 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_covers/interval_covers.4.adm @@ -0,0 +1,4 @@ +{ "staff": "Zack", "student": "Charles" } +{ "staff": "Zack", "student": "Frank" } +{ "staff": "Zack", "student": "Mary" } +{ "staff": "Zack", "student": "Olga" } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2e3d1673/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm -- diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm new file mode 100644 index 000..5af9101 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.3.adm @@ -0,0 +1,7 @@ +{ "staff": "Elisabeth", "student": "Steve" } +{ "staff": "Elisabeth", "student": "Tess" } +{ "staff": "Franklin", "student": "Karen" } +{ "staff": "Maryann", "student": "Steve" } +{ "staff": "Maryann", "student": "Tess" } +{ "staff": "Vicky", "student": "Steve" } +{ "staff": "Vicky", "student": "Tess" } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2e3d1673/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.4.adm -- diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.4.adm new file mode 100644 index 000..5857139 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/interval_joins/interval_ends/interval_ends.4.adm @@ -0,0 +1 @@ +{ "staff": "Zack
[2/2] asterixdb git commit: Interval join test questions for AQL.
Interval join test questions for AQL. The system had tests for checking the interval comparison functions, but no checks for various interval joins. Change-Id: I3e492d1afba693a50cb75918399c26b8ce19899a Reviewed-on: https://asterix-gerrit.ics.uci.edu/1234 Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Steven Jacobs Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/2e3d1673 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/2e3d1673 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/2e3d1673 Branch: refs/heads/master Commit: 2e3d16739aa3e9ab777dd5170c559ee1e0dcfa24 Parents: 717e941 Author: Preston Carman Authored: Mon Oct 3 15:48:13 2016 -0700 Committer: Preston Carman Committed: Mon Oct 3 23:26:06 2016 -0700 -- .../TranslateIntervalExpressionRule.java| 98 -- .../asterix-app/data/tinycollege/staff.adm | 7 + .../asterix-app/data/tinycollege/students.adm | 7 + .../interval_overlapping.3.adm | 35 .../interval_overlapping.4.adm | 35 .../queries/temporal/TemporalQueries.xml| 186 +++ .../interval_before/interval_before.1.ddl.aql | 44 + .../interval_before.2.update.aql| 31 .../interval_before/interval_before.3.query.aql | 31 .../interval_before/interval_before.4.query.aql | 31 .../interval_covers/interval_covers.1.ddl.aql | 44 + .../interval_covers.2.update.aql| 31 .../interval_covers/interval_covers.3.query.aql | 31 .../interval_covers/interval_covers.4.query.aql | 31 .../interval_ends/interval_ends.1.ddl.aql | 44 + .../interval_ends/interval_ends.2.update.aql| 31 .../interval_ends/interval_ends.3.query.aql | 31 .../interval_ends/interval_ends.4.query.aql | 31 .../interval_meets/interval_meets.1.ddl.aql | 44 + .../interval_meets/interval_meets.2.update.aql | 31 .../interval_meets/interval_meets.3.query.aql | 31 .../interval_meets/interval_meets.4.query.aql | 31 .../interval_overlapping.1.ddl.aql | 44 + .../interval_overlapping.2.update.aql | 31 .../interval_overlapping.3.query.aql| 31 .../interval_overlapping.4.query.aql| 31 .../interval_overlaps.1.ddl.aql | 44 + .../interval_overlaps.2.update.aql | 31 .../interval_overlaps.3.query.aql | 31 .../interval_overlaps.4.query.aql | 31 .../interval_starts/interval_starts.1.ddl.aql | 44 + .../interval_starts.2.update.aql| 31 .../interval_starts/interval_starts.3.query.aql | 31 .../interval_starts/interval_starts.4.query.aql | 31 .../interval_before/interval_before.3.adm | 3 + .../interval_before/interval_before.4.adm | 5 + .../interval_covers/interval_covers.3.adm | 15 ++ .../interval_covers/interval_covers.4.adm | 4 + .../interval_ends/interval_ends.3.adm | 7 + .../interval_ends/interval_ends.4.adm | 1 + .../interval_meets/interval_meets.3.adm | 2 + .../interval_meets/interval_meets.4.adm | 4 + .../interval_overlapping.3.adm | 35 .../interval_overlapping.4.adm | 35 .../interval_overlaps/interval_overlaps.3.adm | 6 + .../interval_overlaps/interval_overlaps.4.adm | 10 + .../interval_starts/interval_starts.3.adm | 1 + .../interval_starts/interval_starts.4.adm | 4 + .../src/test/resources/runtimets/testsuite.xml | 144 +- .../src/main/markdown/builtins/7_allens.md | 7 +- .../functions/temporal/IntervalLogic.java | 14 +- 51 files changed, 1462 insertions(+), 162 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2e3d1673/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/temporal/TranslateIntervalExpressionRule.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/temporal/TranslateIntervalExpressionRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/temporal/TranslateIntervalExpressionRule.java index 80cdb21..15cda86 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/temporal/TranslateIntervalExpressionRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/temporal/TranslateIntervalExpressionRule.java @@ -19,7 +19,9 @@ package org.apache.asterix.optimizer.rules.temporal; import java.util.ArrayList; +impor
[13/50] [abbrv] asterixdb git commit: Better defaults for partition join.
Better defaults for partition join. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/26fc1530 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/26fc1530 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/26fc1530 Branch: refs/heads/ecarm002/interval_join_merge Commit: 26fc1530f230120eaf185b46bd8065883389a77f Parents: 1f3fb82 Author: Preston Carman Authored: Thu Jul 14 16:43:52 2016 -0700 Committer: Preston Carman Committed: Thu Jul 14 16:43:52 2016 -0700 -- .../IntervalPartitionUtil.java | 31 ++-- 1 file changed, 15 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/26fc1530/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionUtil.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionUtil.java index 4752e00..0977adc 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionUtil.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionUtil.java @@ -33,24 +33,17 @@ import org.apache.hyracks.dataflow.common.data.partition.range.IRangeMap; public class IntervalPartitionUtil { public static final double C_CPU = 0.5; -public static final double C_IO = 100; +public static final double C_IO = 10; +public static final int ITERATION_LIMIT = 20; private IntervalPartitionUtil() { } public static void main(String[] args) { - -// -//PhysicalOptimizationConfig poc = new PhysicalOptimizationConfig(); -// -//long[] countList = { poc.getMaxFramesForJoinLeftInput() }; -//long[] maxDurationList = { poc.getMaxIntervalDuration() }; -//int[] tuplesList = { poc.getMaxRecordsPerFrame() }; - -long[] countList = { 2441, 9766, 39063, 156250, 625000, 250, 1000 }; -long[] maxDurationList = { 1, 3, 30, 300, 3000, 3, 30 }; -int[] tuplesList = { 5, 50, 300, 900 }; - +PhysicalOptimizationConfig poc = new PhysicalOptimizationConfig(); +long[] countList = { poc.getMaxFramesForJoinLeftInput(), 2441, 9766, 39063, 156250, 625000, 250, 1000 }; +long[] maxDurationList = { poc.getMaxIntervalDuration(), 1, 3, 30, 300, 3000, 3, 30 }; +int[] tuplesList = { poc.getMaxRecordsPerFrame(), 5, 50, 300, 900 }; int k; for (long count : countList) { @@ -62,7 +55,6 @@ public class IntervalPartitionUtil { } } } - } public static int determineK(long countR, long maxDurationR, long countS, long maxDurationS, int avgTuplePerFrame) { @@ -76,12 +68,19 @@ public class IntervalPartitionUtil { long prn = determinePn(kn, countR, deltaR); double tn = determineTn(kn, determinePn(kn, countS, deltaS)); -while ((kn != knMinusOne) && (kn != knMinusTwo)) { +int count = 0; +while ((kn != knMinusOne) && (kn != knMinusTwo) && count < ITERATION_LIMIT) { knMinusTwo = knMinusOne; knMinusOne = kn; kn = determineKn(countR, countS, avgTuplePerFrame, prn, tn); prn = determinePn(kn, countR, deltaR); tn = determineTn(kn, determinePn(kn, countS, deltaS)); +count++; +} +if (count == ITERATION_LIMIT) { +kn = (kn + knMinusOne + knMinusTwo) / 3; +} else if (kn == knMinusTwo) { +kn = (kn + knMinusTwo) / 2; } if (kn > Integer.MAX_VALUE) { return Integer.MAX_VALUE; @@ -97,7 +96,7 @@ public class IntervalPartitionUtil { } public static long determinePn(long kn, long count, double delta) { -long knDelta = (long) Math.ceil(kn * delta); +double knDelta = Math.ceil(kn * delta); return Math.min((long) ((kn * knDelta) + kn - ((knDelta * knDelta) / 2.0) - (knDelta / 2.0)), count); }
[14/50] [abbrv] asterixdb git commit: merge master
merge master Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/88cbdc4c Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/88cbdc4c Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/88cbdc4c Branch: refs/heads/ecarm002/interval_join_merge Commit: 88cbdc4c7215a39d8d70ddf6ea243b8f22aa2406 Parents: 26fc153 8166898 Author: Preston Carman Authored: Thu Jul 14 16:45:09 2016 -0700 Committer: Preston Carman Committed: Thu Jul 14 16:45:09 2016 -0700 -- .../am/common/ophelpers/LongArrayList.java | 103 --- .../storage/common/arraylist/LongArrayList.java | 1 + 2 files changed, 1 insertion(+), 103 deletions(-) --
[40/50] [abbrv] asterixdb git commit: updated partition algorithm with build only side memory
updated partition algorithm with build only side memory Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/19f0997f Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/19f0997f Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/19f0997f Branch: refs/heads/ecarm002/interval_join_merge Commit: 19f0997ff0a758e5193e531b220ea7c7e3424a43 Parents: f6dba46 Author: Preston Carman Authored: Wed Sep 28 16:16:05 2016 -0700 Committer: Preston Carman Committed: Wed Sep 28 16:16:05 2016 -0700 -- ...IntervalPartitionJoinOperatorDescriptor.java | 12 +- .../IntervalPartitionJoiner.java| 273 +++ .../dataflow/common/io/RunFileReader.java | 13 + .../dataflow/std/join/RunFileStream.java| 8 + 4 files changed, 184 insertions(+), 122 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/19f0997f/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoinOperatorDescriptor.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoinOperatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoinOperatorDescriptor.java index c7986e6..60a4697 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoinOperatorDescriptor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoinOperatorDescriptor.java @@ -159,7 +159,7 @@ public class IntervalPartitionJoinOperatorDescriptor extends AbstractOperatorDes state.ipj = new IntervalPartitionJoiner(ctx, state.memoryForJoin, state.k, state.intervalPartitions, BUILD_REL, PROBE_REL, imjc, buildRd, probeRd, buildHpc, probeHpc); -state.ipj.initBuild(); +state.ipj.buildInit(); LOGGER.setLevel(Level.FINE); System.out.println("IntervalPartitionJoinOperatorDescriptor: Logging level is: " + LOGGER.getLevel()); if (LOGGER.isLoggable(Level.FINE)) { @@ -171,13 +171,13 @@ public class IntervalPartitionJoinOperatorDescriptor extends AbstractOperatorDes @Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { -state.ipj.build(buffer); +state.ipj.buildStep(buffer); } @Override public void close() throws HyracksDataException { if (!failure) { -state.ipj.closeBuild(); +state.ipj.buildClose(); ctx.setStateObject(state); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("IntervalPartitionJoin closed its build phase"); @@ -216,7 +216,7 @@ public class IntervalPartitionJoinOperatorDescriptor extends AbstractOperatorDes new TaskId(new ActivityId(getOperatorId(), BUILD_AND_PARTITION_ACTIVITY_ID), partition)); writer.open(); -state.ipj.initProbe(); +state.ipj.probeInit(); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("IntervalPartitionJoin is starting the probe phase."); @@ -225,7 +225,7 @@ public class IntervalPartitionJoinOperatorDescriptor extends AbstractOperatorDes @Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { -state.ipj.probe(buffer, writer); +state.ipj.probeStep(buffer, writer); } @Override @@ -235,7 +235,7 @@ public class IntervalPartitionJoinOperatorDescriptor extends AbstractOperatorDes @Override public void close() throws HyracksDataException { -state.ipj.closeProbe(writer); +state.ipj.probeClose(writer); state.ipj.joinSpilledPartitions(writer); state.ipj.closeAndDeleteRunFiles(); writer.close(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/19f0997f/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoiner.java -- diff --git a/asterixdb/a
[23/50] [abbrv] asterixdb git commit: Finalize the range in context.
Finalize the range in context. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/13af53a7 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/13af53a7 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/13af53a7 Branch: refs/heads/ecarm002/interval_join_merge Commit: 13af53a7b26c421e58848f6614b2cd0534cd72f4 Parents: 2061a38 Author: Preston Carman Authored: Mon Aug 15 14:30:00 2016 -0700 Committer: Preston Carman Committed: Mon Aug 15 14:30:00 2016 -0700 -- .../physical/AbstractIntervalJoinPOperator.java | 19 +++ .../IntervalLocalRangeOperatorDescriptor.java | 2 +- .../rules/IntervalSplitPartitioningRule.java| 8 --- .../asterix/optimizer/rules/util/JoinUtils.java | 25 +++- .../AfterIntervalMergeJoinCheckerFactory.java | 4 ++-- .../BeforeIntervalMergeJoinCheckerFactory.java | 4 ++-- ...overedByIntervalMergeJoinCheckerFactory.java | 4 ++-- .../CoversIntervalMergeJoinCheckerFactory.java | 4 ++-- .../EndedByIntervalMergeJoinCheckerFactory.java | 4 ++-- .../EndsIntervalMergeJoinCheckerFactory.java| 4 ++-- .../joins/IIntervalMergeJoinCheckerFactory.java | 4 ++-- .../MeetsIntervalMergeJoinCheckerFactory.java | 4 ++-- .../MetByIntervalMergeJoinCheckerFactory.java | 4 ++-- ...lappedByIntervalMergeJoinCheckerFactory.java | 4 ++-- ...rlappingIntervalMergeJoinCheckerFactory.java | 15 ++-- ...OverlapsIntervalMergeJoinCheckerFactory.java | 4 ++-- ...tartedByIntervalMergeJoinCheckerFactory.java | 4 ++-- .../StartsIntervalMergeJoinCheckerFactory.java | 4 ++-- .../intervalindex/IntervalIndexJoiner.java | 2 +- ...IntervalPartitionJoinOperatorDescriptor.java | 16 +++-- .../operators/physical/MergeJoinPOperator.java | 15 +--- .../properties/OrderedPartitionedProperty.java | 6 + .../algebra/util/OperatorPropertiesUtil.java| 15 +++- .../rules/EnforceStructuralPropertiesRule.java | 4 +--- .../hyracks/dataflow/std/base/RangeId.java | 25 ++-- .../connectors/PartitionRangeDataWriter.java| 2 +- .../std/join/IMergeJoinCheckerFactory.java | 4 ++-- .../std/join/MergeJoinOperatorDescriptor.java | 2 +- .../join/NaturalMergeJoinCheckerFactory.java| 4 ++-- .../misc/RangeForwardOperatorDescriptor.java| 3 ++- .../std/sort/AbstractExternalSortRunMerger.java | 24 +-- 31 files changed, 155 insertions(+), 88 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/13af53a7/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/AbstractIntervalJoinPOperator.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/AbstractIntervalJoinPOperator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/AbstractIntervalJoinPOperator.java index c400cdf..3be9e80 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/AbstractIntervalJoinPOperator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/AbstractIntervalJoinPOperator.java @@ -84,10 +84,18 @@ public abstract class AbstractIntervalJoinPOperator extends AbstractJoinPOperato return mjcf; } -public RangeId getRangeId() { +public RangeId getLeftRangeId() { return leftRangeId; } +public RangeId getRightRangeId() { +return rightRangeId; +} + +public IRangeMap getRangeMapHint() { +return rangeMapHint; +} + @Override public PhysicalOperatorTag getOperatorTag() { return PhysicalOperatorTag.EXTENSION_OPERATOR; @@ -111,7 +119,8 @@ public abstract class AbstractIntervalJoinPOperator extends AbstractJoinPOperato for (LogicalVariable v : keysLeftBranch) { order.add(new OrderColumn(v, mjcf.isOrderAsc() ? OrderKind.ASC : OrderKind.DESC)); } -IPartitioningProperty pp = new OrderedPartitionedProperty(order, null, leftRangeId, RangePartitioningType.PROJECT, rangeMapHint); +IPartitioningProperty pp = new OrderedPartitionedProperty(order, null, leftRangeId, +RangePartitioningType.PROJECT, rangeMapHint); List propsLocal = new ArrayList<>(); propsLocal.add(new LocalOrderProperty(order)); deliveredProperties = new StructuralPropertiesVector(pp, propsLocal); @@ -141,8 +150,10 @@ public abstract class AbstractIntervalJoinPOperator extends AbstractJoinPOperato ispRight.add(new LocalOrderProperty(orderRight)); if (op.getExecutionMode() == AbstractLogicalOperator.ExecutionMode.PARTITIONED) { -
[25/50] [abbrv] asterixdb git commit: Working version of the range connector and interval join partition.
Working version of the range connector and interval join partition. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/1487f2be Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/1487f2be Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/1487f2be Branch: refs/heads/ecarm002/interval_join_merge Commit: 1487f2be3a364e32e3fee7a10246b6f548f75476 Parents: 13af53a Author: Preston Carman Authored: Wed Aug 24 14:35:57 2016 -0700 Committer: Preston Carman Committed: Wed Aug 24 14:35:57 2016 -0700 -- .../physical/AbstractIntervalJoinPOperator.java | 56 +--- .../IntervalLocalRangeOperatorDescriptor.java | 2 +- .../IntervalPartitionJoinPOperator.java | 86 +++- .../asterix/optimizer/base/RuleCollections.java | 2 +- .../rules/IntervalSplitPartitioningRule.java| 61 .../asterix/optimizer/rules/util/JoinUtils.java | 128 ++--- .../translator/util/FunctionCollection.java | 6 + .../config/AsterixPropertiesAccessor.java | 6 +- .../om/functions/AsterixBuiltinFunctions.java | 6 + .../evaluators/common/FunctionManagerImpl.java | 6 +- .../CalendarDurationFromDateTimeDescriptor.java | 6 +- .../IntervalPartitionJoinEndDescriptor.java | 58 .../temporal/IntervalPartitionJoinFunction.java | 138 +++ .../IntervalPartitionJoinStartDescriptor.java | 58 ...rlappingIntervalMergeJoinCheckerFactory.java | 3 +- .../IntervalPartitionComputerFactory.java | 24 +--- ...IntervalPartitionJoinOperatorDescriptor.java | 28 +--- .../IntervalPartitionUtil.java | 22 +++ .../algebra/functions/FunctionIdentifier.java | 3 +- .../logical/visitors/SchemaVariableVisitor.java | 1 + .../rules/EnforceStructuralPropertiesRule.java | 3 +- .../rewriter/rules/IntroduceProjectsRule.java | 18 +-- .../SetAlgebricksPhysicalOperatorsRule.java | 7 + .../hyracks/dataflow/std/base/RangeId.java | 3 +- .../connectors/PartitionRangeDataWriter.java| 2 +- .../misc/RangeForwardOperatorDescriptor.java| 10 ++ 26 files changed, 573 insertions(+), 170 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1487f2be/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/AbstractIntervalJoinPOperator.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/AbstractIntervalJoinPOperator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/AbstractIntervalJoinPOperator.java index 3be9e80..cc2a022 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/AbstractIntervalJoinPOperator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/AbstractIntervalJoinPOperator.java @@ -55,7 +55,7 @@ public abstract class AbstractIntervalJoinPOperator extends AbstractJoinPOperato private final List keysLeftBranch; private final List keysRightBranch; -private final IIntervalMergeJoinCheckerFactory mjcf; +protected final IIntervalMergeJoinCheckerFactory mjcf; private final RangeId leftRangeId; private final RangeId rightRangeId; private final IRangeMap rangeMapHint; @@ -115,14 +115,11 @@ public abstract class AbstractIntervalJoinPOperator extends AbstractJoinPOperato @Override public void computeDeliveredProperties(ILogicalOperator iop, IOptimizationContext context) { -ArrayList order = new ArrayList<>(); -for (LogicalVariable v : keysLeftBranch) { -order.add(new OrderColumn(v, mjcf.isOrderAsc() ? OrderKind.ASC : OrderKind.DESC)); -} +ArrayList order = getLeftRangeOrderColumn(); IPartitioningProperty pp = new OrderedPartitionedProperty(order, null, leftRangeId, RangePartitioningType.PROJECT, rangeMapHint); List propsLocal = new ArrayList<>(); -propsLocal.add(new LocalOrderProperty(order)); +propsLocal.add(new LocalOrderProperty(getLeftLocalSortOrderColumn())); deliveredProperties = new StructuralPropertiesVector(pp, propsLocal); } @@ -134,26 +131,17 @@ public abstract class AbstractIntervalJoinPOperator extends AbstractJoinPOperato IPartitioningProperty ppLeft = null; List ispLeft = new ArrayList<>(); +ispLeft.add(new LocalOrderProperty(getLeftLocalSortOrderColumn())); + IPartitioningProperty ppRight = null; List ispRight = new ArrayList<>(); - -ArrayList orderLeft = new ArrayList<>(); -for (LogicalVariable v : keysLeftBranch) { -orderLeft.add(n
[26/50] [abbrv] asterixdb git commit: Add stats tracking for interval joins.
Add stats tracking for interval joins. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/a9729514 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/a9729514 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/a9729514 Branch: refs/heads/ecarm002/interval_join_merge Commit: a9729514d7d517a24df2d290d15e854af6d65a51 Parents: 1487f2b Author: Preston Carman Authored: Thu Aug 25 11:43:57 2016 -0700 Committer: Preston Carman Committed: Thu Aug 25 11:43:57 2016 -0700 -- .../intervalindex/IntervalIndexJoiner.java | 54 .../InMemoryIntervalPartitionJoin.java | 18 ++- .../IntervalPartitionJoiner.java| 44 .../IPartitionedTupleBufferManager.java | 2 + .../VPartitionTupleBufferManager.java | 5 ++ .../dataflow/std/join/AbstractMergeJoiner.java | 10 ++-- .../hyracks/dataflow/std/join/MergeJoiner.java | 34 +++- .../dataflow/std/join/NestedLoopJoin.java | 23 - .../join/NestedLoopJoinOperatorDescriptor.java | 28 ++ .../dataflow/std/join/RunFileStream.java| 27 -- 10 files changed, 160 insertions(+), 85 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/a9729514/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java index 6f04cad..e4c4cbe 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java @@ -29,11 +29,9 @@ import org.apache.asterix.runtime.operators.joins.IIntervalMergeJoinCheckerFacto import org.apache.asterix.runtime.operators.joins.IntervalJoinUtil; import org.apache.hyracks.api.comm.IFrameTupleAccessor; import org.apache.hyracks.api.comm.IFrameWriter; -import org.apache.hyracks.api.comm.VSizeFrame; import org.apache.hyracks.api.context.IHyracksTaskContext; import org.apache.hyracks.api.dataflow.value.RecordDescriptor; import org.apache.hyracks.api.exceptions.HyracksDataException; -import org.apache.hyracks.dataflow.common.comm.io.FrameTupleAppender; import org.apache.hyracks.dataflow.common.comm.util.FrameUtils; import org.apache.hyracks.dataflow.std.buffermanager.IPartitionedDeletableTupleBufferManager; import org.apache.hyracks.dataflow.std.buffermanager.ITupleAccessor; @@ -57,23 +55,27 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { private static final Logger LOGGER = Logger.getLogger(IntervalIndexJoiner.class.getName()); -private IPartitionedDeletableTupleBufferManager bufferManager; +private final IPartitionedDeletableTupleBufferManager bufferManager; -private ActiveSweepManager[] activeManager; -private ITuplePointerAccessor[] memoryAccessor; -private int[] streamIndex; -private RunFileStream[] runFileStream; +private final ActiveSweepManager[] activeManager; +private final ITuplePointerAccessor[] memoryAccessor; +private final int[] streamIndex; +private final RunFileStream[] runFileStream; -private LinkedList buffer = new LinkedList<>(); +private final LinkedList buffer = new LinkedList<>(); -private IIntervalMergeJoinChecker imjc; +private final IIntervalMergeJoinChecker imjc; -protected byte point; +private final byte point; -private MergeStatus status; +private final int leftKey; +private final int rightKey; -private int leftKey; -private int rightKey; +private long joinComparisonCount = 0; +private long joinResultCount = 0; +private long spillCount = 0; +private long spillReadCount = 0; +private long spillWriteCount = 0; public IntervalIndexJoiner(IHyracksTaskContext ctx, int memorySize, int partition, MergeStatus status, MergeJoinLocks locks, Comparator endPointComparator, @@ -87,8 +89,6 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { this.leftKey = leftKeys[0]; this.rightKey = rightKeys[0]; -this.status = status; - RecordDescriptor[] recordDescriptors = new RecordDescriptor[JOIN_PARTITIONS]; recordDescriptors[LEFT_PARTITION] = leftRd; recordDescriptors[RIGHT_PARTITION] = rightRd; @@ -119,8 +119,6 @@ public class IntervalIndexJoiner extends AbstractMergeJoi
[03/50] [abbrv] asterixdb git commit: snapshot super interval dag.
snapshot super interval dag. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/aea7fe87 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/aea7fe87 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/aea7fe87 Branch: refs/heads/ecarm002/interval_join_merge Commit: aea7fe87d3c2d03902a9e207e1afa457733e5171 Parents: 199bddd Author: Preston Carman Authored: Thu Jun 30 16:03:28 2016 -0700 Committer: Preston Carman Committed: Thu Jun 30 16:03:28 2016 -0700 -- .../IntervalLocalRangeSplitterOperator.java | 69 +++ .../physical/AbstractIntervalJoinPOperator.java | 17 + .../physical/IntervalIndexJoinPOperator.java| 1 - .../physical/IntervalJoinPOperator.java | 63 +++ .../IntervalLocalRangeOperatorDescriptor.java | 197 .../IntervalLocalRangeSplitterPOperator.java| 101 + .../IntervalPartitionJoinPOperator.java | 20 + .../asterix/optimizer/base/RuleCollections.java | 2 + .../rules/IntervalSplitPartitioningRule.java| 445 +++ ...IntervalPartitionJoinOperatorDescriptor.java | 3 - .../logical/AbstractLogicalOperator.java| 16 +- .../operators/logical/ReplicateOperator.java| 12 +- .../operators/physical/MergeJoinPOperator.java | 16 + .../operators/physical/NLJoinPOperator.java | 295 .../physical/NestedLoopJoinPOperator.java | 295 .../RangePartitionExchangePOperator.java| 8 + .../RangePartitionMergeExchangePOperator.java | 8 + .../operators/physical/ReplicatePOperator.java | 2 +- .../operators/physical/UnionAllPOperator.java | 3 - .../typing/PropagatingTypeEnvironment.java | 4 +- .../algebricks/rewriter/util/JoinUtils.java | 6 +- .../std/misc/SplitOperatorDescriptor.java | 6 +- 22 files changed, 1259 insertions(+), 330 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/aea7fe87/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/IntervalLocalRangeSplitterOperator.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/IntervalLocalRangeSplitterOperator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/IntervalLocalRangeSplitterOperator.java new file mode 100644 index 000..9ae9f7d --- /dev/null +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/IntervalLocalRangeSplitterOperator.java @@ -0,0 +1,69 @@ +/* + * 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. + */ + +package org.apache.asterix.algebra.operators; + +import java.util.Collection; +import java.util.List; + +import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; +import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractExtensibleLogicalOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorExtension; +import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionReferenceTransform; + +public class IntervalLocalRangeSplitterOperator extends AbstractExtensibleLogicalOperator { + +private final List joinKeyLogicalVars; + +public IntervalLocalRangeSplitterOperator(List joinKeyLogicalVars) { +this.joinKeyLogicalVars = joinKeyLogicalVars; +} + +@Override +public boolean isMap() { +return false; +} + +@Override +public IOperatorExtension newInstance() { +return new IntervalLocalRangeSplitterOperator(joinKeyLogicalVars); +} + +@Override +public boolean acceptExpressionTransform(ILogicalExpressionReferenceTransform transform) +throws AlgebricksException { +return false; +} + +@Override +public String toString() { +return "IntervalLocalRangeSplitterOperator"; +} + +@Override +public void getUsedVariables(
[32/50] [abbrv] asterixdb git commit: merge master
merge master Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/3ac277ce Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/3ac277ce Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/3ac277ce Branch: refs/heads/ecarm002/interval_join_merge Commit: 3ac277ce9d4a7c420805470f73f2978e8e8c3116 Parents: c2e48a7 c89d668 Author: Preston Carman Authored: Wed Sep 7 11:09:50 2016 -0700 Committer: Preston Carman Committed: Wed Sep 7 11:09:50 2016 -0700 -- .../asterix/optimizer/base/RuleCollections.java | 2 + .../rules/am/InvertedIndexAccessMethod.java | 7 +- .../subplan/InlineAllNtsInSubplanVisitor.java | 16 +- ...ineSubplanInputForNestedTupleSourceRule.java | 154 +- .../rules/subplan/SubplanFlatteningUtil.java| 78 +++-- .../LangExpressionToPlanTranslator.java | 29 +- .../queries/join-singletonbranch-2.sqlpp| 43 +++ .../queries/join-singletonbranch-3.sqlpp| 42 +++ .../queries/join-singletonbranch.sqlpp | 41 +++ .../tpcds/query-ASTERIXDB-1581-correlated.sqlpp | 96 +++ .../queries/tpcds/query-ASTERIXDB-1581.sqlpp| 96 +++ .../optimizerts/results/filter-nested.plan | 4 +- .../results/join-singletonbranch-2.plan | 28 ++ .../results/join-singletonbranch-3.plan | 23 ++ .../results/join-singletonbranch.plan | 28 ++ .../optimizerts/results/nest_aggregate.plan | 6 +- .../tpcds/query-ASTERIXDB-1581-correlated.plan | 281 +++ .../results/tpcds/query-ASTERIXDB-1581.plan | 180 .../results/udfs/query-ASTERIXDB-1018.plan | 79 +++--- .../results/udfs/query-ASTERIXDB-1019.plan | 79 +++--- .../aggregate_join/aggregate_join.1.ddl.sqlpp | 31 ++ .../aggregate_join.2.update.sqlpp | 23 ++ .../aggregate_join/aggregate_join.3.query.sqlpp | 26 ++ .../aggregate_join_external.1.ddl.sqlpp | 55 .../aggregate_join_external.3.query.sqlpp | 27 ++ .../query-ASTERIXDB-1581-2.1.ddl.sqlpp | 82 ++ .../query-ASTERIXDB-1581-2.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581-2.3.query.sqlpp| 33 +++ .../query-ASTERIXDB-1581-3.1.ddl.sqlpp | 82 ++ .../query-ASTERIXDB-1581-3.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581-3.3.query.sqlpp| 32 +++ .../query-ASTERIXDB-1581-4.1.ddl.sqlpp | 82 ++ .../query-ASTERIXDB-1581-4.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581-4.3.query.sqlpp| 32 +++ .../query-ASTERIXDB-1581-5.1.ddl.sqlpp | 82 ++ .../query-ASTERIXDB-1581-5.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581-5.3.query.sqlpp| 32 +++ .../query-ASTERIXDB-1581-6.1.ddl.sqlpp | 82 ++ .../query-ASTERIXDB-1581-6.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581-6.3.query.sqlpp| 35 +++ ...uery-ASTERIXDB-1581-correlated-2.1.ddl.sqlpp | 82 ++ ...y-ASTERIXDB-1581-correlated-2.2.update.sqlpp | 26 ++ ...ry-ASTERIXDB-1581-correlated-2.3.query.sqlpp | 34 +++ .../query-ASTERIXDB-1581-correlated.1.ddl.sqlpp | 82 ++ ...ery-ASTERIXDB-1581-correlated.2.update.sqlpp | 26 ++ ...uery-ASTERIXDB-1581-correlated.3.query.sqlpp | 34 +++ .../query-ASTERIXDB-1581.1.ddl.sqlpp| 82 ++ .../query-ASTERIXDB-1581.2.update.sqlpp | 26 ++ .../query-ASTERIXDB-1581.3.query.sqlpp | 29 ++ .../aggregate_join/aggregate_join.1.adm | 1 + .../aggregate_join_external.1.adm | 5 + .../query-ASTERIXDB-1581-2.1.adm| 1 + .../query-ASTERIXDB-1581-4.1.adm| 1 + .../query-ASTERIXDB-1581-6.1.adm| 1 + .../query-ASTERIXDB-1581-correlated.1.adm | 1 + .../query-ASTERIXDB-1581.1.adm | 1 + .../resources/runtimets/testsuite_sqlpp.xml | 50 .../metadata/declared/AqlDataSource.java| 1 + .../core/algebra/metadata/IDataSource.java | 3 + .../visitors/CardinalityInferenceVisitor.java | 162 +-- .../IsomorphismVariableMappingVisitor.java | 29 +- ...OperatorDeepCopyWithNewVariablesVisitor.java | 34 ++- .../logical/visitors/VariableUtilities.java | 23 +- .../physical/DataSourceScanPOperator.java | 25 ++ .../physical/EmptyTupleSourcePOperator.java | 4 +- .../algebra/util/OperatorManipulationUtil.java | 3 +- .../algebra/util/OperatorPropertiesUtil.java| 7 +- .../piglet/metadata/PigletFileDataSource.java | 7 + .../rules/EnforceStructuralPropertiesRule.java | 14 +- ...moveCartesianProductWithEmptyBranchRule.java | 6 +- .../rules/SimpleUnnestToProductRule.java| 74 +++-- .../rules/SwitchInnerJoinBranchRule.java| 61 ...inateSubplanWithInputCardinalityOneRule.java | 2 +- ...placeNtsWithSubplanInputOperatorVisitor
[10/50] [abbrv] asterixdb git commit: switch merge memory tracking method.
switch merge memory tracking method. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/4f9e6a82 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/4f9e6a82 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/4f9e6a82 Branch: refs/heads/ecarm002/interval_join_merge Commit: 4f9e6a82eaff790a50f86848e770e4b1dedf4069 Parents: 1f7ac98 Author: Preston Carman Authored: Thu Jul 14 09:11:57 2016 -0700 Committer: Preston Carman Committed: Thu Jul 14 09:11:57 2016 -0700 -- .../joins/AbstractIntervalMergeJoinChecker.java | 14 +++ .../IntervalPartitionJoiner.java| 2 +- .../dataflow/std/join/IMergeJoinChecker.java| 3 ++ .../hyracks/dataflow/std/join/MergeJoiner.java | 41 +++- 4 files changed, 41 insertions(+), 19 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/4f9e6a82/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java index 0a25c25..cf0bf6a 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java @@ -105,6 +105,20 @@ public abstract class AbstractIntervalMergeJoinChecker implements IIntervalMerge } @Override +public boolean checkToRemoveInMemory(IFrameTupleAccessor accessorLeft, int leftTupleIndex, +IFrameTupleAccessor accessorRight, int rightTupleIndex) throws HyracksDataException { +try { +IntervalJoinUtil.getIntervalPointable(accessorLeft, leftTupleIndex, idLeft, tvp, ipLeft); +IntervalJoinUtil.getIntervalPointable(accessorRight, rightTupleIndex, idRight, tvp, ipRight); +ipLeft.getStart(startLeft); +ipRight.getEnd(endRight); +return !(ch.compare(ipLeft.getTypeTag(), ipRight.getTypeTag(), startLeft, endRight) <= 0); +} catch (AsterixException e) { +throw new HyracksDataException(e); +} +} + +@Override public boolean checkToSaveInResult(IFrameTupleAccessor accessorLeft, int leftTupleIndex, IFrameTupleAccessor accessorRight, int rightTupleIndex, boolean reversed) throws HyracksDataException { try { http://git-wip-us.apache.org/repos/asf/asterixdb/blob/4f9e6a82/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoiner.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoiner.java index 5df7b0a..fe49d2f 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoiner.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoiner.java @@ -320,7 +320,7 @@ public class IntervalPartitionJoiner { private int selectPartitionsToReload(int freeSpace, int pid) { for (int id = ipjd.buildNextSpilled(0); id >= 0; id = ipjd.buildNextSpilled(id + 1)) { -assert buildRFWriters[id].getFileSize() > 0 : "How comes a spilled partition have size 0?"; +assert buildRFWriters[id].getFileSize() > 0 : "How come a spilled partition have size 0?"; if (freeSpace >= buildRFWriters[id].getFileSize()) { return id; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/4f9e6a82/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/IMergeJoinChecker.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/IMergeJoinChecker.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/IMergeJoinChecker.java index ddf04f3..49a3763 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/IMergeJoinChecker.java +++ b/hyracks-fullstack/hyracks/h
[48/50] [abbrv] asterixdb git commit: snapshot - preparing for write once read many process on sort merge join
snapshot - preparing for write once read many process on sort merge join Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/b4a3fd56 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/b4a3fd56 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/b4a3fd56 Branch: refs/heads/ecarm002/interval_join_merge Commit: b4a3fd56b637b20ec5be667261002772d8d76603 Parents: e256e63 Author: Preston Carman Authored: Fri Oct 14 17:50:23 2016 -0700 Committer: Preston Carman Committed: Fri Oct 14 17:50:23 2016 -0700 -- .../intervalindex/IntervalIndexJoiner.java | 8 +-- .../IntervalPartitionJoiner.java| 20 +++- .../hyracks/dataflow/std/join/MergeJoiner.java | 49 +- .../dataflow/std/join/RunFileStream.java| 52 ++-- 4 files changed, 96 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/b4a3fd56/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java index 8b7a12e..d3303b6 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java @@ -435,7 +435,7 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { + bufferManager.getNumTuples(RIGHT_PARTITION) + " memory]."); } if (bufferManager.getNumTuples(LEFT_PARTITION) > bufferManager.getNumTuples(RIGHT_PARTITION)) { -runFileStream[RIGHT_PARTITION].startRunFile(); +runFileStream[RIGHT_PARTITION].startRunFileWriting(); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("Memory is full. Freezing the left branch. (Left memory tuples: " + bufferManager.getNumTuples(LEFT_PARTITION) + ", Right memory tuples: " @@ -444,7 +444,7 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { bufferManager.printStats("memory details"); rightSpillCount++; } else { -runFileStream[LEFT_PARTITION].startRunFile(); +runFileStream[LEFT_PARTITION].startRunFileWriting(); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("Memory is full. Freezing the right branch. (Left memory tuples: " + bufferManager.getNumTuples(LEFT_PARTITION) + ", Right memory tuples: " @@ -456,7 +456,7 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { } private void continueStream(int diskPartition, ITupleAccessor accessor) throws HyracksDataException { -runFileStream[diskPartition].closeRunFile(); +runFileStream[diskPartition].closeRunFileReading(); accessor.reset(inputBuffer[diskPartition]); accessor.setTupleId(streamIndex[diskPartition]); if (LOGGER.isLoggable(Level.FINE)) { @@ -490,7 +490,7 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { || (RIGHT_PARTITION == frozenPartition && !status.branch[RIGHT_PARTITION].isRunFileReading())) { streamIndex[frozenPartition] = accessor.getTupleId(); } -runFileStream[frozenPartition].openRunFile(accessor); +runFileStream[frozenPartition].startReadingRunFile(accessor); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("Unfreezing (" + frozenPartition + ")."); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/b4a3fd56/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoiner.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoiner.java index 984db20..f57d205 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoiner.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoiner.java @@ -64,6 +64,8 @@ public class IntervalPartitionJoiner
[19/50] [abbrv] asterixdb git commit: clean up.
clean up. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/5d029489 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/5d029489 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/5d029489 Branch: refs/heads/ecarm002/interval_join_merge Commit: 5d02948925a3af098459ab3efba882e1d7154bfb Parents: 933c130 Author: Preston Carman Authored: Wed Jul 27 12:14:50 2016 -0700 Committer: Preston Carman Committed: Wed Jul 27 12:14:50 2016 -0700 -- .../sort/AbstractSorterOperatorDescriptor.java | 10 .../dataflow/std/structures/TuplePointer.java | 26 2 files changed, 26 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/5d029489/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractSorterOperatorDescriptor.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractSorterOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractSorterOperatorDescriptor.java index 665a90b..c3adc20 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractSorterOperatorDescriptor.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractSorterOperatorDescriptor.java @@ -99,16 +99,6 @@ public abstract class AbstractSorterOperatorDescriptor extends AbstractOperatorD public SortTaskState(JobId jobId, TaskId taskId) { super(jobId, taskId); } - -@Override -public void toBytes(DataOutput out) throws IOException { - -} - -@Override -public void fromBytes(DataInput in) throws IOException { - -} } protected abstract class SortActivity extends AbstractActivityNode { http://git-wip-us.apache.org/repos/asf/asterixdb/blob/5d029489/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/structures/TuplePointer.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/structures/TuplePointer.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/structures/TuplePointer.java index ae8eb24..42351a7 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/structures/TuplePointer.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/structures/TuplePointer.java @@ -18,11 +18,37 @@ */ package org.apache.hyracks.dataflow.std.structures; +import java.util.Comparator; + public final class TuplePointer implements IResetable { public static final int INVALID_ID = -1; private int frameIndex; private int tupleIndex; +public static final Comparator ASC = new Comparator() { +@Override +public int compare(TuplePointer tp1, TuplePointer tp2) { +int c = tp1.getFrameIndex() - tp2.getFrameIndex(); +if (c == 0) { +c = tp1.getTupleIndex() - tp2.getTupleIndex(); +} +return c; +} + +}; + +public static final Comparator DESC = new Comparator() { +@Override +public int compare(TuplePointer tp1, TuplePointer tp2) { +int c = tp2.getFrameIndex() - tp1.getFrameIndex(); +if (c == 0) { +c = tp2.getTupleIndex() - tp1.getTupleIndex(); +} +return c; +} + +}; + public TuplePointer() { this(INVALID_ID, INVALID_ID); }
[07/50] [abbrv] asterixdb git commit: new annontations.
new annontations. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/ff7904de Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/ff7904de Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/ff7904de Branch: refs/heads/ecarm002/interval_join_merge Commit: ff7904def80ec75e0979e25e4f901dded8e7d7f1 Parents: 22d1dbc Author: Preston Carman Authored: Fri Jul 8 16:31:05 2016 -0700 Committer: Preston Carman Committed: Fri Jul 8 16:31:05 2016 -0700 -- .../IntervalJoinExpressionAnnotation.java | 21 +++- .../asterix-lang-aql/src/main/javacc/AQL.jj | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ff7904de/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/annotations/IntervalJoinExpressionAnnotation.java -- diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/annotations/IntervalJoinExpressionAnnotation.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/annotations/IntervalJoinExpressionAnnotation.java index 7d4f02a..93f5990 100644 --- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/annotations/IntervalJoinExpressionAnnotation.java +++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/annotations/IntervalJoinExpressionAnnotation.java @@ -54,15 +54,18 @@ public class IntervalJoinExpressionAnnotation extends AbstractExpressionAnnotati } private void parseHint() { -String[] args = ((String) object).split(" "); -setJoinType(args[0]); - -if (joinType.equals(PARTITION_HINT_STRING) && args.length == 7) { -leftRecordCount = Long.valueOf(args[2]); -rightRecordCount = Long.valueOf(args[3]); -leftMaxDuration = Long.valueOf(args[4]); -rightMaxDuration = Long.valueOf(args[5]); -tuplesPerFrame = Integer.valueOf(args[6]); +String hint = (String) object; +setJoinType(hint); + +hint = hint.substring(hint.indexOf(']', 0) + 2); +String[] args = hint.split(" "); + +if (joinType.equals(PARTITION_HINT_STRING) && args.length == 5) { +leftRecordCount = Long.valueOf(args[0]); +rightRecordCount = Long.valueOf(args[1]); +leftMaxDuration = Long.valueOf(args[2]); +rightMaxDuration = Long.valueOf(args[3]); +tuplesPerFrame = Integer.valueOf(args[4]); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ff7904de/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj -- diff --git a/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj b/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj index bbba41d..9eaccf7 100644 --- a/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj +++ b/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj @@ -2313,7 +2313,7 @@ Clause OrderbyClause()throws ParseException : } if (hint.startsWith(RANGE_HINT)) { try{ - oc.setRangeMap(RangeMapBuilder.parseHint(hint.substring(RANGE_HINT.length(; + oc.setRangeMap(RangeMapBuilder.parseHint(hint.substring(RANGE_HINT.length(), hint.indexOf(']', 0) + 1))); } catch (AsterixException e) { throw new ParseException(e.getMessage()); }
[44/50] [abbrv] asterixdb git commit: new partition join algorithm
new partition join algorithm Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/0b900514 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/0b900514 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/0b900514 Branch: refs/heads/ecarm002/interval_join_merge Commit: 0b90051413c96ae52cc3136d41b5589275f11385 Parents: b34a426 Author: Preston Carman Authored: Fri Sep 30 13:56:13 2016 -0700 Committer: Preston Carman Committed: Fri Sep 30 13:56:13 2016 -0700 -- .../IntervalPartitionJoinPOperator.java | 2 +- .../InMemoryIntervalPartitionJoin.java | 98 --- ...IntervalPartitionJoinOperatorDescriptor.java | 355 + .../IntervalPartitionJoinTaskState.java | 33 + .../IntervalPartitionJoiner.java| 772 --- .../IntervalPartitionUtil.java | 70 -- ...IntervalPartitionJoinOperatorDescriptor.java | 319 .../IntervalPartitionJoinTaskState.java | 33 - .../IntervalPartitionJoiner.java| 288 --- 9 files changed, 412 insertions(+), 1558 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0b900514/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java index af77a92..73d159e 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.logging.Logger; import org.apache.asterix.runtime.operators.joins.IIntervalMergeJoinCheckerFactory; -import org.apache.asterix.runtime.operators.joins.intervalpartition2.IntervalPartitionJoinOperatorDescriptor; +import org.apache.asterix.runtime.operators.joins.intervalpartition.IntervalPartitionJoinOperatorDescriptor; import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable; import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator.JoinKind; import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator.IOrder.OrderKind; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0b900514/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/InMemoryIntervalPartitionJoin.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/InMemoryIntervalPartitionJoin.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/InMemoryIntervalPartitionJoin.java deleted file mode 100644 index aeea209..000 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/InMemoryIntervalPartitionJoin.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * 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. - */ -package org.apache.asterix.runtime.operators.joins.intervalpartition; - -import java.util.logging.Logger; - -import org.apache.asterix.runtime.operators.joins.IIntervalMergeJoinChecker; -import org.apache.hyracks.api.comm.IFrameTupleAccessor; -import org.apache.hyracks.api.comm.IFrameWriter; -import org.apache.hyracks.api.comm.VSizeFrame; -import org.apache.hyracks.api.context.IHyracksTaskContext; -import org.apache.hyracks.api.dataflow.value.RecordDescriptor; -import org.apache.hyracks.api.exceptions.HyracksDataException; -import org.apache.hyracks.dataflow.common.comm.io.FrameTupleAccessor; -impo
[43/50] [abbrv] asterixdb git commit: new partition join algorithm
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0b900514/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition2/IntervalPartitionJoinOperatorDescriptor.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition2/IntervalPartitionJoinOperatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition2/IntervalPartitionJoinOperatorDescriptor.java deleted file mode 100644 index a985eee..000 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition2/IntervalPartitionJoinOperatorDescriptor.java +++ /dev/null @@ -1,319 +0,0 @@ -/* - * 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. - */ - -package org.apache.asterix.runtime.operators.joins.intervalpartition2; - -import java.nio.ByteBuffer; -import java.util.logging.Logger; - -import org.apache.asterix.runtime.operators.joins.IIntervalMergeJoinChecker; -import org.apache.asterix.runtime.operators.joins.IIntervalMergeJoinCheckerFactory; -import org.apache.asterix.runtime.operators.joins.intervalpartition.IntervalPartitionComputerFactory; -import org.apache.asterix.runtime.operators.joins.intervalpartition.IntervalPartitionUtil; -import org.apache.hyracks.api.context.IHyracksTaskContext; -import org.apache.hyracks.api.dataflow.ActivityId; -import org.apache.hyracks.api.dataflow.IActivity; -import org.apache.hyracks.api.dataflow.IActivityGraphBuilder; -import org.apache.hyracks.api.dataflow.IOperatorNodePushable; -import org.apache.hyracks.api.dataflow.TaskId; -import org.apache.hyracks.api.dataflow.value.IRecordDescriptorProvider; -import org.apache.hyracks.api.dataflow.value.ITuplePartitionComputer; -import org.apache.hyracks.api.dataflow.value.RecordDescriptor; -import org.apache.hyracks.api.exceptions.HyracksDataException; -import org.apache.hyracks.api.job.IOperatorDescriptorRegistry; -import org.apache.hyracks.dataflow.std.base.AbstractActivityNode; -import org.apache.hyracks.dataflow.std.base.AbstractOperatorDescriptor; -import org.apache.hyracks.dataflow.std.base.AbstractUnaryInputSinkOperatorNodePushable; -import org.apache.hyracks.dataflow.std.base.AbstractUnaryInputUnaryOutputOperatorNodePushable; -import org.apache.hyracks.dataflow.std.base.RangeId; -import org.apache.hyracks.dataflow.std.join.MergeBranchStatus.Stage; -import org.apache.hyracks.dataflow.std.join.MergeJoinLocks; -import org.apache.hyracks.dataflow.std.misc.RangeForwardOperatorDescriptor.RangeForwardTaskState; - -public class IntervalPartitionJoinOperatorDescriptor extends AbstractOperatorDescriptor { -private static final long serialVersionUID = 1L; - -private static final int LEFT_ACTIVITY_ID = 0; -private static final int RIGHT_ACTIVITY_ID = 1; -private final int[] leftKeys; -private final int[] rightKeys; -private final int memoryForJoin; -private final IIntervalMergeJoinCheckerFactory imjcf; -private final RangeId rangeId; -private final int k; - -private final int probeKey; -private final int buildKey; - -private static final Logger LOGGER = Logger.getLogger(IntervalPartitionJoinOperatorDescriptor.class.getName()); - -public IntervalPartitionJoinOperatorDescriptor(IOperatorDescriptorRegistry spec, int memoryForJoin, int k, -int[] leftKeys, int[] rightKeys, RecordDescriptor recordDescriptor, IIntervalMergeJoinCheckerFactory imjcf, -RangeId rangeId) { -super(spec, 2, 1); -recordDescriptors[0] = recordDescriptor; -this.buildKey = leftKeys[0]; -this.probeKey = rightKeys[0]; -this.k = k; -this.leftKeys = leftKeys; -this.rightKeys = rightKeys; -this.memoryForJoin = memoryForJoin; -this.imjcf = imjcf; -this.rangeId = rangeId; -} - -@Override -public void contributeActivities(IActivityGraphBuilder builder) { -MergeJoinLocks locks = new MergeJoinLocks(); - -ActivityId leftAid = new ActivityId(odId, LEFT_ACTIVITY_ID); -ActivityId rightAid = new Activi
[47/50] [abbrv] asterixdb git commit: merge master with interval tests
merge master with interval tests Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/e256e637 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/e256e637 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/e256e637 Branch: refs/heads/ecarm002/interval_join_merge Commit: e256e6378fa949070455dc88b25fe9542359e1b7 Parents: ed86c88 2e3d167 Author: Preston Carman Authored: Mon Oct 3 23:42:46 2016 -0700 Committer: Preston Carman Committed: Mon Oct 3 23:42:46 2016 -0700 -- .gitignore |4 + README.md | 31 +- .../TranslateIntervalExpressionRule.java| 23 +- .../interval_overlapping.3.adm | 35 + .../interval_overlapping.4.adm | 35 + .../api/http/servlet/QueryServiceServlet.java | 18 + .../queries/aggregate/count-dataset.sqlpp |2 +- .../aggregate/query-ASTERIXDB-1626-2.sqlpp |2 +- .../aggregate/query-ASTERIXDB-1626-3.sqlpp |2 +- .../aggregate/query-ASTERIXDB-1626.sqlpp|2 +- .../queries/query-ASTERIXDB-159-3.sqlpp |2 +- .../inlined_q18_large_volume_customer.sqlpp |4 +- .../queries_sqlpp/nest_aggregate.sqlpp |2 +- .../queries_sqlpp/orders-aggreg.sqlpp |4 +- .../q01_pricing_summary_report_nt.sqlpp | 16 +- .../queries_sqlpp/q03_shipping_priority.sqlpp |2 +- .../q05_local_supplier_volume.sqlpp |2 +- .../queries_sqlpp/query-issue562.sqlpp |6 +- .../queries_sqlpp/query-issue697.sqlpp |2 +- .../queries_sqlpp/query-issue785.sqlpp |2 +- .../queries_sqlpp/query-issue810-2.sqlpp|2 +- .../queries_sqlpp/query-issue810.sqlpp |2 +- .../queries_sqlpp/query-issue827-2.sqlpp| 16 +- .../queries_sqlpp/split-materialization.sqlpp |4 +- .../interval_before/interval_before.3.query.aql |1 - .../interval_before/interval_before.4.query.aql |1 - .../interval_covers/interval_covers.3.query.aql |1 - .../interval_covers/interval_covers.4.query.aql |1 - .../interval_ends/interval_ends.3.query.aql |1 - .../interval_ends/interval_ends.4.query.aql |1 - .../interval_meets/interval_meets.3.query.aql |1 - .../interval_meets/interval_meets.4.query.aql |1 - .../interval_overlapping.3.query.aql|1 - .../interval_overlapping.4.query.aql|1 - .../interval_overlaps.3.query.aql |1 - .../interval_overlaps.4.query.aql |1 - .../interval_starts/interval_starts.3.query.aql |1 - .../interval_starts/interval_starts.4.query.aql |1 - .../agg_null/agg_null.3.query.sqlpp |2 +- .../agg_null_rec/agg_null_rec.3.query.sqlpp | 10 +- .../agg_null_rec_1/agg_null_rec_1.3.query.sqlpp | 10 +- .../agg_number/agg_number.3.query.sqlpp |2 +- .../agg_number_rec/agg_number_rec.3.query.sqlpp | 10 +- .../avg_double/avg_double.3.query.sqlpp |2 +- .../avg_double_null.3.query.sqlpp |2 +- .../avg_empty_01/avg_empty_01.1.ddl.sqlpp |2 +- .../avg_empty_01/avg_empty_01.2.update.sqlpp|2 +- .../avg_empty_01/avg_empty_01.3.query.sqlpp |4 +- .../avg_empty_02/avg_empty_02.1.ddl.sqlpp |2 +- .../avg_empty_02/avg_empty_02.2.update.sqlpp|2 +- .../avg_empty_02/avg_empty_02.3.query.sqlpp |4 +- .../avg_float/avg_float.3.query.sqlpp |2 +- .../avg_float_null/avg_float_nu.3.query.sqlpp |2 +- .../avg_int16/avg_int16.3.query.sqlpp |2 +- .../avg_int16_null/avg_int16_null.3.query.sqlpp |2 +- .../avg_int32/avg_int32.3.query.sqlpp |2 +- .../avg_int32_null/avg_int32_null.3.query.sqlpp |2 +- .../avg_int64/avg_int64.3.query.sqlpp |2 +- .../avg_int64_null/avg_int64_null.3.query.sqlpp |2 +- .../avg_int8/avg_int8.3.query.sqlpp |2 +- .../avg_int8_null/avg_int8_null.3.query.sqlpp |2 +- .../avg_mixed/avg_mixed.1.ddl.sqlpp |2 +- .../avg_mixed/avg_mixed.3.query.sqlpp |4 +- .../count_01/count_01.3.query.sqlpp |2 +- .../count_empty_01/count_empty_01.1.ddl.sqlpp |2 +- .../count_empty_01.2.update.sqlpp |2 +- .../count_empty_01/count_empty_01.3.query.sqlpp |4 +- .../count_empty_02/count_empty_02.1.ddl.sqlpp |2 +- .../count_empty_02.2.update.sqlpp |2 +- .../count_empty_02/count_empty_02.3.query.sqlpp |4 +- .../count_null/count_null.3.query.sqlpp |2 +- .../issue395/issue395.3.query.sqlpp |2 +- .../issue412_0/issue412_0.3.query.sqlpp |2 +- .../issue412_1/issue412_1.3.query.sqlpp |2 +- .../issue425_m
[06/50] [abbrv] asterixdb git commit: new annontations.
new annontations. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/22d1dbcb Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/22d1dbcb Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/22d1dbcb Branch: refs/heads/ecarm002/interval_join_merge Commit: 22d1dbcba8e2b36074f852fd5015d5ae75e66168 Parents: fd84e34 Author: Preston Carman Authored: Fri Jul 8 16:30:46 2016 -0700 Committer: Preston Carman Committed: Fri Jul 8 16:30:46 2016 -0700 -- .../rules/IntervalSplitPartitioningRule.java| 33 .../asterix/optimizer/rules/util/JoinUtils.java | 79 .../interval_overlapping.11.query.aql | 2 +- .../interval_overlapping.12.query.aql | 2 +- .../IntervalJoinExpressionAnnotation.java | 8 +- .../IntervalPartitionUtil.java | 30 +++- 6 files changed, 86 insertions(+), 68 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/22d1dbcb/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntervalSplitPartitioningRule.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntervalSplitPartitioningRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntervalSplitPartitioningRule.java index 629606c..9df5a50 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntervalSplitPartitioningRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntervalSplitPartitioningRule.java @@ -23,7 +23,6 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import org.apache.asterix.algebra.operators.IntervalLocalRangeSplitterOperator; import org.apache.asterix.algebra.operators.physical.IntervalIndexJoinPOperator; import org.apache.asterix.algebra.operators.physical.IntervalLocalRangeSplitterPOperator; import org.apache.asterix.algebra.operators.physical.IntervalPartitionJoinPOperator; @@ -43,13 +42,11 @@ import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag; import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable; import org.apache.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag; import org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression; -import org.apache.hyracks.algebricks.core.algebra.expressions.ConstantExpression; import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression; import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier; import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator.JoinKind; import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator.ExecutionMode; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExchangeOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.ExtensionOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.InnerJoinOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.MaterializeOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator; @@ -97,21 +94,21 @@ public class IntervalSplitPartitioningRule implements IAlgebraicRewriteRule { private static final int START_SPLITS = 3; -private static final Set intervalJoinConditions = new HashSet<>(); +private static final Set INTERVAL_JOIN_CONDITIONS = new HashSet<>(); static { -intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_AFTER); -intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_BEFORE); - intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_COVERED_BY); -intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_COVERS); -intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_ENDED_BY); -intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_ENDS); -intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_MEETS); -intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_MET_BY); - intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_OVERLAPPED_BY); - intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_OVERLAPPING); -intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_OVERLAPS); - intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_STARTED_BY); -intervalJoinConditions.add(AsterixBuiltinFunctions.INTERVAL_STARTS); +INTERVAL_JOIN_CONDITIONS.add(AsterixBuiltinFunctions.INTERVAL_AFTER); +INTERVAL_J
[12/50] [abbrv] asterixdb git commit: updated from api change.
updated from api change. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/1f3fb827 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/1f3fb827 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/1f3fb827 Branch: refs/heads/ecarm002/interval_join_merge Commit: 1f3fb8274284c8f7924c689104f593cfd3300171 Parents: 0725160 Author: Preston Carman Authored: Thu Jul 14 13:55:19 2016 -0700 Committer: Preston Carman Committed: Thu Jul 14 13:55:19 2016 -0700 -- .../hyracks/dataflow/std/join/NaturalMergeJoinChecker.java | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1f3fb827/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/NaturalMergeJoinChecker.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/NaturalMergeJoinChecker.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/NaturalMergeJoinChecker.java index 030e25b..9a50d0c 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/NaturalMergeJoinChecker.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/NaturalMergeJoinChecker.java @@ -41,7 +41,13 @@ public class NaturalMergeJoinChecker implements IMergeJoinChecker { @Override public boolean checkToRemoveInMemory(ITupleAccessor accessorLeft, ITupleAccessor accessorRight) throws HyracksDataException { -int c = comparator.compare(accessorLeft, accessorLeft.getTupleId(), accessorRight, accessorRight.getTupleId()); +return checkToRemoveInMemory(accessorLeft, accessorLeft.getTupleId(), accessorRight, accessorRight.getTupleId()); +} + +@Override +public boolean checkToRemoveInMemory(IFrameTupleAccessor accessorLeft, int leftTupleIndex, +IFrameTupleAccessor accessorRight, int rightTupleIndex) throws HyracksDataException { +int c = comparator.compare(accessorLeft, leftTupleIndex, accessorRight, rightTupleIndex); return c < 0; }
[49/50] [abbrv] asterixdb git commit: merge master
merge master Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/9baab026 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/9baab026 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/9baab026 Branch: refs/heads/ecarm002/interval_join_merge Commit: 9baab026f330a790be49f1dffeb77ae1dd3fc0ef Parents: b4a3fd5 4819ea4 Author: Preston Carman Authored: Mon Oct 17 12:18:06 2016 -0700 Committer: Preston Carman Committed: Mon Oct 17 12:18:06 2016 -0700 -- .../active/message/ActiveManagerMessage.java| 2 +- .../active/message/ActivePartitionMessage.java | 2 +- asterixdb/asterix-algebra/pom.xml | 4 + .../optimizer/rules/LoadRecordFieldsRule.java | 46 +- .../rules/PushLimitIntoOrderByRule.java | 16 +- .../SweepIllegalNonfunctionalFunctions.java | 11 +- .../subplan/InlineAllNtsInSubplanVisitor.java | 11 +- ...neLeftNtsInSubplanJoinFlatteningVisitor.java | 7 +- .../SubplanSpecialFlatteningCheckVisitor.java | 10 +- .../translator/AbstractLangTranslator.java | 9 +- .../translator/util/FunctionCollection.java | 12 + .../asterix-app/data/tpcds/call_center.csv | 5 + .../asterix-app/data/tpcds/catalog_page.csv | 5 + .../asterix-app/data/tpcds/catalog_returns.csv | 32 +- .../asterix-app/data/tpcds/catalog_sales.csv| 38 +- asterixdb/asterix-app/data/tpcds/customer.csv | 20 +- .../asterix-app/data/tpcds/customer_address.csv | 20 +- .../data/tpcds/customer_demographics.csv| 6 + asterixdb/asterix-app/data/tpcds/date_dim.csv | 27 +- .../data/tpcds/household_demographics.csv | 7 + .../asterix-app/data/tpcds/income_band.csv | 5 + asterixdb/asterix-app/data/tpcds/inventory.csv | 15 + asterixdb/asterix-app/data/tpcds/item.csv | 19 +- asterixdb/asterix-app/data/tpcds/promotion.csv | 10 + asterixdb/asterix-app/data/tpcds/reason.csv | 10 + asterixdb/asterix-app/data/tpcds/ship_mode.csv | 5 + asterixdb/asterix-app/data/tpcds/store.csv | 5 + .../asterix-app/data/tpcds/store_returns.csv| 17 + .../asterix-app/data/tpcds/store_sales.csv | 48 +- asterixdb/asterix-app/data/tpcds/time_dim.csv | 8 + asterixdb/asterix-app/data/tpcds/warehouse.csv | 5 + asterixdb/asterix-app/data/tpcds/web_page.csv | 10 + .../asterix-app/data/tpcds/web_returns.csv | 13 + asterixdb/asterix-app/data/tpcds/web_sales.csv | 16 + asterixdb/asterix-app/data/tpcds/web_site.csv | 5 + asterixdb/asterix-app/pom.xml | 14 + .../interval_overlapping.3.adm | 35 - .../interval_overlapping.4.adm | 35 - .../common/AsterixHyracksIntegrationUtil.java | 2 +- .../asterix/api/http/servlet/APIServlet.java| 12 +- .../api/http/servlet/QueryServiceServlet.java | 19 +- .../app/nc/AsterixNCAppRuntimeContext.java | 24 +- .../asterix/app/translator/QueryTranslator.java | 6 +- .../bootstrap/CCApplicationEntryPoint.java | 17 +- .../bootstrap/ClusterLifecycleListener.java | 14 +- .../bootstrap/NCApplicationEntryPoint.java | 17 +- .../resources/asterix-build-configuration.xml | 5 +- ...ataset_with_default_dataverse_type.1.ddl.aql | 25 + ...aset_with_default_dataverse_type.2.query.aql | 23 + ...ataset_with_default_dataverse_type.3.ddl.aql | 20 + .../dataset_with_default_dataverse_type.2.adm | 1 + .../src/test/resources/metadata/testsuite.xml | 5 + .../queries/multi-indexes/skip-one-index.aql| 49 + .../queries/multi-indexes/skip-two-index.aql| 53 ++ .../queries/query-ASTERIXDB-1671.sqlpp | 40 + .../results/multi-indexes/skip-one-index.plan | 26 + .../results/multi-indexes/skip-two-index.plan | 15 + .../results/query-ASTERIXDB-1671.plan | 17 + .../polygon-from-open-list_issue1627.1.ddl.aql | 34 + ...olygon-from-open-list_issue1627.2.update.aql | 30 + ...polygon-from-open-list_issue1627.3.query.aql | 28 + .../feed-with-external-function.4.sleep.aql | 19 - .../feed-with-external-function.5.pollquery.aql | 33 + .../feed-with-external-function.5.query.aql | 32 - .../query-ASTERIXDB-1671-2.1.ddl.sqlpp | 47 + .../query-ASTERIXDB-1671-2.2.update.sqlpp | 24 + .../query-ASTERIXDB-1671-2.3.query.sqlpp| 27 + .../query-ASTERIXDB-1671.1.ddl.sqlpp| 47 + .../query-ASTERIXDB-1671.2.update.sqlpp | 24 + .../query-ASTERIXDB-1671.3.query.sqlpp | 27 + .../query-ASTERIXDB-1689.1.query.sqlpp | 22 + .../everysat_04/everysat_04.3.query.sqlpp | 2 +- .../query-ASTERIXDB-1674.1.ddl.sqlpp| 38 + .../query-ASTERIXDB-1674.2.update.sqlpp | 24 + .../query-ASTERIXDB-1674.3.query.sqlpp | 39 + .../somesat_06/somesat_06.3.query.sqlpp | 2 +- .../query-ASTERIXDB-
[18/50] [abbrv] asterixdb git commit: Range forward operators.
Range forward operators. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/933c1307 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/933c1307 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/933c1307 Branch: refs/heads/ecarm002/interval_join_merge Commit: 933c13078397f07e7528908187f06d7c5c018acd Parents: 5b102cc Author: Preston Carman Authored: Wed Jul 27 12:14:21 2016 -0700 Committer: Preston Carman Committed: Wed Jul 27 12:14:21 2016 -0700 -- .../core/algebra/base/LogicalOperatorTag.java | 1 + .../core/algebra/base/PhysicalOperatorTag.java | 1 + .../operators/logical/RangeForwardOperator.java | 80 + .../visitors/CardinalityInferenceVisitor.java | 6 + .../visitors/FDsAndEquivClassesVisitor.java | 7 ++ .../visitors/IsomorphismOperatorVisitor.java| 10 ++ .../IsomorphismVariableMappingVisitor.java | 7 ++ ...OperatorDeepCopyWithNewVariablesVisitor.java | 10 ++ .../visitors/LogicalPropertiesVisitor.java | 7 ++ .../visitors/OperatorDeepCopyVisitor.java | 25 ++-- .../visitors/PrimaryKeyVariablesVisitor.java| 7 ++ .../visitors/ProducedVariableVisitor.java | 6 + .../logical/visitors/SchemaVariableVisitor.java | 6 + .../visitors/SubstituteVariableVisitor.java | 7 ++ .../logical/visitors/UsedVariableVisitor.java | 6 + .../physical/RangeForwardPOperator.java | 85 + .../LogicalOperatorPrettyPrintVisitor.java | 9 ++ .../visitors/ILogicalOperatorVisitor.java | 3 + .../misc/RangeForwardOperatorDescriptor.java| 119 +++ 19 files changed, 393 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/933c1307/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/LogicalOperatorTag.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/LogicalOperatorTag.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/LogicalOperatorTag.java index d39a8c8..07c35a3 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/LogicalOperatorTag.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/LogicalOperatorTag.java @@ -40,6 +40,7 @@ public enum LogicalOperatorTag { ORDER, PARTITIONINGSPLIT, PROJECT, +RANGE_FORWARD, REPLICATE, RUNNINGAGGREGATE, SCRIPT, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/933c1307/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/PhysicalOperatorTag.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/PhysicalOperatorTag.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/PhysicalOperatorTag.java index 7f753a5..8ae6602 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/PhysicalOperatorTag.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/PhysicalOperatorTag.java @@ -52,6 +52,7 @@ public enum PhysicalOperatorTag { PRE_SORTED_DISTINCT_BY, RANDOM_PARTITION_EXCHANGE, RANDOM_MERGE_EXCHANGE, +RANGE_FORWARD, RANGE_PARTITION_EXCHANGE, RANGE_PARTITION_MERGE_EXCHANGE, RTREE_SEARCH, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/933c1307/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/RangeForwardOperator.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/RangeForwardOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/RangeForwardOperator.java new file mode 100644 index 000..5a3bc98 --- /dev/null +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/RangeForwardOperator.java @@ -0,0 +1,80 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for
[34/50] [abbrv] asterixdb git commit: merge master
merge master Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/f186da9e Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/f186da9e Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/f186da9e Branch: refs/heads/ecarm002/interval_join_merge Commit: f186da9ede14f4beeb3e24c2b14f25407a456bd4 Parents: dc6842d 2a73f41 Author: Preston Carman Authored: Fri Sep 9 10:04:44 2016 -0700 Committer: Preston Carman Committed: Fri Sep 9 10:04:44 2016 -0700 -- .../api/http/servlet/ClusterAPIServlet.java | 50 +- .../servlet/ClusterNodeDetailsAPIServlet.java | 163 .../app/nc/AsterixNCAppRuntimeContext.java | 3 +- .../bootstrap/CCApplicationEntryPoint.java | 20 +- .../cluster_state_1.1.cstate.aql| 24 + .../cluster_state_2.1.cstate.aql| 25 + .../cluster_state_3.1.cstate.aql| 25 + .../cluster_state_4.1.cstate.aql| 25 + .../datetime_functions.3.query.aql | 4 + .../datetime_functions.3.query.sqlpp| 2 + .../api/cluster_state_1/cluster_state_1.1.adm | 74 ++ .../api/cluster_state_3/cluster_state_3.1.adm | 20 + .../api/cluster_state_4/cluster_state_4.1.adm | 9 + .../datetime_functions/datetime_functions.1.adm | 2 +- .../datetime_functions/datetime_functions.3.ast | 26 + .../src/test/resources/runtimets/testsuite.xml | 23 + .../config/AbstractAsterixProperties.java | 39 + .../config/AsterixCompilerProperties.java | 17 +- .../config/AsterixExternalProperties.java | 28 +- .../common/config/AsterixFeedProperties.java| 22 +- .../config/AsterixReplicationProperties.java| 29 +- .../common/config/AsterixStorageProperties.java | 34 +- .../config/AsterixTransactionProperties.java| 35 +- .../asterix/common/utils/ServletUtil.java | 3 +- .../apache/asterix/test/aql/TestExecutor.java | 69 +- asterixdb/asterix-doc/pom.xml | 22 + .../src/main/markdown/sqlpp/0_toc.md| 69 ++ .../src/main/markdown/sqlpp/1_intro.md | 6 + .../src/main/markdown/sqlpp/2_expr.md | 294 +++ .../src/main/markdown/sqlpp/3_query.md | 882 +++ .../src/main/markdown/sqlpp/4_ddl.md| 452 ++ .../installer/test/AbstractExecutionIT.java | 8 + .../runtime/util/AsterixAppContextInfo.java | 3 +- .../runtime/util/AsterixClusterProperties.java | 15 +- asterixdb/asterix-server/pom.xml| 2 +- .../server/test/NCServiceExecutionIT.java | 6 +- .../client/HyracksClientInterfaceFunctions.java | 33 +- .../HyracksClientInterfaceRemoteProxy.java | 7 + .../hyracks/api/client/HyracksConnection.java | 6 + .../api/client/IHyracksClientConnection.java| 9 + .../api/client/IHyracksClientInterface.java | 1 + .../control/cc/ClusterControllerService.java| 23 +- .../hyracks/control/cc/NodeControllerState.java | 98 ++- .../control/cc/web/NodesRESTAPIFunction.java| 2 +- .../control/cc/work/GetNodeDetailsJSONWork.java | 25 +- .../common/controllers/NodeRegistration.java| 13 +- .../hyracks/control/common/utils/PidHelper.java | 52 ++ .../control/nc/NodeControllerService.java | 4 +- .../std/group/HashSpillableTableFactory.java| 31 +- 49 files changed, 2665 insertions(+), 169 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f186da9e/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f186da9e/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixCompilerProperties.java -- diff --cc asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixCompilerProperties.java index b79c2cb,af5124b..232a541 --- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixCompilerProperties.java +++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixCompilerProperties.java @@@ -18,27 -18,24 +18,32 @@@ */ package org.apache.asterix.common.config; + import org.apache.hyracks.util.StorageUtil; + + import static org.apache.hyracks.util.StorageUtil.StorageUnit.KILOBYTE; + import static org.apache.hyracks.util.StorageUtil.StorageUnit.MEGABYTE; + public class AsterixCompilerProperties extends AbstractAsterixProperties { +private static final int MB = 1048576; + private static final String COMPILER_SORTMEMORY_KEY = "compiler.sortmemory"; - private static final long COMPILER_SORTMEMORY_DEFAULT = 32 << 20; // 32MB + private static fin
[36/50] [abbrv] asterixdb git commit: Deletable frame tuple appender with reuse of tuple index slots
Deletable frame tuple appender with reuse of tuple index slots Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/fd514a0e Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/fd514a0e Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/fd514a0e Branch: refs/heads/ecarm002/interval_join_merge Commit: fd514a0ed598219faf0ecdfa19e3c894f3b706f1 Parents: 6c31214 Author: Preston Carman Authored: Mon Sep 19 17:59:17 2016 -0700 Committer: Preston Carman Committed: Mon Sep 19 17:59:17 2016 -0700 -- .../common/comm/io/FrameTupleAccessor.java | 5 +- .../sort/util/DeletableFrameTupleAppender.java | 259 ++- 2 files changed, 204 insertions(+), 60 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fd514a0e/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/FrameTupleAccessor.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/FrameTupleAccessor.java b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/FrameTupleAccessor.java index d99e2f2..1c702be 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/FrameTupleAccessor.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/FrameTupleAccessor.java @@ -35,7 +35,8 @@ import org.apache.hyracks.util.IntSerDeUtils; /** * FrameTupleCursor is used to navigate over tuples in a Frame. A frame is * formatted with tuple data concatenated starting at offset 1, one tuple after - * another. The first byte is used to notify how big the frame is, so the maximum frame size is 255 * initialFrameSetting. + * another. The first byte is used to notify how big the frame is, + * so the maximum frame size is 255 * initialFrameSetting. * Offset FS - 4 holds an int indicating the number of tuples (N) in * the frame. FS - ((i + 1) * 4) for i from 0 to N - 1 holds an int indicating * the offset of the (i + 1)^th tuple. Every tuple is organized as a sequence of @@ -184,6 +185,7 @@ public class FrameTupleAccessor implements IFrameTupleAccessor { prettyPrint(i, bbis, dis, sb, recordFields); } System.err.println(sb.toString()); +bbis.close(); } public void prettyPrint(int tIdx, int[] recordFields) throws IOException { @@ -192,6 +194,7 @@ public class FrameTupleAccessor implements IFrameTupleAccessor { StringBuilder sb = new StringBuilder(); prettyPrint(tIdx, bbis, dis, sb, recordFields); System.err.println(sb.toString()); +bbis.close(); } public void prettyPrint(ITupleReference tuple, int fieldsIdx, int descIdx) throws HyracksDataException { http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fd514a0e/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java index 79aba3e..8cae721 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java @@ -21,8 +21,11 @@ package org.apache.hyracks.dataflow.std.sort.util; import java.io.PrintStream; import java.nio.ByteBuffer; +import java.util.Comparator; +import java.util.PriorityQueue; -import org.apache.hyracks.api.comm.FrameHelper; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; import org.apache.hyracks.api.comm.IFrameTupleAccessor; import org.apache.hyracks.api.dataflow.value.RecordDescriptor; import org.apache.hyracks.api.exceptions.HyracksDataException; @@ -32,59 +35,153 @@ import org.apache.hyracks.util.IntSerDeUtils; * This is a special frame which is used in TupleMemoryBuffer. * This frame has a special structure to organize the deleted spaces. * Specifically, the endOffset of the deleted tuple will be set as negative number. - * And we add a special deleted_space field at the last 4 bytes to remember how many bytes has been deleted. + * And we add a specia
[09/50] [abbrv] asterixdb git commit: merge with master
merge with master Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/1f7ac985 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/1f7ac985 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/1f7ac985 Branch: refs/heads/ecarm002/interval_join_merge Commit: 1f7ac9850459eb2f4cfe003661ceaa5d5fabb1d7 Parents: ff7904d 81b1f21 Author: Preston Carman Authored: Mon Jul 11 15:22:49 2016 -0700 Committer: Preston Carman Committed: Mon Jul 11 15:22:49 2016 -0700 -- README.md | 6 +- asterixdb/asterix-algebra/pom.xml |29 +- .../physical/ExternalDataLookupPOperator.java | 4 +- .../asterix/optimizer/base/RuleCollections.java | 4 +- ...IntroduceSecondaryIndexInsertDeleteRule.java |84 +- .../optimizer/rules/ResolveVariableRule.java| 286 + .../rules/SetClosedRecordConstructorsRule.java |35 +- .../optimizer/rules/UnnestToDataScanRule.java | 7 +- .../am/AbstractIntroduceAccessMethodRule.java | 186 +- .../LangExpressionToPlanTranslator.java | 415 +- .../SqlppExpressionToPlanTranslator.java| 163 +- .../asterix-algebra/src/main/javacc/AQLPlus.jj | 4 +- asterixdb/asterix-app/pom.xml |16 +- asterixdb/asterix-app/scripts/idefix/startcc.sh | 4 +- .../api/common/AsterixAppRuntimeContext.java|17 +- .../asterix/api/common/SessionConfig.java | 7 +- .../asterix/api/http/servlet/APIServlet.java|38 +- .../asterix/api/http/servlet/JSONUtil.java | 136 - .../api/http/servlet/QueryResultAPIServlet.java | 2 +- .../api/http/servlet/QueryServiceServlet.java | 359 +- .../external/ExternalIndexingOperations.java|58 +- .../external/ExternalLibraryClassLoader.java|56 + .../app/external/ExternalLibraryUtils.java |35 +- .../app/external/FeedWorkCollection.java| 2 +- .../asterix/aql/translator/QueryTranslator.java |78 +- .../apache/asterix/file/DatasetOperations.java | 4 +- .../apache/asterix/file/IndexOperations.java|42 +- .../file/SecondaryBTreeOperationsHelper.java|33 +- .../file/SecondaryIndexOperationsHelper.java|49 +- .../SecondaryInvertedIndexOperationsHelper.java |30 +- .../file/SecondaryRTreeOperationsHelper.java| 4 +- .../bootstrap/CCApplicationEntryPoint.java |10 +- .../bootstrap/NCApplicationEntryPoint.java | 8 +- .../org/apache/asterix/result/ResultUtils.java |80 +- asterixdb/asterix-app/src/main/scripts/run.sh | 2 +- .../http/servlet/QueryServiceServletTest.java |45 + .../asterix/app/external/TestLibrarian.java |35 +- .../asterix/test/runtime/ExecutionTest.java |12 +- .../asterix/test/runtime/ExecutionTestUtil.java |20 +- .../asterix/test/runtime/RepeatedTest.java | 4 - .../asterix/test/sqlpp/ParserTestExecutor.java | 3 + .../asterix-app/src/test/resources/dapd/q2.aql |12 +- .../src/test/resources/logging.properties | 4 +- .../dataset_with_meta-1.1.adm | 2 +- .../dataset_with_meta-2.1.adm | 2 +- .../dataset_with_meta-2.3.adm | 2 +- .../dataset_with_meta-4.3.adm | 2 +- .../dataset_with_meta-5.3.adm | 2 +- .../dataset_with_meta-6.3.adm | 4 +- .../dataset_with_meta-7.3.adm | 4 +- .../issue_251_dataset_hint_2.1.adm | 2 +- .../issue_251_dataset_hint_3.1.adm | 2 +- .../issue_251_dataset_hint_4.1.adm | 2 +- .../metadata/results/basic/meta01/meta01.1.adm | 4 +- .../metadata/results/basic/meta02/meta02.1.adm | 2 +- .../metadata/results/basic/meta05/meta05.1.adm | 4 +- .../metadata/results/basic/meta09/meta09.1.adm | 2 +- .../metadata/results/basic/meta12/meta12.1.adm | 2 +- .../metadata/results/basic/meta16/meta16.1.adm | 4 +- .../metadata/results/basic/meta17/meta17.1.adm | 4 +- .../metadata_dataset/metadata_dataset.1.adm |26 +- .../metadata_dataverse/metadata_dataverse.1.adm | 6 +- .../basic/metadata_index/metadata_index.1.adm |26 +- ...verify_failure_subsequent_no_execution.1.adm | 2 +- .../nontagged/custord/local/cust-load.aql |10 +- ...rjoin-probe-pidx-with-join-btree-sidx_01.aql |30 +- ...rjoin-probe-pidx-with-join-btree-sidx_02.aql |30 +- .../queries/btree-index/btree-datetime-01.aql | 6 +- .../queries/btree-index/btree-datetime-02.aql | 8 +- .../queries/btree-index/btree-datetime-03.aql | 8 +- .../queries/btree-index/btree-datetime-04.aql | 6 +- .../optimizerts/queries/distinct_aggregate.aql |52 +- .../insert-and-scan-dataset-with-index.aql |14 +- .
[38/50] [abbrv] asterixdb git commit: junit test finished for frame tuple appender.
junit test finished for frame tuple appender. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/1ecdb321 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/1ecdb321 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/1ecdb321 Branch: refs/heads/ecarm002/interval_join_merge Commit: 1ecdb3212f421994239916146e194c36b189fdc9 Parents: 23eab43 Author: Preston Carman Authored: Sun Sep 25 10:53:32 2016 -0700 Committer: Preston Carman Committed: Sun Sep 25 10:53:32 2016 -0700 -- .../sort/util/DeletableFrameTupleAppender.java | 7 +- .../util/DeletableFrameTupleAppenderTest.java | 69 ++-- 2 files changed, 40 insertions(+), 36 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1ecdb321/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java index d242daa..e5f0bce2 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java @@ -343,8 +343,11 @@ public class DeletableFrameTupleAppender implements IAppendDeletableFrameTupleAc @Override public int getTupleLength(int tupleIndex) { int endOffset = getTupleEndOffset(tupleIndex); -assert endOffset > 0; -return endOffset - getTupleStartOffset(tupleIndex); +if (endOffset > 0) { +return endOffset - getTupleStartOffset(tupleIndex); +} else { +return endOffset + getTupleStartOffset(tupleIndex); +} } private void setTupleOffsets(int tupleIndex, int start, int length) { http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1ecdb321/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/test/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppenderTest.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/test/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppenderTest.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/test/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppenderTest.java index af3cdfc..f8edce6 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/test/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppenderTest.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/test/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppenderTest.java @@ -31,8 +31,8 @@ import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder; import org.apache.hyracks.dataflow.common.data.marshalling.IntegerSerializerDeserializer; import org.apache.hyracks.dataflow.common.data.marshalling.UTF8StringSerializerDeserializer; -import org.apache.hyracks.util.IntSerDeUtils; import org.apache.hyracks.dataflow.std.sort.Utility; +import org.apache.hyracks.util.IntSerDeUtils; import org.apache.hyracks.util.string.UTF8StringUtil; import org.junit.Before; import org.junit.Test; @@ -44,6 +44,8 @@ public class DeletableFrameTupleAppenderTest { private static final int META_DATA_SIZE = 4 + 4 + 4 + 4; private static final int SLOT_SIZE = 4 + 4; private static final char TEST_CH = 'x'; +private static final int TEST_TUPLE_COUNT = 8; +private static final int TEST_FRAME_SIZE = 256; DeletableFrameTupleAppender appender; ISerializerDeserializer[] fields = new ISerializerDeserializer[] { IntegerSerializerDeserializer.INSTANCE, @@ -51,8 +53,6 @@ public class DeletableFrameTupleAppenderTest { RecordDescriptor recordDescriptor = new RecordDescriptor(fields); ArrayTupleBuilder builder = new ArrayTupleBuilder(recordDescriptor.getFieldCount()); -int cap = 256; - @Before public void initial() throws HyracksDataException { appender = new DeletableFrameTupleAppender(recordDescriptor); @@ -60,12 +60,12 @@ public class DeletableFrameTupleAppenderTest { @Test public void testClear() throws Exception { -ByteBuffer buffer = ByteBuffer.allocate(cap); +ByteBuffer buffer = ByteBuffer.allocate(TEST_FRAME_SIZE); appender.c
[20/50] [abbrv] asterixdb git commit: snapshot for range state transition
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2061a388/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/partition/range/IRangeMap.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/partition/range/IRangeMap.java b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/partition/range/IRangeMap.java deleted file mode 100644 index ff2e40b..000 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/partition/range/IRangeMap.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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. - */ -package org.apache.hyracks.dataflow.common.data.partition.range; - -public interface IRangeMap { - -public int getSplitCount(); - -public byte[] getByteArray(int columnIndex, int splitIndex); - -public int getStartOffset(int columnIndex, int splitIndex); - -public int getLength(int columnIndex, int splitIndex); - -public int getTag(int columnIndex, int splitIndex); - -// Min value functions -public byte[] getMinByteArray(int columnIndex); - -public int getMinStartOffset(int columnIndex); - -public int getMinLength(int columnIndex); - -public int getMinTag(int columnIndex); - -// Max value functions -public byte[] getMaxByteArray(int columnIndex); - -public int getMaxStartOffset(int columnIndex); - -public int getMaxLength(int columnIndex); - -public int getMaxTag(int columnIndex); -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2061a388/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/partition/range/IRangePartitionType.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/partition/range/IRangePartitionType.java b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/partition/range/IRangePartitionType.java deleted file mode 100644 index dcde70b..000 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/partition/range/IRangePartitionType.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ -package org.apache.hyracks.dataflow.common.data.partition.range; - -public interface IRangePartitionType { -public enum RangePartitioningType { -/** - * Partitioning is determined by finding the range partition where the first data point lies. - */ -PROJECT, -/** - * Partitioning is determined by finding the range partition where the last data point lies. - */ -PROJECT_END, -/** - * Partitioning is determined by finding all the range partitions where the data has a point. - */ -SPLIT, -/** - * Partitioning is determined by finding all the range partitions where the data has a point - * or comes after the data point. - */ -REPLICATE -} -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2061a388/hyracks-fullstack/hyracks/hyracks-d
[33/50] [abbrv] asterixdb git commit: merge fix
merge fix Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/dc6842d4 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/dc6842d4 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/dc6842d4 Branch: refs/heads/ecarm002/interval_join_merge Commit: dc6842d474fcf95b07aec7db3ce65ad19788bae6 Parents: 3ac277c Author: Preston Carman Authored: Wed Sep 7 17:04:20 2016 -0700 Committer: Preston Carman Committed: Wed Sep 7 17:04:20 2016 -0700 -- .../algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/dc6842d4/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java index 20886a6..bea6894 100644 --- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java +++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java @@ -85,6 +85,7 @@ import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertie import org.apache.hyracks.algebricks.core.algebra.properties.UnorderedPartitionedProperty; import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty.PropertyType; import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty.PartitioningType; +import org.apache.hyracks.algebricks.core.algebra.util.OperatorManipulationUtil; import org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil; import org.apache.hyracks.algebricks.core.config.AlgebricksConfig; import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
[02/50] [abbrv] asterixdb git commit: snapshot super interval dag.
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/aea7fe87/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/NestedLoopJoinPOperator.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/NestedLoopJoinPOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/NestedLoopJoinPOperator.java new file mode 100644 index 000..e9f9db0 --- /dev/null +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/NestedLoopJoinPOperator.java @@ -0,0 +1,295 @@ +/* + * 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. + */ +package org.apache.hyracks.algebricks.core.algebra.operators.physical; + +import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; +import org.apache.hyracks.algebricks.common.exceptions.NotImplementedException; +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; +import org.apache.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag; +import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionRuntimeProvider; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator.JoinKind; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema; +import org.apache.hyracks.algebricks.core.algebra.properties.BroadcastPartitioningProperty; +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; +import org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements; +import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector; +import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext; +import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenHelper; +import org.apache.hyracks.algebricks.data.IBinaryBooleanInspector; +import org.apache.hyracks.algebricks.data.IBinaryBooleanInspectorFactory; +import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator; +import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory; +import org.apache.hyracks.api.comm.IFrameTupleAccessor; +import org.apache.hyracks.api.context.IHyracksTaskContext; +import org.apache.hyracks.api.dataflow.IOperatorDescriptor; +import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory; +import org.apache.hyracks.api.dataflow.value.ITuplePairComparator; +import org.apache.hyracks.api.dataflow.value.ITuplePairComparatorFactory; +import org.apache.hyracks.api.dataflow.value.RecordDescriptor; +import org.apache.hyracks.api.exceptions.HyracksDataException; +import org.apache.hyracks.api.job.IOperatorDescriptorRegistry; +import org.apache.hyracks.data.std.api.IPointable; +import org.apache.hyracks.data.std.primitive.VoidPointable; +import org.apache.hyracks.dataflow.common.data.accessors.FrameTupleReference; +import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference; +import org.apache.hyracks.dataflow.std.join.NestedLoopJoinOperatorDescriptor; + +/** + * The right input is broadcast and the left input can be partitioned in any way. + */ +public class NestedLoopJoinPOperator extends AbstractJoinPOperator { + +private final int memSize; + +public NestedLoopJoinPOperator(JoinKind kind, JoinPartitioningType partitioningType, int memSize) { +super(kind, partitioningType); +this.memSize = memSize; +} + +@Override +publi
[11/50] [abbrv] asterixdb git commit: merge master
merge master Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/0725160a Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/0725160a Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/0725160a Branch: refs/heads/ecarm002/interval_join_merge Commit: 0725160aa57181e9f82896af1552e57d87728db9 Parents: 4f9e6a8 61ec128 Author: Preston Carman Authored: Thu Jul 14 13:54:55 2016 -0700 Committer: Preston Carman Committed: Thu Jul 14 13:54:55 2016 -0700 -- asterixdb/asterix-app/pom.xml | 29 ++ .../asterix/test/sqlpp/ParserTestExecutor.java | 11 +- .../optimizerts/queries/query-issue697.aql | 2 +- .../sum_null-with-pred.3.query.aql | 2 +- .../sum_null-with-pred.3.query.aql | 2 +- .../queries/boolean/not_01/not_01.3.query.aql | 4 +- .../everysat_04/everysat_04.3.query.aql | 8 +- .../somesat_06/somesat_06.3.query.aql | 8 +- .../has-param1/has-param1.3.query.aql | 2 +- .../substring-after-5.3.query.aql | 2 +- .../substring-after-6.3.query.aql | 2 +- .../tinysocial-suite.13.query.aql | 2 +- .../q13_customer_distribution.3.query.aql | 2 +- .../q16_parts_supplier_relationship.3.query.aql | 4 +- .../q13_customer_distribution.3.query.aql | 2 +- .../q16_parts_supplier_relationship.3.query.aql | 4 +- .../single-line-definition.1.ddl.aql| 31 +++ .../single-line-definition.2.query.aql | 28 ++ .../single-line-definition.3.ddl.aql| 27 ++ .../udf18/udf18.3.query.aql | 2 +- .../queries_sqlpp/dapd/q2-6/q2-6.1.ddl.sqlpp| 55 .../queries_sqlpp/dapd/q2-6/q2-6.2.update.sqlpp | 19 ++ .../queries_sqlpp/dapd/q2-6/q2-6.3.query.sqlpp | 35 +++ .../group-by/gby-expr-2/gby-expr-2.1.ddl.sqlpp | 39 +++ .../gby-expr-2/gby-expr-2.2.update.sqlpp| 43 +++ .../gby-expr-2/gby-expr-2.3.query.sqlpp | 27 ++ .../group-by/gby-expr-3/gby-expr-3.1.ddl.sqlpp | 39 +++ .../gby-expr-3/gby-expr-3.2.update.sqlpp| 43 +++ .../gby-expr-3/gby-expr-3.3.query.sqlpp | 33 +++ .../group-by/gby-expr/gby-expr.1.ddl.sqlpp | 39 +++ .../group-by/gby-expr/gby-expr.2.update.sqlpp | 43 +++ .../group-by/gby-expr/gby-expr.3.query.sqlpp| 27 ++ .../group-by/sugar-01-2/sugar-01-2.1.ddl.sqlpp | 29 ++ .../sugar-01-2/sugar-01-2.2.update.sqlpp| 32 +++ .../sugar-01-2/sugar-01-2.3.query.sqlpp | 26 ++ .../group-by/sugar-02-2/sugar-02-2.1.ddl.sqlpp | 39 +++ .../sugar-02-2/sugar-02-2.2.update.sqlpp| 43 +++ .../sugar-02-2/sugar-02-2.3.query.sqlpp | 27 ++ .../sugar-02-2/sugar-02-2.4.query.sqlpp | 31 +++ .../group-by/sugar-03-2/sugar-03-2.1.ddl.sqlpp | 40 +++ .../sugar-03-2/sugar-03-2.2.update.sqlpp| 42 +++ .../sugar-03-2/sugar-03-2.3.query.sqlpp | 32 +++ .../group-by/sugar-04-2/sugar-04-2.1.ddl.sqlpp | 40 +++ .../sugar-04-2/sugar-04-2.2.update.sqlpp| 55 .../sugar-04-2/sugar-04-2.3.query.sqlpp | 31 +++ .../group-by/sugar-05-2/sugar-05-2.1.ddl.sqlpp | 35 +++ .../sugar-05-2/sugar-05-2.2.update.sqlpp| 59 .../sugar-05-2/sugar-05-2.3.query.sqlpp | 38 +++ .../alias_negative/alias_negative.1.query.sqlpp | 24 ++ .../q01_pricing_summary_report_2.1.ddl.sqlpp| 47 .../q01_pricing_summary_report_2.2.update.sqlpp | 24 ++ .../q01_pricing_summary_report_2.3.query.sqlpp | 43 +++ .../single-line-definition.1.ddl.sqlpp | 31 +++ .../single-line-definition.2.query.sqlpp| 30 ++ .../single-line-definition.3.ddl.sqlpp | 27 ++ .../group-by/gby-expr-2/gby-expr-2.1.adm| 1 + .../group-by/gby-expr-3/gby-expr-3.1.adm| 1 + .../results/group-by/gby-expr/gby-expr.1.adm| 1 + .../single-line-definition.1.adm| 1 + .../src/test/resources/runtimets/testsuite.xml | 5 + .../resources/runtimets/testsuite_sqlpp.xml | 61 + .../asterix-lang-aql/src/main/javacc/AQL.jj | 250 ++--- .../lang/common/clause/GroupbyClause.java | 32 ++- .../asterix/lang/common/clause/LetClause.java | 18 ++ .../asterix/lang/common/clause/LimitClause.java | 27 +- .../lang/common/clause/OrderbyClause.java | 20 ++ .../lang/common/clause/UpdateClause.java| 22 ++ .../asterix/lang/common/clause/WhereClause.java | 31 ++- .../common/expression/AbstractAccessor.java | 18 ++ .../lang/common/expression/CallExpr.java| 21 +- .../lang/common/expression/FieldAccessor.java | 18 ++ .../lang/common/expression/FieldBinding.java| 24 ++ .../expression/GbyVariableExpressionPair.java | 22 ++ .../asterix/lang/common/expression/IfExpr.java | 25 ++ .../lang/common/expression/IndexAccessor.ja
[45/50] [abbrv] asterixdb git commit: merge master
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixPhysicalOperatorsRule.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/FunctionCollection.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml -- diff --cc asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml index b802d9a,0a45cdf..e00e263 --- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml +++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml @@@ -19,9 -19,9 +19,10 @@@ - + + + ]> http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/asterixdb/asterix-om/pom.xml -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/AsterixBuiltinFunctions.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/PhysicalOperatorTag.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ed86c88a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java -- diff --cc hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java index fea0431,fde6a28..067a4bc --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java @@@ -53,10 -52,8 +53,9 @@@ import org.apache.hyracks.algebricks.co import org.apache.hyracks.algebricks.core.algebra.operators.logical.MaterializeOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.NestedTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator; - import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator.IOrder; import org.apache.hyracks.algebricks.core.algebra.operators.logical.PartitioningSplitOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.RangeForwardOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ReplicateOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.RunningAggregateOperator; import org.apache.hyracks.algebricks.core.algebra.
[22/50] [abbrv] asterixdb git commit: snapshot for range state transition
snapshot for range state transition Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/2061a388 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/2061a388 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/2061a388 Branch: refs/heads/ecarm002/interval_join_merge Commit: 2061a388632246cb0bc1d9ac056440d14a15db03 Parents: 5d02948 Author: Preston Carman Authored: Wed Aug 10 17:56:43 2016 -0700 Committer: Preston Carman Committed: Wed Aug 10 17:56:43 2016 -0700 -- .../physical/AbstractIntervalJoinPOperator.java | 29 +++--- .../physical/IntervalIndexJoinPOperator.java| 14 ++- .../physical/IntervalJoinPOperator.java | 63 --- .../IntervalLocalRangeOperatorDescriptor.java | 23 ++-- .../IntervalLocalRangeSplitterPOperator.java| 10 +- .../IntervalPartitionJoinPOperator.java | 17 +-- .../rules/IntervalSplitPartitioningRule.java| 28 ++--- .../SweepIllegalNonfunctionalFunctions.java | 6 ++ .../subplan/InlineAllNtsInSubplanVisitor.java | 6 ++ ...neLeftNtsInSubplanJoinFlatteningVisitor.java | 6 ++ .../SubplanSpecialFlatteningCheckVisitor.java | 6 ++ .../asterix/optimizer/rules/util/JoinUtils.java | 37 --- .../IntervalJoinExpressionAnnotation.java | 22 ++-- .../asterix/lang/aql/util/RangeMapBuilder.java | 2 +- .../lang/common/clause/OrderbyClause.java | 2 +- .../AqlBinaryComparatorFactoryProvider.java | 2 +- ...tervalRangePartitionComputerFactoryTest.java | 8 +- .../functions/temporal/IntervalLogic.java | 12 ++- ...tIntervalInverseMergeJoinCheckerFactory.java | 2 +- ...AbstractIntervalMergeJoinCheckerFactory.java | 2 +- .../AfterIntervalMergeJoinCheckerFactory.java | 5 +- .../BeforeIntervalMergeJoinCheckerFactory.java | 5 +- ...overedByIntervalMergeJoinCheckerFactory.java | 4 +- .../CoversIntervalMergeJoinCheckerFactory.java | 4 +- .../EndedByIntervalMergeJoinCheckerFactory.java | 5 +- .../EndsIntervalMergeJoinCheckerFactory.java| 5 +- .../joins/IIntervalMergeJoinCheckerFactory.java | 3 +- .../MeetsIntervalMergeJoinCheckerFactory.java | 5 +- .../MetByIntervalMergeJoinCheckerFactory.java | 5 +- ...lappedByIntervalMergeJoinCheckerFactory.java | 4 +- ...rlappingIntervalMergeJoinCheckerFactory.java | 11 +- ...OverlapsIntervalMergeJoinCheckerFactory.java | 4 +- ...tartedByIntervalMergeJoinCheckerFactory.java | 5 +- .../StartsIntervalMergeJoinCheckerFactory.java | 5 +- .../intervalindex/IntervalIndexJoiner.java | 2 +- ...IntervalPartitionJoinOperatorDescriptor.java | 17 +-- .../IntervalPartitionUtil.java | 2 +- .../core/algebra/base/IOptimizationContext.java | 2 +- .../core/algebra/base/IRangeContext.java| 27 + .../operators/logical/RangeForwardOperator.java | 11 +- ...OperatorDeepCopyWithNewVariablesVisitor.java | 2 +- .../visitors/OperatorDeepCopyVisitor.java | 2 +- .../HashPartitionExchangePOperator.java | 2 +- .../operators/physical/MergeJoinPOperator.java | 31 -- .../physical/RangeForwardPOperator.java | 25 - .../RangePartitionExchangePOperator.java| 22 ++-- .../RangePartitionMergeExchangePOperator.java | 22 ++-- .../properties/OrderedPartitionedProperty.java | 26 +++-- .../core/algebra/properties/PropertiesUtil.java | 4 +- .../base/AlgebricksOptimizationContext.java | 40 --- .../data/IBinaryComparatorFactoryProvider.java | 2 +- .../rules/EnforceStructuralPropertiesRule.java | 81 ++- .../rewriter/rules/InlineVariablesRule.java | 104 ++- ...placeNtsWithSubplanInputOperatorVisitor.java | 6 ++ .../hyracks/api/dataflow/value/IRangeMap.java | 50 + .../api/dataflow/value/IRangePartitionType.java | 41 .../ITupleRangePartitionComputerFactory.java| 2 +- .../FieldRangePartitionComputerFactory.java | 18 ++-- .../common/data/partition/range/IRangeMap.java | 50 - .../partition/range/IRangePartitionType.java| 41 .../common/data/partition/range/RangeMap.java | 2 + .../hyracks/dataflow/std/base/RangeId.java | 56 ++ ...angePartitionMergingConnectorDescriptor.java | 12 ++- ...ToNRangePartitioningConnectorDescriptor.java | 11 +- .../connectors/PartitionRangeDataWriter.java| 21 +++- .../std/join/IMergeJoinCheckerFactory.java | 5 +- .../std/join/MergeJoinOperatorDescriptor.java | 2 +- .../join/NaturalMergeJoinCheckerFactory.java| 5 +- .../misc/RangeForwardOperatorDescriptor.java| 24 ++--- .../sort/AbstractSorterOperatorDescriptor.java | 3 - .../FieldRangePartitionComputerFactoryTest.java | 8 +- 71 files changed, 664 insertions(+), 484 deletions(-) --
[39/50] [abbrv] asterixdb git commit: reuse pairs for frame tuple appender.
reuse pairs for frame tuple appender. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/f6dba461 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/f6dba461 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/f6dba461 Branch: refs/heads/ecarm002/interval_join_merge Commit: f6dba4610812497aa595b7d27c44458b71f798ad Parents: 1ecdb32 Author: Preston Carman Authored: Sun Sep 25 15:08:57 2016 -0700 Committer: Preston Carman Committed: Sun Sep 25 15:08:57 2016 -0700 -- .../sort/util/DeletableFrameTupleAppender.java | 15 +++- .../dataflow/std/sort/util/IntegerPair.java | 87 .../dataflow/std/sort/util/IntegerPairPool.java | 39 + 3 files changed, 137 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f6dba461/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java index e5f0bce2..c143eaf 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/DeletableFrameTupleAppender.java @@ -25,6 +25,7 @@ import java.util.Comparator; import java.util.PriorityQueue; import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.MutablePair; import org.apache.commons.lang3.tuple.Pair; import org.apache.hyracks.api.comm.IFrameTupleAccessor; import org.apache.hyracks.api.dataflow.value.RecordDescriptor; @@ -102,12 +103,13 @@ public class DeletableFrameTupleAppender implements IAppendDeletableFrameTupleAc private int deletedSpace; private int nextIndex; private byte[] array; // to speed up the array visit a little +private IntegerPairPool ipp = new IntegerPairPool(); -private final PriorityQueue> reorganizeQueue; +private final PriorityQueue reorganizeQueue; public DeletableFrameTupleAppender(RecordDescriptor recordDescriptor) { this.recordDescriptor = recordDescriptor; -reorganizeQueue = new PriorityQueue<>(16, INDEX_OFFSET_ASC_COMPARATOR); +reorganizeQueue = new PriorityQueue<>(16, IntegerPair.RIGHT_ASC_COMPARATOR); } private int getIndexCount() { @@ -251,19 +253,23 @@ public class DeletableFrameTupleAppender implements IAppendDeletableFrameTupleAc reclaimDeletedEnding(); // Build reorganize queue +IntegerPair ip; int endOffset; int startOffset; for (int i = 0; i < indexCount; i++) { endOffset = getTupleEndOffset(i); if (endOffset > 0) { -reorganizeQueue.add(new ImmutablePair(i, getTupleStartOffset(i))); +ip = ipp.takeOne(); +ip.reset(i, getTupleStartOffset(i)); +reorganizeQueue.add(ip); } } int index; tupleAppend = 0; while (!reorganizeQueue.isEmpty()) { -index = reorganizeQueue.remove().getKey(); +ip = reorganizeQueue.remove(); +index = ip.getLeft(); startOffset = getTupleStartOffset(index); endOffset = getTupleEndOffset(index); if (endOffset >= 0) { @@ -275,6 +281,7 @@ public class DeletableFrameTupleAppender implements IAppendDeletableFrameTupleAc setTupleOffsets(index, tupleAppend, length); tupleAppend += length; } +ipp.giveBack(ip); } setTupleAppend(tupleAppend); deletedSpace = 0; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f6dba461/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/IntegerPair.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/IntegerPair.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/IntegerPair.java new file mode 100644 index 000..99f327b --- /dev/null +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/util/IntegerPair.java @@ -0,0 +1,87 @@ +/* + * Licensed to the Apache Software Foun
[41/50] [abbrv] asterixdb git commit: Interface clean up.
Interface clean up. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/ce593414 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/ce593414 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/ce593414 Branch: refs/heads/ecarm002/interval_join_merge Commit: ce5934148227e57eeebb369d57ae64d87b908959 Parents: 19f0997 Author: Preston Carman Authored: Thu Sep 29 16:05:18 2016 -0700 Committer: Preston Carman Committed: Thu Sep 29 16:05:18 2016 -0700 -- .../IntervalIndexJoinOperatorDescriptor.java| 5 +-- .../intervalindex/IntervalIndexJoiner.java | 46 ++-- ...IntervalPartitionJoinOperatorDescriptor.java | 9 ++-- .../dataflow/std/join/AbstractMergeJoiner.java | 38 +--- .../hyracks/dataflow/std/join/IMergeJoiner.java | 6 +-- .../std/join/MergeJoinOperatorDescriptor.java | 6 +-- .../hyracks/dataflow/std/join/MergeJoiner.java | 35 +++ 7 files changed, 72 insertions(+), 73 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ce593414/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java index d84fabc..fbddfef 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java @@ -151,7 +151,7 @@ public class IntervalIndexJoinOperatorDescriptor extends AbstractOperatorDescrip } try { state.indexJoiner.setFrame(LEFT_ACTIVITY_ID, buffer); -state.indexJoiner.processMergeUsingLeftTuple(writer); +state.indexJoiner.processLeftFrame(writer); } finally { locks.getLock(partition).unlock(); } @@ -175,8 +175,7 @@ public class IntervalIndexJoinOperatorDescriptor extends AbstractOperatorDescrip if (state.failed) { writer.fail(); } else { -state.indexJoiner.processMergeUsingLeftTuple(writer); -state.indexJoiner.closeResult(writer); +state.indexJoiner.processLeftClose(writer); writer.close(); } state.status.branch[LEFT_ACTIVITY_ID].setStageClose(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ce593414/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java index a4ad666..bac2f45 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java @@ -141,24 +141,6 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { joinResultCount++; } -@Override -public void closeResult(IFrameWriter writer) throws HyracksDataException { -resultAppender.write(writer, true); -activeManager[LEFT_PARTITION].clear(); -activeManager[RIGHT_PARTITION].clear(); -runFileStream[LEFT_PARTITION].close(); -runFileStream[RIGHT_PARTITION].close(); -if (LOGGER.isLoggable(Level.WARNING)) { -LOGGER.warning("IntervalIndexJoiner statitics: " + joinComparisonCount + " comparisons, " + joinResultCount -+ " results, left[" + leftSpillCount + " spills, " + runFileStream[LEFT_PARTITION].getFileCount() -+ " files, " + runFileStream[LEFT_PARTITION].getWriteCount() + " written, " -+ runFileStream[LEFT_PARTITION].getReadCount() + " read]. right[" + rightSpillCount + " spills, " -+ runFileStream[RIGHT_PARTITION].getFileCount() + " files, " -+ runFileStream[RI
[21/50] [abbrv] asterixdb git commit: snapshot for range state transition
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2061a388/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java index d6cd363..9ca536b 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java @@ -82,7 +82,7 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { super(ctx, partition, status, locks, leftRd, rightRd); this.point = imjcf.isOrderAsc() ? EndPointIndexItem.START_POINT : EndPointIndexItem.END_POINT; -this.imjc = imjcf.createMergeJoinChecker(leftKeys, rightKeys, partition); +this.imjc = imjcf.createMergeJoinChecker(leftKeys, rightKeys, partition, null); this.leftKey = leftKeys[0]; this.rightKey = rightKeys[0]; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2061a388/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoinOperatorDescriptor.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoinOperatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoinOperatorDescriptor.java index 0dd358c..8c4c43d 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoinOperatorDescriptor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalpartition/IntervalPartitionJoinOperatorDescriptor.java @@ -37,12 +37,13 @@ import org.apache.hyracks.api.dataflow.value.RecordDescriptor; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.job.IOperatorDescriptorRegistry; import org.apache.hyracks.api.job.JobId; -import org.apache.hyracks.dataflow.common.data.partition.range.IRangeMap; import org.apache.hyracks.dataflow.std.base.AbstractActivityNode; import org.apache.hyracks.dataflow.std.base.AbstractOperatorDescriptor; import org.apache.hyracks.dataflow.std.base.AbstractStateObject; import org.apache.hyracks.dataflow.std.base.AbstractUnaryInputSinkOperatorNodePushable; import org.apache.hyracks.dataflow.std.base.AbstractUnaryInputUnaryOutputOperatorNodePushable; +import org.apache.hyracks.dataflow.std.base.RangeId; +import org.apache.hyracks.dataflow.std.misc.RangeForwardOperatorDescriptor.RangeForwardTaskState; public class IntervalPartitionJoinOperatorDescriptor extends AbstractOperatorDescriptor { private static final long serialVersionUID = 1L; @@ -65,14 +66,14 @@ public class IntervalPartitionJoinOperatorDescriptor extends AbstractOperatorDes private final int probeKey; private final int buildKey; private final IIntervalMergeJoinCheckerFactory imjcf; -private final IRangeMap rangeMap; +private final RangeId rangeId; private static final Logger LOGGER = Logger.getLogger(IntervalPartitionJoinOperatorDescriptor.class.getName()); public IntervalPartitionJoinOperatorDescriptor(IOperatorDescriptorRegistry spec, int memsize, long leftTupleCount, long rightTupleCount, long leftMaxDuration, long rightMaxDuration, int avgTuplesPerFrame, int[] leftKeys, int[] rightKeys, RecordDescriptor recordDescriptor, IIntervalMergeJoinCheckerFactory imjcf, -IRangeMap rangeMap) { +RangeId rangeId) { super(spec, 2, 1); this.memsize = memsize; this.buildKey = leftKeys[0]; @@ -86,7 +87,7 @@ public class IntervalPartitionJoinOperatorDescriptor extends AbstractOperatorDes this.probeKeys = rightKeys; recordDescriptors[0] = recordDescriptor; this.imjcf = imjcf; -this.rangeMap = rangeMap; +this.rangeId = rangeId; } @Override @@ -137,8 +138,6 @@ public class IntervalPartitionJoinOperatorDescriptor extends AbstractOperatorDes final RecordDescriptor probeRd = recordDescProvider.getInputRecordDescriptor(probeAid, 0); final int k = IntervalPartitionUtil.determineK(buildTupleCount, buildMaxDuration, probeTupleCount, probeMaxDuration, avgTuplesPerFrame); -final long partitionStart = IntervalPartitionUtil.getStartOfPartition(rangeMap, partition); -
[16/50] [abbrv] asterixdb git commit: simplify change by removing format changes.
simplify change by removing format changes. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/99867266 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/99867266 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/99867266 Branch: refs/heads/ecarm002/interval_join_merge Commit: 998672669f37db5d3752dab511fd06e271331668 Parents: c44a7d9 Author: Preston Carman Authored: Sat Jul 16 22:56:35 2016 -0700 Committer: Preston Carman Committed: Sat Jul 16 22:56:35 2016 -0700 -- .../comparisons/AbstractComparisonEvaluator.java | 1 - .../physical/RandomPartitionExchangePOperator.java| 2 +- .../physical/SortMergeExchangePOperator.java | 4 ++-- .../rewriter/rules/ConsolidateSelectsRule.java| 4 ++-- .../rules/ExtractFunctionsFromJoinConditionRule.java | 13 ++--- .../std/sort/util/DeletableFrameTupleAppender.java| 2 +- .../storage/am/btree/impls/BTreeOpContext.java| 5 ++--- .../am/common/util/TreeIndexBufferCacheWarmup.java| 5 ++--- .../am/rtree/frames/RTreeNSMInteriorFrame.java| 14 ++ 9 files changed, 22 insertions(+), 28 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/99867266/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java index 2389fe3..0ed89dd 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java @@ -20,7 +20,6 @@ package org.apache.asterix.runtime.evaluators.comparisons; import java.io.DataOutput; -import org.apache.asterix.common.exceptions.AsterixException; import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider; import org.apache.asterix.om.base.ABoolean; import org.apache.asterix.om.base.ANull; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/99867266/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RandomPartitionExchangePOperator.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RandomPartitionExchangePOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RandomPartitionExchangePOperator.java index 06cac01..cba8f97 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RandomPartitionExchangePOperator.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/RandomPartitionExchangePOperator.java @@ -68,7 +68,7 @@ public class RandomPartitionExchangePOperator extends AbstractExchangePOperator ILogicalOperator op, IOperatorSchema opSchema, JobGenContext context) throws AlgebricksException { ITuplePartitionComputerFactory tpcf = new RandomPartitionComputerFactory(); MToNPartitioningConnectorDescriptor conn = new MToNPartitioningConnectorDescriptor(spec, tpcf); -return new Pair<>(conn, null); +return new Pair(conn, null); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/99867266/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SortMergeExchangePOperator.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SortMergeExchangePOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SortMergeExchangePOperator.java index 4cf5194..81f6e6b 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SortMergeExchangePOperator.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SortMergeExchangePOperator.java @@ -124,8 +124,8 @@ publ
[30/50] [abbrv] asterixdb git commit: merge master
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/c2e48a78/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java -- diff --cc asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java index a4959ab,cf36c05..f6f0862 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java @@@ -36,9 -37,9 +37,10 @@@ import org.apache.asterix.optimizer.rul import org.apache.asterix.optimizer.rules.ExtractOrderExpressionsRule; import org.apache.asterix.optimizer.rules.FeedScanCollectionToUnnest; import org.apache.asterix.optimizer.rules.FuzzyEqRule; - import org.apache.asterix.optimizer.rules.IfElseToSwitchCaseFunctionRule; + import org.apache.asterix.optimizer.rules.InjectTypeCastForSwitchCaseRule; + import org.apache.asterix.optimizer.rules.InjectTypeCastForUnionRule; import org.apache.asterix.optimizer.rules.InlineUnnestFunctionRule; +import org.apache.asterix.optimizer.rules.IntervalSplitPartitioningRule; import org.apache.asterix.optimizer.rules.IntroduceAutogenerateIDRule; import org.apache.asterix.optimizer.rules.IntroduceDynamicTypeCastForExternalFunctionRule; import org.apache.asterix.optimizer.rules.IntroduceDynamicTypeCastRule; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/c2e48a78/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/FunctionCollection.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/c2e48a78/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java -- diff --cc asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java index 61057b4,76d0245..294f4d0 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java @@@ -244,15 -254,11 +255,15 @@@ public class APIFramework OptimizationConfUtil.getPhysicalOptimizationConfig().setMaxFramesExternalSort(sortFrameLimit); OptimizationConfUtil.getPhysicalOptimizationConfig().setMaxFramesExternalGroupBy(groupFrameLimit); OptimizationConfUtil.getPhysicalOptimizationConfig().setMaxFramesForJoin(joinFrameLimit); + OptimizationConfUtil.getPhysicalOptimizationConfig().setMaxFramesForJoinLeftInput(joinFrameLeftInputLimit); + +int intervalMaxDuration = (int) (compilerProperties.getIntervalMaxDuration()); + OptimizationConfUtil.getPhysicalOptimizationConfig().getMaxIntervalDuration(intervalMaxDuration); - HeuristicCompilerFactoryBuilder builder = new HeuristicCompilerFactoryBuilder( - AqlOptimizationContextFactory.INSTANCE); + HeuristicCompilerFactoryBuilder builder = + new HeuristicCompilerFactoryBuilder(AqlOptimizationContextFactory.INSTANCE); builder.setPhysicalOptimizationConfig(OptimizationConfUtil.getPhysicalOptimizationConfig()); - builder.setLogicalRewrites(buildDefaultLogicalRewrites()); + builder.setLogicalRewrites(buildDefaultLogicalRewrites(cExtensionManager)); builder.setPhysicalRewrites(buildDefaultPhysicalRewrites()); IDataFormat format = queryMetadataProvider.getFormat(); ICompilerFactory compilerFactory = builder.create(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/c2e48a78/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/c2e48a78/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixCompilerProperties.java -- diff --cc asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixCompilerProperties.java index 0a684ed,5bfb5f8..b79c2cb --- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixCompilerProperties.java +++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixCompilerProperties.java @@@ -53,27 -45,17 +53,27 @@@ public class AsterixCompilerProperties public long getJoinMemorySize() { return accessor.getProperty(COMPILER_JOINMEMORY_KEY, COMPILER_JOINMEMORY_DEFAULT, - PropertyInterpreters.getLongPropertyInterpreter()); + PropertyInterpreters.getLongBytePropertyInterpreter()); } +public long getJoinLeftInputSize() { +return accessor.getProperty(COMPILER_JOIN_LEFTINPUT_KEY, COMPILER_JOIN_LEFTINPUT_DEFAULT, +Proper
[01/50] [abbrv] asterixdb git commit: fix for indexing memory error.
Repository: asterixdb Updated Branches: refs/heads/ecarm002/interval_join_merge [created] faa3bb457 fix for indexing memory error. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/199bddd3 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/199bddd3 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/199bddd3 Branch: refs/heads/ecarm002/interval_join_merge Commit: 199bddd3c68ef8e8c3ee0cccf6d8cdcc38fd8189 Parents: f9443fa Author: Preston Carman Authored: Wed Jun 15 19:06:51 2016 -0700 Committer: Preston Carman Committed: Wed Jun 15 19:06:51 2016 -0700 -- .../joins/intervalindex/ActiveSweepManager.java | 10 +++ .../IntervalIndexJoinOperatorDescriptor.java| 1 + .../intervalindex/IntervalIndexJoiner.java | 29 ++-- .../dataflow/std/join/AbstractMergeJoiner.java | 12 .../dataflow/std/join/MergeBranchStatus.java| 6 .../std/join/MergeJoinOperatorDescriptor.java | 1 + 6 files changed, 29 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/199bddd3/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/ActiveSweepManager.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/ActiveSweepManager.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/ActiveSweepManager.java index 70785ab..84bd262 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/ActiveSweepManager.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/ActiveSweepManager.java @@ -44,18 +44,18 @@ public class ActiveSweepManager { private EndPointIndexItem item = null; private final LinkedList active = new LinkedList<>(); -public ActiveSweepManager(IPartitionedDeletableTupleBufferManager bufferManager, int key, int partition, +public ActiveSweepManager(IPartitionedDeletableTupleBufferManager bufferManager, int key, int joinBranch, Comparator endPointComparator) { this.bufferManager = bufferManager; this.key = key; -this.partition = partition; +this.partition = joinBranch; indexQueue = new PriorityQueue<>(16, endPointComparator); } -public boolean addTuple(ITupleAccessor leftInputAccessor, TuplePointer tp) throws HyracksDataException { -if (bufferManager.insertTuple(partition, leftInputAccessor, leftInputAccessor.getTupleId(), tp)) { +public boolean addTuple(ITupleAccessor accessor, TuplePointer tp) throws HyracksDataException { +if (bufferManager.insertTuple(partition, accessor, accessor.getTupleId(), tp)) { EndPointIndexItem e = new EndPointIndexItem(tp, EndPointIndexItem.END_POINT, -IntervalJoinUtil.getIntervalEnd(leftInputAccessor, leftInputAccessor.getTupleId(), key)); +IntervalJoinUtil.getIntervalEnd(accessor, accessor.getTupleId(), key)); indexQueue.add(e); active.add(tp); item = indexQueue.peek(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/199bddd3/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java index c248f72..be44df3 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java @@ -258,6 +258,7 @@ public class IntervalIndexJoinOperatorDescriptor extends AbstractOperatorDescrip locks.getRight(partition).await(); } state.indexJoiner.setFrame(RIGHT_ACTIVITY_ID, buffer); +state.status.continueRightLoad = false; locks.getLeft(partition).signal(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/199bddd3/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operat
[24/50] [abbrv] asterixdb git commit: Working version of the range connector and interval join partition.
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1487f2be/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java index 8701851..6052c69 100644 --- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java +++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java @@ -51,6 +51,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.InsertDelete import org.apache.hyracks.algebricks.core.algebra.operators.logical.LeftOuterJoinOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator.IOrder; +import org.apache.hyracks.algebricks.core.algebra.operators.logical.RangeForwardOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.TokenizeOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator; import org.apache.hyracks.algebricks.core.algebra.operators.physical.AggregatePOperator; @@ -70,6 +71,7 @@ import org.apache.hyracks.algebricks.core.algebra.operators.physical.MicroPreclu import org.apache.hyracks.algebricks.core.algebra.operators.physical.NestedTupleSourcePOperator; import org.apache.hyracks.algebricks.core.algebra.operators.physical.PreSortedDistinctByPOperator; import org.apache.hyracks.algebricks.core.algebra.operators.physical.PreclusteredGroupByPOperator; +import org.apache.hyracks.algebricks.core.algebra.operators.physical.RangeForwardPOperator; import org.apache.hyracks.algebricks.core.algebra.operators.physical.ReplicatePOperator; import org.apache.hyracks.algebricks.core.algebra.operators.physical.RunningAggregatePOperator; import org.apache.hyracks.algebricks.core.algebra.operators.physical.SinkPOperator; @@ -234,6 +236,11 @@ public class SetAlgebricksPhysicalOperatorsRule implements IAlgebraicRewriteRule op.setPhysicalOperator(new RunningAggregatePOperator()); break; } +case RANGE_FORWARD: { +RangeForwardOperator rfo = (RangeForwardOperator) op; +op.setPhysicalOperator(new RangeForwardPOperator(rfo.getRangeId(), rfo.getRangeMap())); +break; +} case REPLICATE: { op.setPhysicalOperator(new ReplicatePOperator()); break; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1487f2be/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/base/RangeId.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/base/RangeId.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/base/RangeId.java index 774dd2a..e1b7b12 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/base/RangeId.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/base/RangeId.java @@ -58,7 +58,7 @@ public final class RangeId implements Serializable { @Override public String toString() { -return "RangeId(#" + id + (partition >= 0 ? "," + partition : "") + ")"; +return "RangeId(" + id + (partition >= 0 ? "," + partition : "") + ")"; } @Override @@ -74,4 +74,5 @@ public final class RangeId implements Serializable { public int hashCode() { return id; } + } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1487f2be/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/PartitionRangeDataWriter.java -- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/PartitionRangeDataWriter.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/PartitionRangeDataWriter.java index c08035a..c235afb 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/PartitionRangeDataWriter.java +++ b/hyr
[28/50] [abbrv] asterixdb git commit: snapshot with logging
snapshot with logging Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/1df9a9c7 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/1df9a9c7 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/1df9a9c7 Branch: refs/heads/ecarm002/interval_join_merge Commit: 1df9a9c7db4b686e75b870ee02080f8fe15ca666 Parents: 1fae6ac Author: Preston Carman Authored: Tue Sep 6 15:51:12 2016 -0700 Committer: Preston Carman Committed: Tue Sep 6 15:51:12 2016 -0700 -- .../joins/AbstractIntervalMergeJoinChecker.java | 6 +- .../IntervalIndexJoinOperatorDescriptor.java| 6 +- .../intervalindex/IntervalIndexJoiner.java | 86 +--- .../dataflow/std/join/AbstractMergeJoiner.java | 24 +++--- .../hyracks/dataflow/std/join/IMergeJoiner.java | 2 + .../std/join/MergeJoinOperatorDescriptor.java | 18 +++- .../hyracks/dataflow/std/join/MergeJoiner.java | 80 +- .../dataflow/std/join/NestedLoopJoin.java | 8 +- .../dataflow/std/join/RunFileStream.java| 9 +- 9 files changed, 162 insertions(+), 77 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1df9a9c7/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java index b461799..ec8ecda 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java @@ -69,7 +69,7 @@ public abstract class AbstractIntervalMergeJoinChecker implements IIntervalMerge IntervalJoinUtil.getIntervalPointable(accessorRight, idRight, tvp, ipRight); ipLeft.getEnd(endLeft); ipRight.getStart(startRight); -return ch.compare(ipLeft.getTypeTag(), ipRight.getTypeTag(), endLeft, startRight) >= 0; +return ch.compare(ipLeft.getTypeTag(), ipRight.getTypeTag(), endLeft, startRight) > 0; } @Override @@ -79,7 +79,7 @@ public abstract class AbstractIntervalMergeJoinChecker implements IIntervalMerge IntervalJoinUtil.getIntervalPointable(accessorRight, idRight, tvp, ipRight); ipLeft.getStart(startLeft); ipRight.getEnd(endRight); -return !(ch.compare(ipLeft.getTypeTag(), ipRight.getTypeTag(), startLeft, endRight) <= 0); +return !(ch.compare(ipLeft.getTypeTag(), ipRight.getTypeTag(), startLeft, endRight) < 0); } @Override @@ -102,7 +102,7 @@ public abstract class AbstractIntervalMergeJoinChecker implements IIntervalMerge IntervalJoinUtil.getIntervalPointable(accessorRight, rightTupleIndex, idRight, tvp, ipRight); ipLeft.getStart(startLeft); ipRight.getEnd(endRight); -return !(ch.compare(ipLeft.getTypeTag(), ipRight.getTypeTag(), startLeft, endRight) <= 0); +return !(ch.compare(ipLeft.getTypeTag(), ipRight.getTypeTag(), startLeft, endRight) < 0); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1df9a9c7/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java index be44df3..d84fabc 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoinOperatorDescriptor.java @@ -37,6 +37,7 @@ import org.apache.hyracks.dataflow.std.base.AbstractActivityNode; import org.apache.hyracks.dataflow.std.base.AbstractOperatorDescriptor; import org.apache.hyracks.dataflow.std.base.AbstractUnaryInputSinkOperatorNodePushable; import org.apache.hyracks.dataflow.std.base.AbstractUnaryInputUnaryOutputOperatorNodePushable; +import org.apache.hyracks.dataflow.std.join.MergeBranchStatus.Stage; import org.apache.hyracks.dataflow.std.join.MergeJoinLocks; public class IntervalIndexJoinOperatorDescriptor extends AbstractOperat
[42/50] [abbrv] asterixdb git commit: working partition join.
working partition join. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/b34a426a Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/b34a426a Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/b34a426a Branch: refs/heads/ecarm002/interval_join_merge Commit: b34a426a48dbf16a2d313b2333eb0e6fb23227e4 Parents: ce59341 Author: Preston Carman Authored: Fri Sep 30 13:48:03 2016 -0700 Committer: Preston Carman Committed: Fri Sep 30 13:48:03 2016 -0700 -- .../IntervalPartitionJoinPOperator.java | 2 +- .../intervalindex/IntervalIndexJoiner.java | 62 ++-- ...IntervalPartitionJoinOperatorDescriptor.java | 319 +++ .../IntervalPartitionJoinTaskState.java | 33 ++ .../IntervalPartitionJoiner.java| 288 + .../dataflow/common/io/RunFileReader.java | 4 + .../dataflow/std/structures/RunFilePointer.java | 102 ++ 7 files changed, 778 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/b34a426a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java index 73d159e..af77a92 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.logging.Logger; import org.apache.asterix.runtime.operators.joins.IIntervalMergeJoinCheckerFactory; -import org.apache.asterix.runtime.operators.joins.intervalpartition.IntervalPartitionJoinOperatorDescriptor; +import org.apache.asterix.runtime.operators.joins.intervalpartition2.IntervalPartitionJoinOperatorDescriptor; import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable; import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractBinaryJoinOperator.JoinKind; import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator.IOrder.OrderKind; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/b34a426a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java index bac2f45..8b7a12e 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java @@ -61,7 +61,7 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { private final int[] streamIndex; private final RunFileStream[] runFileStream; -//private final LinkedList buffer = new LinkedList<>(); +//private final LinkedList buffer = new LinkedList<>(); private final IIntervalMergeJoinChecker imjc; @@ -342,7 +342,7 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { if (activeManager[LEFT_PARTITION].addTuple(inputAccessor[LEFT_PARTITION], tp)) { processTupleJoin(activeManager[RIGHT_PARTITION].getActiveList(), memoryAccessor[RIGHT_PARTITION], inputAccessor[LEFT_PARTITION], true, writer); -//buffer.add(tp); +//buffer.add(tp); } else { // Spill case freezeAndSpill(); @@ -356,10 +356,10 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { } while (loadLeftTuple().isLoaded() && loadRightTuple().isLoaded() && !checkToProcessRightTuple()); // Add Results -//if (!buffer.isEmpty()) { -// processActiveJoin(activeManager[RIGHT_PARTITION].getActiveList(), memoryAccessor[RIGHT_PARTITION], buffer, -//memoryAccessor[LEFT_PARTITION], true, writer); -//} +//if (!buffer.isEmpty()) { +// processActiveJoin(activeManager[RIGHT_PARTITION].getActiveList(),
[29/50] [abbrv] asterixdb git commit: ASTERIXDB-1635 Fix for overlap-bins start for dates.
ASTERIXDB-1635 Fix for overlap-bins start for dates. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/d4cbcb2f Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/d4cbcb2f Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/d4cbcb2f Branch: refs/heads/ecarm002/interval_join_merge Commit: d4cbcb2fe05649d02f12a0196eaa508cb5f7c623 Parents: 1df9a9c Author: Preston Carman Authored: Tue Sep 6 16:10:24 2016 -0700 Committer: Preston Carman Committed: Tue Sep 6 16:10:24 2016 -0700 -- .../overlap_bins/overlap_bins.1.query.aql | 2 +- .../overlap_bins/overlap_bins.3.query.sqlpp | 2 +- .../temporal/overlap_bins/overlap_bins.1.adm| 2 +- .../temporal/overlap_bins/overlap_bins.3.ast| 2 +- .../src/site/markdown/aql/functions.md | 9 +- .../om/base/temporal/DateTimeFormatUtils.java | 200 ++- .../temporal/DurationArithmeticOperations.java | 32 +-- .../temporal/OverlapBinsDescriptor.java | 25 ++- 8 files changed, 146 insertions(+), 128 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d4cbcb2f/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/overlap_bins/overlap_bins.1.query.aql -- diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/overlap_bins/overlap_bins.1.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/overlap_bins/overlap_bins.1.query.aql index 8011ad6..bfb5527 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/overlap_bins/overlap_bins.1.query.aql +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/overlap_bins/overlap_bins.1.query.aql @@ -25,5 +25,5 @@ let $itv1 := interval(time("17:23:37"), time("18:30:21")) let $itv2 := interval(date("1984-03-17"), date("2013-08-22")) let $itv3 := interval(datetime("1800-01-01T23:59:48.938"), datetime("2015-07-26T13:28:30.218")) return { "timebins": overlap-bins($itv1, time("00:00:00"), day-time-duration("PT30M")), - "datebins": overlap-bins($itv2, date("1990-01-01"), year-month-duration("P20Y")), + "datebins": overlap-bins($itv2, date("1990-01-01"), year-month-duration("P10Y")), "datetimebins": overlap-bins($itv3, datetime("1900-01-01T00:00:00.000"), year-month-duration("P100Y")) } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d4cbcb2f/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/overlap_bins/overlap_bins.3.query.sqlpp -- diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/overlap_bins/overlap_bins.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/overlap_bins/overlap_bins.3.query.sqlpp index e42707f..90cd95e 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/overlap_bins/overlap_bins.3.query.sqlpp +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/overlap_bins/overlap_bins.3.query.sqlpp @@ -22,6 +22,6 @@ **/ { 'timebins':`overlap-bins`(interval(time('17:23:37'),time('18:30:21')),time('00:00:00'),`day-time-duration`('PT30M')), - 'datebins':`overlap-bins`(interval(date('1984-03-17'),date('2013-08-22')),date('1990-01-01'),`year-month-duration`('P20Y')), + 'datebins':`overlap-bins`(interval(date('1984-03-17'),date('2013-08-22')),date('1990-01-01'),`year-month-duration`('P10Y')), 'datetimebins':`overlap-bins`(interval(datetime('1800-01-01T23:59:48.938'),datetime('2015-07-26T13:28:30.218')),datetime('1900-01-01T00:00:00.000'), `year-month-duration`('P100Y'))}; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/d4cbcb2f/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/overlap_bins/overlap_bins.1.adm -- diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/overlap_bins/overlap_bins.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/overlap_bins/overlap_bins.1.adm index 493a1ca..14f6aae 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/overlap_bins/overlap_bins.1.adm +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/overlap_bins/overlap_bins.1.adm @@ -1 +1 @@ -{ "timebins": [ interval(time("17:00:00.000Z"), time("17:30:00.000Z")), interval(time("17:30:00.000Z"), time("18:00:00.000Z")), interval(time("18:00:00.000Z"), time("18:30:00.000Z")), interval(time("18:30:00.000Z"), time("19:00:00.000Z")) ], "datebins": [ interval(date("1970-01-01"), date("1990-01-01")), int
[27/50] [abbrv] asterixdb git commit: Updated optimizer test for new range forward connector.
Updated optimizer test for new range forward connector. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/1fae6acc Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/1fae6acc Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/1fae6acc Branch: refs/heads/ecarm002/interval_join_merge Commit: 1fae6acc65a6711d0fff10693fad62ef39d4d431 Parents: a972951 Author: Preston Carman Authored: Thu Aug 25 15:38:25 2016 -0700 Committer: Preston Carman Committed: Thu Aug 25 15:38:25 2016 -0700 -- .../sort-hint-on-closed-numeric-desc.plan | 16 +--- .../sort-hint-on-closed-numeric.plan| 16 +--- .../sort-hint-on-closed-string-desc.plan| 10 ++ .../range-connector/sort-hint-on-closed-string.plan | 8 +--- 4 files changed, 29 insertions(+), 21 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1fae6acc/asterixdb/asterix-app/src/test/resources/optimizerts/results/range-connector/sort-hint-on-closed-numeric-desc.plan -- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/range-connector/sort-hint-on-closed-numeric-desc.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/range-connector/sort-hint-on-closed-numeric-desc.plan index a13a9f3..2ac6e96 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/range-connector/sort-hint-on-closed-numeric-desc.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/range-connector/sort-hint-on-closed-numeric-desc.plan @@ -1,12 +1,14 @@ -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- RANGE_PARTITION_MERGE_EXCHANGE [$$4(DESC)] PROJECT |PARTITIONED| --- STABLE_SORT [$$4(DESC)] |PARTITIONED| + -- RANGE_PARTITION_MERGE_EXCHANGE [$$4(DESC)] PROJECT RangeId(0) |PARTITIONED| +-- RANGE_FORWARD RangeId(0) |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| --- ASSIGN |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| --- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| +-- STABLE_SORT [$$4(DESC)] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| +-- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| \ No newline at end of file + -- DATASOURCE_SCAN |PARTITIONED| +-- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| \ No newline at end of file http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1fae6acc/asterixdb/asterix-app/src/test/resources/optimizerts/results/range-connector/sort-hint-on-closed-numeric.plan -- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/range-connector/sort-hint-on-closed-numeric.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/range-connector/sort-hint-on-closed-numeric.plan index 448d887..4b8bf86 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/range-connector/sort-hint-on-closed-numeric.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/range-connector/sort-hint-on-closed-numeric.plan @@ -1,12 +1,14 @@ -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- RANGE_PARTITION_MERGE_EXCHANGE [$$4(ASC)] PROJECT |PARTITIONED| --- STABLE_SORT [$$4(ASC)] |PARTITIONED| + -- RANGE_PARTITION_MERGE_EXCHANGE [$$4(ASC)] PROJECT RangeId(0) |PARTITIONED| +-- RANGE_FORWARD RangeId(0) |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| --- ASSIGN |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| --- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| +-- STABLE_SORT [$$4(ASC)] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| +-- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| \ No newline at end of file + -- DATASOURCE_SCAN |PARTITIONED| +-- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| \ No newline at end of file http://git
[05/50] [abbrv] asterixdb git commit: added more to the interval hint
added more to the interval hint Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/fd84e345 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/fd84e345 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/fd84e345 Branch: refs/heads/ecarm002/interval_join_merge Commit: fd84e345ec29f9b85f32132eef1f6e7f98941866 Parents: 0f533e8 Author: Preston Carman Authored: Wed Jul 6 18:15:43 2016 -0700 Committer: Preston Carman Committed: Wed Jul 6 18:15:43 2016 -0700 -- .../IntervalPartitionJoinPOperator.java | 20 +- .../rules/IntervalSplitPartitioningRule.java| 1 - .../asterix/optimizer/rules/util/JoinUtils.java | 21 +- .../interval_overlapping.11.query.aql | 2 +- .../interval_overlapping.12.query.aql | 2 +- .../IntervalJoinExpressionAnnotation.java | 65 +- ...econdaryIndexSearchExpressionAnnotation.java | 15 +- .../asterix-lang-aql/src/main/javacc/AQL.jj | 4 +- .../IntervalPartitionJoin.java | 649 --- ...IntervalPartitionJoinOperatorDescriptor.java | 16 +- .../IntervalPartitionJoiner.java| 649 +++ .../IntervalPartitionUtil.java | 26 +- .../AbstractExpressionAnnotation.java | 35 + .../ExpressionAnnotationNoCopyImpl.java | 14 +- .../IndexedNLJoinExpressionAnnotation.java | 14 +- 15 files changed, 788 insertions(+), 745 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fd84e345/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java index 414d0b4..1eff2aa 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalPartitionJoinPOperator.java @@ -33,18 +33,18 @@ import org.apache.hyracks.dataflow.common.data.partition.range.IRangeMap; public class IntervalPartitionJoinPOperator extends AbstractIntervalJoinPOperator { private final int memSizeInFrames; -private final int probeTupleCount; -private final int probeMaxDuration; -private final int buildTupleCount; -private final int buildMaxDuration; +private final long probeTupleCount; +private final long probeMaxDuration; +private final long buildTupleCount; +private final long buildMaxDuration; private final int avgTuplesInFrame; private static final Logger LOGGER = Logger.getLogger(IntervalPartitionJoinPOperator.class.getName()); public IntervalPartitionJoinPOperator(JoinKind kind, JoinPartitioningType partitioningType, List sideLeftOfEqualities, List sideRightOfEqualities, -int memSizeInFrames, int buildTupleCount, int probeTupleCount, int buildMaxDuration, int probeMaxDuration, -int avgTuplesInFrame, IIntervalMergeJoinCheckerFactory mjcf, IRangeMap rangeMap) { +int memSizeInFrames, long buildTupleCount, long probeTupleCount, long buildMaxDuration, +long probeMaxDuration, int avgTuplesInFrame, IIntervalMergeJoinCheckerFactory mjcf, IRangeMap rangeMap) { super(kind, partitioningType, sideLeftOfEqualities, sideRightOfEqualities, mjcf, rangeMap); this.memSizeInFrames = memSizeInFrames; this.buildTupleCount = buildTupleCount; @@ -62,19 +62,19 @@ public class IntervalPartitionJoinPOperator extends AbstractIntervalJoinPOperato + "."); } -public int getProbeTupleCount() { +public long getProbeTupleCount() { return probeTupleCount; } -public int getProbeMaxDuration() { +public long getProbeMaxDuration() { return probeMaxDuration; } -public int getBuildTupleCount() { +public long getBuildTupleCount() { return buildTupleCount; } -public int getBuildMaxDuration() { +public long getBuildMaxDuration() { return buildMaxDuration; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fd84e345/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntervalSplitPartitioningRule.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntervalSplitPartitioningRule.java b/asterixdb/asterix-algebra
[50/50] [abbrv] asterixdb git commit: merge clean up
merge clean up Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/faa3bb45 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/faa3bb45 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/faa3bb45 Branch: refs/heads/ecarm002/interval_join_merge Commit: faa3bb457362215393e97e44c69b05109950f33a Parents: 9baab02 Author: Preston Carman Authored: Mon Oct 17 12:53:38 2016 -0700 Committer: Preston Carman Committed: Mon Oct 17 12:53:38 2016 -0700 -- .../logical/visitors/FDsAndEquivClassesVisitor.java | 12 ++-- .../logical/visitors/LogicalPropertiesVisitor.java | 8 .../logical/visitors/SubstituteVariableVisitor.java | 10 -- .../prettyprint/LogicalOperatorPrettyPrintVisitor.java | 3 +-- hyracks-fullstack/algebricks/algebricks-data/pom.xml| 5 - .../algebricks/algebricks-rewriter/pom.xml | 12 +--- .../hyracks-examples/hyracks-integration-tests/pom.xml | 8 +++- 7 files changed, 23 insertions(+), 35 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/faa3bb45/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java index 2bb43c9..0eaf1b3 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java @@ -405,12 +405,6 @@ public class FDsAndEquivClassesVisitor implements ILogicalOperatorVisitorhttp://git-wip-us.apache.org/repos/asf/asterixdb/blob/faa3bb45/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java index f7113c0..4863917 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java @@ -47,7 +47,6 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.LimitOperato import org.apache.hyracks.algebricks.core.algebra.operators.logical.MaterializeOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.NestedTupleSourceOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.OrderOperator; -import org.apache.hyracks.algebricks.core.algebra.operators.logical.PartitioningSplitOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.RangeForwardOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.ReplicateOperator; @@ -176,13 +175,6 @@ public class LogicalPropertiesVisitor implements ILogicalOperatorVisitorhttp://git-wip-us.apache.org/repos/asf/asterixdb/blob/faa3bb45/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java -- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java index 5d6a7b3..14388aa 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java +++ b/hyracks-fulls
[04/50] [abbrv] asterixdb git commit: working mega overlapping plan.
working mega overlapping plan. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/0f533e8b Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/0f533e8b Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/0f533e8b Branch: refs/heads/ecarm002/interval_join_merge Commit: 0f533e8bbbac7cf633d87013d71370114970c959 Parents: aea7fe8 Author: Preston Carman Authored: Tue Jul 5 17:56:26 2016 -0700 Committer: Preston Carman Committed: Tue Jul 5 17:56:26 2016 -0700 -- .../IntervalLocalRangeSplitterOperator.java | 2 +- .../IntervalLocalRangeOperatorDescriptor.java | 13 +- .../IntervalLocalRangeSplitterPOperator.java| 38 ++-- .../asterix/optimizer/base/RuleCollections.java | 1 + .../rules/IntervalSplitPartitioningRule.java| 201 --- .../physical/AbstractExchangePOperator.java | 1 + .../physical/OneToOneExchangePOperator.java | 5 +- .../algebricks/core/jobgen/impl/JobBuilder.java | 28 +-- 8 files changed, 173 insertions(+), 116 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0f533e8b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/IntervalLocalRangeSplitterOperator.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/IntervalLocalRangeSplitterOperator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/IntervalLocalRangeSplitterOperator.java index 9ae9f7d..181e0fa 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/IntervalLocalRangeSplitterOperator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/IntervalLocalRangeSplitterOperator.java @@ -54,7 +54,7 @@ public class IntervalLocalRangeSplitterOperator extends AbstractExtensibleLogica @Override public String toString() { -return "IntervalLocalRangeSplitterOperator"; +return "IntervalLocalRangeSplitterOperator " + joinKeyLogicalVars; } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0f533e8b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalLocalRangeOperatorDescriptor.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalLocalRangeOperatorDescriptor.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalLocalRangeOperatorDescriptor.java index 392bf43..ca44f78 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalLocalRangeOperatorDescriptor.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalLocalRangeOperatorDescriptor.java @@ -45,20 +45,21 @@ public class IntervalLocalRangeOperatorDescriptor extends AbstractOperatorDescri private static final long serialVersionUID = 1L; private static final int PARTITION_ACTIVITY_ID = 0; +private static final int OUTPUT_ARITY = 3; + private static final int INPUT_STARTS = 0; private static final int INPUT_COVERS = 2; private static final int INPUT_ENDS = 1; -//private static final int INPUT_STARTS = 0; -//private static final int INPUT_COVERS = 0; -//private static final int INPUT_ENDS = 0; - private final int key; private final IRangeMap rangeMap; public IntervalLocalRangeOperatorDescriptor(IOperatorDescriptorRegistry spec, int[] keys, RecordDescriptor recordDescriptor, IRangeMap rangeMap) { -super(spec, 1, 3); +super(spec, 1, OUTPUT_ARITY); +for (int i = 0; i < outputArity; i++) { +recordDescriptors[i] = recordDescriptor; +} key = keys[0]; this.rangeMap = rangeMap; } @@ -105,7 +106,7 @@ public class IntervalLocalRangeOperatorDescriptor extends AbstractOperatorDescri @Override public void flush() throws HyracksDataException { for (int i = 0; i < getOutputArity(); i++) { -resultAppender[i].flush(writers[i]); +FrameUtils.flushFrame(resultAppender[i].getBuffer(), writers[i]); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0f533e8b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/IntervalLocalRangeSplitterPOperator.java -- diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra
[08/50] [abbrv] asterixdb git commit: merge with master
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1f7ac985/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1f7ac985/asterixdb/asterix-app/src/test/resources/logging.properties -- diff --cc asterixdb/asterix-app/src/test/resources/logging.properties index d07819d,5b5e3b6..baf225c --- a/asterixdb/asterix-app/src/test/resources/logging.properties +++ b/asterixdb/asterix-app/src/test/resources/logging.properties @@@ -16,18 -16,18 +16,18 @@@ # specific language governing permissions and limitations # under the License. - # Default Logging Configuration File + # Default Logging Configuration File # # You can use a different file by specifying a filename -# with the java.util.logging.config.file system property. +# with the java.util.logging.config.file system property. # For example java -Djava.util.logging.config.file=myfile - # Global properties + # Global properties -# "handlers" specifies a comma separated list of log Handler +# "handlers" specifies a comma separated list of log Handler # classes. These handlers will be installed during VM startup. # Note that these classes must be on the system classpath. # By default we only configure a ConsoleHandler, which will only http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1f7ac985/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1f7ac985/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1f7ac985/asterixdb/asterix-om/pom.xml -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1f7ac985/asterixdb/pom.xml -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1f7ac985/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/IPartitioningProperty.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1f7ac985/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/OrderedPartitionedProperty.java -- diff --cc hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/OrderedPartitionedProperty.java index c90aff9,23c8273..c1dcd97 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/OrderedPartitionedProperty.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/OrderedPartitionedProperty.java @@@ -77,9 -59,11 +77,11 @@@ public class OrderedPartitionedPropert } @Override - public void normalize(Map equivalenceClasses, List fds) { - orderColumns = PropertiesUtil.replaceOrderColumnsByEqClasses(orderColumns, equivalenceClasses); - orderColumns = PropertiesUtil.applyFDsToOrderColumns(orderColumns, fds); + public IPartitioningProperty normalize(Map equivalenceClasses, + List fds) { + List columns = PropertiesUtil.replaceOrderColumnsByEqClasses(orderColumns, equivalenceClasses); + columns = PropertiesUtil.applyFDsToOrderColumns(columns, fds); -return new OrderedPartitionedProperty(columns, domain); ++return new OrderedPartitionedProperty(columns, domain, rangeMap); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1f7ac985/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/PhysicalOptimizationConfig.java -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1f7ac985/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/util/JoinUtils.java -- diff --cc hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/util/JoinUtils.java index 45f1b76,56ea55e..c4d5638 --- a/hyracks-fullstack/alge
[17/50] [abbrv] asterixdb git commit: More clean up form interval prep.
More clean up form interval prep. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/5b102cca Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/5b102cca Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/5b102cca Branch: refs/heads/ecarm002/interval_join_merge Commit: 5b102cca23ad96a91df22d5490ea371ba2a14ac4 Parents: 9986726 Author: Preston Carman Authored: Mon Jul 18 16:52:02 2016 -0700 Committer: Preston Carman Committed: Mon Jul 18 16:52:02 2016 -0700 -- ...AbstractIntervalInverseMergeJoinChecker.java | 15 ++--- .../joins/AbstractIntervalMergeJoinChecker.java | 63 +++- .../joins/AfterIntervalMergeJoinChecker.java| 17 ++ .../joins/BeforeIntervalMergeJoinChecker.java | 17 ++ .../CoveredByIntervalMergeJoinChecker.java | 4 +- .../joins/CoversIntervalMergeJoinChecker.java | 4 +- .../joins/EndedByIntervalMergeJoinChecker.java | 4 +- .../joins/EndsIntervalMergeJoinChecker.java | 7 +-- .../joins/EqualsIntervalMergeJoinChecker.java | 6 +- .../joins/IIntervalMergeJoinChecker.java| 4 +- .../joins/MeetsIntervalMergeJoinChecker.java| 4 +- .../joins/MetByIntervalMergeJoinChecker.java| 17 ++ .../OverlappedByIntervalMergeJoinChecker.java | 4 +- .../OverlappingIntervalMergeJoinChecker.java| 3 +- .../joins/OverlapsIntervalMergeJoinChecker.java | 4 +- .../StartedByIntervalMergeJoinChecker.java | 4 +- .../joins/StartsIntervalMergeJoinChecker.java | 34 +-- .../intervalindex/IntervalIndexJoiner.java | 8 +-- .../IntervalPartitionUtil.java | 5 +- .../VPartitionDeletableTupleBufferManager.java | 10 ++-- 20 files changed, 93 insertions(+), 141 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/5b102cca/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalInverseMergeJoinChecker.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalInverseMergeJoinChecker.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalInverseMergeJoinChecker.java index 9f9f75d..4343386 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalInverseMergeJoinChecker.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalInverseMergeJoinChecker.java @@ -18,7 +18,6 @@ */ package org.apache.asterix.runtime.operators.joins; -import org.apache.asterix.common.exceptions.AsterixException; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.dataflow.std.buffermanager.ITupleAccessor; @@ -33,15 +32,11 @@ public abstract class AbstractIntervalInverseMergeJoinChecker extends AbstractIn @Override public boolean checkToSaveInMemory(ITupleAccessor accessorLeft, ITupleAccessor accessorRight) throws HyracksDataException { -try { -IntervalJoinUtil.getIntervalPointable(accessorLeft, idLeft, tvp, ipLeft); -IntervalJoinUtil.getIntervalPointable(accessorRight, idRight, tvp, ipRight); -ipLeft.getStart(startLeft); -ipRight.getEnd(endRight); -return ch.compare(ipLeft.getTypeTag(), ipRight.getTypeTag(), startLeft, endRight) <= 0; -} catch (AsterixException e) { -throw new HyracksDataException(e); -} +IntervalJoinUtil.getIntervalPointable(accessorLeft, idLeft, tvp, ipLeft); +IntervalJoinUtil.getIntervalPointable(accessorRight, idRight, tvp, ipRight); +ipLeft.getStart(startLeft); +ipRight.getEnd(endRight); +return ch.compare(ipLeft.getTypeTag(), ipRight.getTypeTag(), startLeft, endRight) <= 0; } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/5b102cca/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java index cf0bf6a..b461799 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/AbstractIntervalMergeJoinChecker.java @@ -18,7 +18,6 @@ */ package org.apac
[35/50] [abbrv] asterixdb git commit: snapshot - reuse frames in deletable partition manager.
snapshot - reuse frames in deletable partition manager. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/6c312141 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/6c312141 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/6c312141 Branch: refs/heads/ecarm002/interval_join_merge Commit: 6c3121413762f3556d884e16642cefa654e42868 Parents: f186da9 Author: Preston Carman Authored: Tue Sep 13 19:37:32 2016 -0700 Committer: Preston Carman Committed: Tue Sep 13 19:37:32 2016 -0700 -- .../operators/joins/IntervalJoinUtil.java | 1 + .../intervalindex/IntervalIndexJoiner.java | 70 .../InMemoryIntervalPartitionJoin.java | 5 +- .../std/buffermanager/IFrameBufferManager.java | 24 ++- ...IPartitionedDeletableTupleBufferManager.java | 2 + .../VPartitionDeletableTupleBufferManager.java | 50 -- .../VPartitionTupleBufferManager.java | 57 ++-- .../VariableFrameMemoryManager.java | 23 +++ .../hyracks/dataflow/std/join/MergeJoiner.java | 53 --- .../dataflow/std/join/RunFileStream.java| 1 + .../sort/util/DeletableFrameTupleAppender.java | 26 +++- .../IAppendDeletableFrameTupleAccessor.java | 3 + 12 files changed, 249 insertions(+), 66 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/6c312141/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/IntervalJoinUtil.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/IntervalJoinUtil.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/IntervalJoinUtil.java index 3e380c7..7c37f08 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/IntervalJoinUtil.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/IntervalJoinUtil.java @@ -48,6 +48,7 @@ public class IntervalJoinUtil { } public static long getIntervalStart(IFrameTupleAccessor accessor, int tupleId, int fieldId) { +int length = accessor.getTupleLength(tupleId); int start = accessor.getTupleStartOffset(tupleId) + accessor.getFieldSlotsLength() + accessor.getFieldStartOffset(tupleId, fieldId) + 1; long intervalStart = AIntervalSerializerDeserializer.getIntervalStart(accessor.getBuffer().array(), start); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/6c312141/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java index 965411b..d3aaa65 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java @@ -73,7 +73,6 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { private long joinComparisonCount = 0; private long joinResultCount = 0; -private long spillCount = 0; private long leftSpillCount = 0; private long rightSpillCount = 0; private long[] spillFileCount = { 0, 0 }; @@ -104,16 +103,21 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { throw new HyracksDataException( "IntervalIndexJoiner does not have enough memory (needs > 4, got " + memorySize + ")."); } +//bufferManager = new VPartitionDeletableTupleBufferManager(ctx, +//VPartitionDeletableTupleBufferManager.NO_CONSTRAIN, JOIN_PARTITIONS, +//(memorySize - 4) * ctx.getInitialFrameSize(), recordDescriptors); bufferManager = new VPartitionDeletableTupleBufferManager(ctx, VPartitionDeletableTupleBufferManager.NO_CONSTRAIN, JOIN_PARTITIONS, -(memorySize - 4) * ctx.getInitialFrameSize(), recordDescriptors); +memorySize * ctx.getInitialFrameSize(), recordDescriptors); memoryAccessor = new ITuplePointerAccessor[JOIN_PARTITIONS]; memoryAccessor[LEFT_PARTITION] = bufferManager.getTuplePointerAccessor(leftRd); memoryAccessor[RIGHT_PARTITION] = bufferManager.getTuplePointerAccessor(rightRd); activeM
[15/50] [abbrv] asterixdb git commit: merge master with all interval prep clean up items.
merge master with all interval prep clean up items. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/c44a7d9b Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/c44a7d9b Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/c44a7d9b Branch: refs/heads/ecarm002/interval_join_merge Commit: c44a7d9b67e58b9cae4ab38634a944e0940bb1b6 Parents: 88cbdc4 bce1888 Author: Preston Carman Authored: Sat Jul 16 22:40:39 2016 -0700 Committer: Preston Carman Committed: Sat Jul 16 22:40:39 2016 -0700 -- .../AqlPlusExpressionToPlanTranslator.java | 77 ++- .../LangExpressionToPlanTranslator.java | 132 ++ .../asterix-algebra/src/main/javacc/AQLPlus.jj | 47 +-- .../optimizerts/queries/subquery/exists.sqlpp | 73 ++ .../queries/subquery/not_exists.sqlpp | 73 ++ .../optimizerts/results/subquery/exists.plan| 74 ++ .../results/subquery/not_exists.plan| 74 ++ .../parserts/results_parser_sqlpp/constant.ast | 2 +- .../list/exists/exists.3.query.sqlpp| 20 +++ .../subquery/exists/exists.1.ddl.sqlpp | 55 .../subquery/exists/exists.2.update.sqlpp | 18 +++ .../subquery/exists/exists.3.query.sqlpp| 40 ++ .../subquery/not_exists/not_exists.1.ddl.sqlpp | 55 .../not_exists/not_exists.2.update.sqlpp| 18 +++ .../not_exists/not_exists.3.query.sqlpp | 40 ++ .../relational_division.1.ddl.sqlpp | 51 +++ .../relational_division.2.update.sqlpp | 24 .../relational_division.3.query.sqlpp | 35 + .../relational_division2.1.ddl.sqlpp| 51 +++ .../relational_division2.2.update.sqlpp | 24 .../relational_division2.3.query.sqlpp | 41 ++ .../relational_division3.1.ddl.sqlpp| 51 +++ .../relational_division3.2.update.sqlpp | 24 .../relational_division3.3.query.sqlpp | 38 ++ .../runtimets/results/list/exists/exists.1.adm | 1 + .../results/subquery/exists/exists.1.adm| 21 +++ .../subquery/not_exists/not_exists.1.adm| 18 +++ .../relational_division.1.adm | 74 ++ .../binary/subbinary/subbinary_01.3.ast | 6 +- .../custord/customer_q_04/customer_q_04.3.ast | 2 +- .../custord/customer_q_05/customer_q_05.3.ast | 2 +- .../list/listify_03/listify_03.3.ast| 4 +- .../numeric/abs4/abs4.3.ast | 2 +- .../numeric/add_double/add_double.1.ast | 2 +- .../numeric/ceiling4/ceiling4.3.ast | 2 +- .../numeric/floor4/floor4.3.ast | 2 +- .../round-half-to-even24.3.ast | 2 +- .../round-half-to-even5.3.ast | 2 +- .../numeric/round4/round4.3.ast | 2 +- .../unary-minus_double_02.3.ast | 8 +- .../unary-minus_float_02.3.ast | 8 +- .../unary-minus_int_02/unary-minus_int_02.3.ast | 8 +- .../unary-minus_null/unary-minus_null.1.ast | 4 +- .../query-issue134/query-issue134.3.ast | 2 +- .../query-issue442/query-issue442.1.ast | 2 +- .../query-issue55/query-issue55.3.ast | 4 +- .../quantifiers/everysat_01/everysat_01.3.ast | 6 +- .../quantifiers/somesat_01/somesat_01.3.ast | 8 +- .../cell-aggregation-with-filtering.3.ast | 2 +- .../spatial/line_accessor/line_accessor.3.ast | 4 +- .../rectangle-intersect-rectangle.3.ast | 2 +- .../string/substr01/substr01.3.ast | 2 +- .../string/substring2-4/substring2-4.3.ast | 2 +- .../query-issue218-2/query-issue218-2.3.ast | 4 +- .../resources/runtimets/testsuite_sqlpp.xml | 30 .../aql/visitor/AQLToSQLPPPrintVisitor.java | 6 +- .../asterix-lang-aql/src/main/javacc/AQL.jj | 44 -- .../lang/common/expression/OperatorExpr.java| 4 +- .../lang/common/expression/UnaryExpr.java | 31 +++-- .../lang/common/struct/UnaryExprType.java | 44 ++ .../CloneAndSubstituteVariablesVisitor.java | 2 +- .../lang/common/visitor/FormatPrintVisitor.java | 4 +- .../lang/common/visitor/QueryPrintVisitor.java | 4 +- .../visitor/OperatorExpressionVisitor.java | 2 +- .../lang/sqlpp/visitor/DeepCopyVisitor.java | 2 +- ...SqlppCloneAndSubstituteVariablesVisitor.java | 3 + .../src/main/javacc/SQLPP.html | 131 +- .../asterix-lang-sqlpp/src/main/javacc/SQLPP.jj | 98 - .../nonvisitor/AIntervalPointable.java | 24 ++-- .../AbstractComparisonEvaluator.java| 2 +- .../comparisons/ComparisonHelper.java | 45 +++--- .../AbstractIntervalLogicFuncDescriptor.java|
[37/50] [abbrv] asterixdb git commit: Snapshot after workign frame tuple appender.
Snapshot after workign frame tuple appender. Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/23eab43d Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/23eab43d Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/23eab43d Branch: refs/heads/ecarm002/interval_join_merge Commit: 23eab43dda9860030c2065343208a05dcc437486 Parents: fd514a0 Author: Preston Carman Authored: Sun Sep 25 09:37:33 2016 -0700 Committer: Preston Carman Committed: Sun Sep 25 09:37:33 2016 -0700 -- .../intervalindex/IntervalIndexJoiner.java | 77 +++- ...IntervalPartitionJoinOperatorDescriptor.java | 2 + .../IntervalPartitionJoiner.java| 15 +++- .../sort/util/DeletableFrameTupleAppender.java | 1 + .../util/DeletableFrameTupleAppenderTest.java | 50 + 5 files changed, 93 insertions(+), 52 deletions(-) -- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/23eab43d/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java -- diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java index d3aaa65..a4ad666 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/intervalindex/IntervalIndexJoiner.java @@ -19,7 +19,6 @@ package org.apache.asterix.runtime.operators.joins.intervalindex; import java.util.Comparator; -import java.util.LinkedList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; @@ -62,7 +61,7 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { private final int[] streamIndex; private final RunFileStream[] runFileStream; -private final LinkedList buffer = new LinkedList<>(); +//private final LinkedList buffer = new LinkedList<>(); private final IIntervalMergeJoinChecker imjc; @@ -124,6 +123,8 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { runFileStream[LEFT_PARTITION] = new RunFileStream(ctx, "left", status.branch[LEFT_PARTITION]); runFileStream[RIGHT_PARTITION] = new RunFileStream(ctx, "right", status.branch[RIGHT_PARTITION]); +LOGGER.setLevel(Level.FINE); +System.out.println("IntervalIndexJoiner: Logging level is: " + LOGGER.getLevel()); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("IntervalIndexJoiner has started partition " + partition + " with " + memorySize + " frames of memory."); @@ -246,9 +247,11 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { long leftStart = IntervalJoinUtil.getIntervalStart(inputAccessor[LEFT_PARTITION], leftKey); long rightStart = IntervalJoinUtil.getIntervalStart(inputAccessor[RIGHT_PARTITION], rightKey); if (leftStart < rightStart) { +// Left stream has next tuple, check if right active must be updated first. return activeManager[RIGHT_PARTITION].hasRecords() && activeManager[RIGHT_PARTITION].getTopPoint() < leftStart; } else { +// Right stream has next tuple, check if left active must be update first. return !(activeManager[LEFT_PARTITION].hasRecords() && activeManager[LEFT_PARTITION].getTopPoint() < rightStart); } @@ -334,7 +337,9 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { // Add to active, end point index and buffer. TuplePointer tp = new TuplePointer(); if (activeManager[LEFT_PARTITION].addTuple(inputAccessor[LEFT_PARTITION], tp)) { -buffer.add(tp); + processTupleJoin(activeManager[RIGHT_PARTITION].getActiveList(), memoryAccessor[RIGHT_PARTITION], +inputAccessor[LEFT_PARTITION], true, writer); +//buffer.add(tp); } else { // Spill case freezeAndSpill(); @@ -348,10 +353,10 @@ public class IntervalIndexJoiner extends AbstractMergeJoiner { } while (loadLeftTuple().isLoaded() && loadRightTuple().isLoaded() && !checkToProcessRightTuple()); // Add Results -if (!buffer.isEmpty()) { -processActiveJoin(activeManager[RIGHT_PARTITION].getActiveList(), memoryAccessor[RIGHT_PARTITION], buffer, -