Updated to Hyracks 0.2.12-SNAPSHOT.

Project: http://git-wip-us.apache.org/repos/asf/vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/vxquery/commit/ef6b20cb
Tree: http://git-wip-us.apache.org/repos/asf/vxquery/tree/ef6b20cb
Diff: http://git-wip-us.apache.org/repos/asf/vxquery/diff/ef6b20cb

Branch: refs/heads/site
Commit: ef6b20cb825b921851cf4ca2f1b53a3fe6b384d5
Parents: f0582d6
Author: Preston Carman <[email protected]>
Authored: Wed Jun 4 19:04:18 2014 -0700
Committer: Preston Carman <[email protected]>
Committed: Wed Jun 4 19:04:18 2014 -0700

----------------------------------------------------------------------
 pom.xml                                         |  2 +-
 ...AbstractMaxMinAggregateEvaluatorFactory.java |  5 ++++
 .../AvgGlobalAggregateEvaluatorFactory.java     |  5 ++++
 .../AvgLocalAggregateEvaluatorFactory.java      |  5 ++++
 .../FnAvgAggregateEvaluatorFactory.java         |  5 ++++
 .../FnCountAggregateEvaluatorFactory.java       |  5 ++++
 .../FnSumAggregateEvaluatorFactory.java         |  5 ++++
 .../SequenceAggregateEvaluatorFactory.java      |  7 ++++-
 .../apache/vxquery/types/BuiltinAtomicType.java |  1 +
 .../query/VXQueryNullableTypeComputer.java      | 29 ++++++++++++++++++++
 .../xmlquery/query/XMLQueryCompiler.java        |  3 +-
 .../translator/VXQueryPositionWriter.java       | 19 +++++++++++++
 .../xmlquery/translator/XMLQueryTranslator.java | 11 ++++----
 13 files changed, 93 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b228cdf..752a633 100644
--- a/pom.xml
+++ b/pom.xml
@@ -594,7 +594,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-    <hyracks.version>0.2.11</hyracks.version>
+    <hyracks.version>0.2.12-SNAPSHOT</hyracks.version>
   </properties>
 
   <modules>

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AbstractMaxMinAggregateEvaluatorFactory.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AbstractMaxMinAggregateEvaluatorFactory.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AbstractMaxMinAggregateEvaluatorFactory.java
index b2f300f..4943c9b 100644
--- 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AbstractMaxMinAggregateEvaluatorFactory.java
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AbstractMaxMinAggregateEvaluatorFactory.java
@@ -62,6 +62,11 @@ public abstract class 
AbstractMaxMinAggregateEvaluatorFactory extends
             }
 
             @Override
+            public void finishPartial(IPointable result) throws 
AlgebricksException {
+                finish(result);
+            }
+
+            @Override
             public void finish(IPointable result) throws AlgebricksException {
                 if (count == 0) {
                     XDMConstants.setEmptySequence(result);

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AvgGlobalAggregateEvaluatorFactory.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AvgGlobalAggregateEvaluatorFactory.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AvgGlobalAggregateEvaluatorFactory.java
index 61ae69e..f674997 100644
--- 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AvgGlobalAggregateEvaluatorFactory.java
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AvgGlobalAggregateEvaluatorFactory.java
@@ -78,6 +78,11 @@ public class AvgGlobalAggregateEvaluatorFactory extends 
AbstractTaggedValueArgum
             }
 
             @Override
+            public void finishPartial(IPointable result) throws 
AlgebricksException {
+                finish(result);
+            }
+
+            @Override
             public void finish(IPointable result) throws AlgebricksException {
                 tvpCount.getValue(longp);
                 if (longp.getLong() == 0) {

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AvgLocalAggregateEvaluatorFactory.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AvgLocalAggregateEvaluatorFactory.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AvgLocalAggregateEvaluatorFactory.java
index 6763a67..baebb29 100644
--- 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AvgLocalAggregateEvaluatorFactory.java
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AvgLocalAggregateEvaluatorFactory.java
@@ -71,6 +71,11 @@ public class AvgLocalAggregateEvaluatorFactory extends 
AbstractTaggedValueArgume
             }
 
             @Override
+            public void finishPartial(IPointable result) throws 
AlgebricksException {
+                finish(result);
+            }
+
+            @Override
             public void finish(IPointable result) throws AlgebricksException {
                 if (count == 0) {
                     XDMConstants.setEmptySequence(result);

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnAvgAggregateEvaluatorFactory.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnAvgAggregateEvaluatorFactory.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnAvgAggregateEvaluatorFactory.java
index ecde53b..c3fc544 100644
--- 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnAvgAggregateEvaluatorFactory.java
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnAvgAggregateEvaluatorFactory.java
@@ -64,6 +64,11 @@ public class FnAvgAggregateEvaluatorFactory extends 
AbstractTaggedValueArgumentA
             }
 
             @Override
+            public void finishPartial(IPointable result) throws 
AlgebricksException {
+                finish(result);
+            }
+
+            @Override
             public void finish(IPointable result) throws AlgebricksException {
                 if (count == 0) {
                     XDMConstants.setEmptySequence(result);

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnCountAggregateEvaluatorFactory.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnCountAggregateEvaluatorFactory.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnCountAggregateEvaluatorFactory.java
index f191dda..fbde38c 100644
--- 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnCountAggregateEvaluatorFactory.java
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnCountAggregateEvaluatorFactory.java
@@ -51,6 +51,11 @@ public class FnCountAggregateEvaluatorFactory extends 
AbstractTaggedValueArgumen
             }
 
             @Override
+            public void finishPartial(IPointable result) throws 
AlgebricksException {
+                finish(result);
+            }
+
+            @Override
             public void finish(IPointable result) throws AlgebricksException {
                 try {
                     abvs.reset();

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnSumAggregateEvaluatorFactory.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnSumAggregateEvaluatorFactory.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnSumAggregateEvaluatorFactory.java
index 8a55f3c..4049709 100644
--- 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnSumAggregateEvaluatorFactory.java
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnSumAggregateEvaluatorFactory.java
@@ -65,6 +65,11 @@ public class FnSumAggregateEvaluatorFactory extends 
AbstractTaggedValueArgumentA
             }
 
             @Override
+            public void finishPartial(IPointable result) throws 
AlgebricksException {
+                finish(result);
+            }
+
+            @Override
             public void finish(IPointable result) throws AlgebricksException {
                 result.set(tvpSum);
             }

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/SequenceAggregateEvaluatorFactory.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/SequenceAggregateEvaluatorFactory.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/SequenceAggregateEvaluatorFactory.java
index 555b279..6cff90b 100644
--- 
a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/SequenceAggregateEvaluatorFactory.java
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/SequenceAggregateEvaluatorFactory.java
@@ -59,6 +59,11 @@ public class SequenceAggregateEvaluatorFactory extends 
AbstractTaggedValueArgume
             }
 
             @Override
+            public void finishPartial(IPointable result) throws 
AlgebricksException {
+                finish(result);
+            }
+
+            @Override
             public void finish(IPointable result) throws AlgebricksException {
                 if (slots.getSize() != 1) {
                     try {
@@ -70,7 +75,7 @@ public class SequenceAggregateEvaluatorFactory extends 
AbstractTaggedValueArgume
                 } else {
                     result.set(dataArea);
                 }
-           }
+            }
 
             @Override
             protected void step(TaggedValuePointable[] args) throws 
SystemException {

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/types/BuiltinAtomicType.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/types/BuiltinAtomicType.java 
b/vxquery-core/src/main/java/org/apache/vxquery/types/BuiltinAtomicType.java
index 9ca75e7..bc5ee48 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/BuiltinAtomicType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/BuiltinAtomicType.java
@@ -17,6 +17,7 @@
 package org.apache.vxquery.types;
 
 final class BuiltinAtomicType implements AtomicType {
+    private static final long serialVersionUID = 1L;
     private final int id;
     private final SchemaType baseType;
     private final DerivationProcess derivationProcess;

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryNullableTypeComputer.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryNullableTypeComputer.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryNullableTypeComputer.java
new file mode 100644
index 0000000..20b26bb
--- /dev/null
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryNullableTypeComputer.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed 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 from
+ * 
+ *     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.vxquery.xmlquery.query;
+
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import 
edu.uci.ics.hyracks.algebricks.core.algebra.expressions.INullableTypeComputer;
+
+public class VXQueryNullableTypeComputer implements INullableTypeComputer {
+
+    public static INullableTypeComputer INSTANCE = new 
VXQueryNullableTypeComputer();
+
+    @Override
+    public Object makeNullableType(Object type) throws AlgebricksException {
+        return type;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
index 2fdfbea..15443a9 100644
--- 
a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
@@ -41,7 +41,6 @@ import org.apache.vxquery.xmlquery.ast.ModuleNode;
 import org.apache.vxquery.xmlquery.translator.XMLQueryTranslator;
 
 import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
-import 
edu.uci.ics.hyracks.algebricks.common.exceptions.NotImplementedException;
 import edu.uci.ics.hyracks.algebricks.common.utils.Pair;
 import 
edu.uci.ics.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder;
 import edu.uci.ics.hyracks.algebricks.compiler.api.ICompiler;
@@ -153,7 +152,7 @@ public class XMLQueryCompiler {
         builder.setNullableTypeComputer(new INullableTypeComputer() {
             @Override
             public Object makeNullableType(Object type) throws 
AlgebricksException {
-                throw new NotImplementedException("NullableTypeComputer is not 
implented");
+                return new VXQueryNullableTypeComputer();
             }
         });
         builder.setNullWriterFactory(new VXQueryNullWriterFactory());

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/VXQueryPositionWriter.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/VXQueryPositionWriter.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/VXQueryPositionWriter.java
new file mode 100644
index 0000000..2e74a56
--- /dev/null
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/VXQueryPositionWriter.java
@@ -0,0 +1,19 @@
+package org.apache.vxquery.xmlquery.translator;
+
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+
+import org.apache.vxquery.datamodel.values.ValueTag;
+
+import edu.uci.ics.hyracks.algebricks.runtime.base.IUnnestingPositionWriter;
+
+public class VXQueryPositionWriter implements IUnnestingPositionWriter, 
Serializable {
+    private static final long serialVersionUID = 1L;
+
+    public void write(DataOutput dataOutput, int position) throws IOException {
+        dataOutput.writeByte(ValueTag.XS_INTEGER_TAG);
+        dataOutput.writeLong(position);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/vxquery/blob/ef6b20cb/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java
----------------------------------------------------------------------
diff --git 
a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java
 
b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java
index 3afb9a3..6b443b6 100644
--- 
a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java
+++ 
b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java
@@ -882,7 +882,7 @@ public class XMLQueryTranslator {
         if (qeNode.getQuant() == QuantifierType.EVERY) {
             satExpr = sfce(BuiltinFunctions.FN_NOT_1, satExpr);
         }
-        SelectOperator select = new SelectOperator(mutable(satExpr));
+        SelectOperator select = new SelectOperator(mutable(satExpr), false, 
null);
         select.getInputs().add(mutable(tCtx.op));
         tCtx.op = select;
         List<LogicalVariable> vars = new ArrayList<LogicalVariable>();
@@ -1021,7 +1021,8 @@ public class XMLQueryTranslator {
                         LogicalVariable forLVar = newLogicalVariable();
                         LogicalVariable posLVar = fvdNode.getPosVar() != null 
? newLogicalVariable() : null;
                         UnnestOperator unnest = new UnnestOperator(forLVar,
-                                mutable(ufce(BuiltinOperators.ITERATE, seq)), 
posLVar, null);
+                                mutable(ufce(BuiltinOperators.ITERATE, seq)), 
posLVar, BuiltinTypeRegistry.XS_INTEGER,
+                                new VXQueryPositionWriter());
                         SequenceType forVarType = 
SequenceType.create(AnyItemType.INSTANCE, Quantifier.QUANT_ONE);
                         if (fvdNode.getType() != null) {
                             forVarType = createSequenceType(fvdNode.getType());
@@ -1061,7 +1062,7 @@ public class XMLQueryTranslator {
                     WhereClauseNode wcNode = (WhereClauseNode) cNode;
                     ILogicalExpression condExpr = 
sfce(BuiltinFunctions.FN_BOOLEAN_1,
                             vre(translateExpression(wcNode.getCondition(), 
tCtx)));
-                    SelectOperator select = new 
SelectOperator(mutable(condExpr));
+                    SelectOperator select = new 
SelectOperator(mutable(condExpr), false, null);
                     select.getInputs().add(mutable(tCtx.op));
                     tCtx.op = select;
                     break;
@@ -1496,7 +1497,7 @@ public class XMLQueryTranslator {
                         ILogicalExpression boolTest = 
sfce(BuiltinFunctions.FN_BOOLEAN_1, vre(pLVar));
 
                         SelectOperator select = new 
SelectOperator(mutable(sfce(BuiltinOperators.IF_THEN_ELSE, tTest,
-                                posTest, boolTest)));
+                                posTest, boolTest)), false, null);
                         select.getInputs().add(mutable(tCtx.op));
                         tCtx.op = select;
                         ctxExpr = 
vre(tCtx.varScope.lookupVariable(XMLQueryCompilerConstants.DOT_VAR_NAME)
@@ -1534,7 +1535,7 @@ public class XMLQueryTranslator {
         LogicalVariable forLVar = newLogicalVariable();
         LogicalVariable posLVar = newLogicalVariable();
         UnnestOperator unnest = new UnnestOperator(forLVar, 
mutable(ufce(BuiltinOperators.ITERATE, vre(seqLVar))),
-                posLVar, null);
+                posLVar, BuiltinTypeRegistry.XS_INTEGER, new 
VXQueryPositionWriter());
         SequenceType forVarType = SequenceType.create(AnyItemType.INSTANCE, 
Quantifier.QUANT_ONE);
         XQueryVariable forVar = new 
XQueryVariable(XMLQueryCompilerConstants.DOT_VAR_NAME, forVarType, forLVar);
         tCtx.varScope.registerVariable(forVar);

Reply via email to