asterixdb git commit: Adding functions to return unit-time from date, datetime, and time.

2016-06-09 Thread prestonc
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.

2016-06-21 Thread prestonc
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.

2016-07-14 Thread prestonc
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.

2016-07-14 Thread prestonc
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.

2016-07-14 Thread prestonc
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.

2016-07-16 Thread prestonc
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.

2016-07-16 Thread prestonc
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.

2016-09-08 Thread prestonc
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.

2016-09-09 Thread prestonc
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.

2016-10-03 Thread prestonc
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.

2016-10-03 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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.

2016-10-17 Thread prestonc
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,
-