VXQUERY-240: Update Hyracks Dependency to version 0.3.0.
Primary changes revolve around changes to UTF8StringPointable (storage layout changed) and exception handling.
diff --git a/pom.xml b/pom.xml
index cc8884f..5f03a49 100644
--- a/pom.xml
+++ b/pom.xml
@@ -670,7 +670,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <hyracks.version>0.2.17-incubating</hyracks.version>
+ <hyracks.version>0.3.0</hyracks.version>
<apache-rat-plugin.version>0.11</apache-rat-plugin.version>
</properties>
diff --git a/vxquery-core/pom.xml b/vxquery-core/pom.xml
index 47015a9..38908d7 100644
--- a/vxquery-core/pom.xml
+++ b/vxquery-core/pom.xml
@@ -182,6 +182,11 @@
<dependency>
<groupId>org.apache.hyracks</groupId>
+ <artifactId>algebricks-rewriter</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.hyracks</groupId>
<artifactId>algebricks-data</artifactId>
</dependency>
@@ -271,50 +276,59 @@
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
+
<dependency>
<artifactId>lucene-core</artifactId>
<groupId>org.apache.lucene</groupId>
<type>jar</type>
<version>5.5.1</version>
</dependency>
+
<dependency>
<artifactId>lucene-queryparser</artifactId>
<groupId>org.apache.lucene</groupId>
<type>jar</type>
<version>5.5.1</version>
</dependency>
+
<dependency>
<artifactId>lucene-analyzers-common</artifactId>
<groupId>org.apache.lucene</groupId>
<type>jar</type>
<version>5.5.1</version>
</dependency>
+
<dependency>
<artifactId>lucene-demo</artifactId>
<groupId>org.apache.lucene</groupId>
<type>jar</type>
<version>5.5.1</version>
</dependency>
+
<dependency>
<artifactId>lucene-backward-codecs</artifactId>
<groupId>org.apache.lucene</groupId>
<type>jar</type>
<version>5.5.1</version>
</dependency>
+
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>2.7.0</version>
</dependency>
+
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.0</version>
</dependency>
+
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
</dependency>
+
</dependencies>
<reporting>
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryConstantValue.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryConstantValue.java
index e105546..92b35ba 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryConstantValue.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryConstantValue.java
@@ -17,9 +17,8 @@
package org.apache.vxquery.compiler.algebricks;
import org.apache.commons.codec.binary.Hex;
-import org.apache.vxquery.types.SequenceType;
-
import org.apache.hyracks.algebricks.core.algebra.expressions.IAlgebricksConstantValue;
+import org.apache.vxquery.types.SequenceType;
public class VXQueryConstantValue implements IAlgebricksConstantValue {
private final SequenceType type;
@@ -61,4 +60,9 @@
.append("])");
return buffer.toString();
}
+
+ @Override
+ public boolean isMissing() {
+ return false;
+ }
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryExpressionRuntimeProvider.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryExpressionRuntimeProvider.java
index 04d15e7..dcd285c 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryExpressionRuntimeProvider.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryExpressionRuntimeProvider.java
@@ -19,10 +19,6 @@
import java.util.List;
import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.vxquery.datamodel.values.XDMConstants;
-import org.apache.vxquery.exceptions.SystemException;
-import org.apache.vxquery.functions.Function;
-
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
import org.apache.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
@@ -37,15 +33,18 @@
import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluatorFactory;
-import org.apache.hyracks.algebricks.runtime.base.ICopySerializableAggregateFunctionFactory;
import org.apache.hyracks.algebricks.runtime.base.IRunningAggregateEvaluatorFactory;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.ISerializedAggregateEvaluatorFactory;
import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluatorFactory;
-import org.apache.hyracks.algebricks.runtime.evaluators.ConstantEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.evaluators.ConstantEvalFactory;
import org.apache.hyracks.algebricks.runtime.evaluators.TupleFieldEvaluatorFactory;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.primitive.BooleanPointable;
import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.vxquery.datamodel.values.XDMConstants;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.functions.Function;
public class VXQueryExpressionRuntimeProvider implements IExpressionRuntimeProvider {
@Override
@@ -53,23 +52,23 @@
IOperatorSchema[] inputSchemas, JobGenContext context) throws AlgebricksException {
switch (expr.getExpressionTag()) {
case CONSTANT:
- IAlgebricksConstantValue constantValue = (IAlgebricksConstantValue) ((ConstantExpression) expr)
+ IAlgebricksConstantValue constantValue = ((ConstantExpression) expr)
.getValue();
if (constantValue.isFalse()) {
IPointable p = (BooleanPointable) BooleanPointable.FACTORY.createPointable();
XDMConstants.setFalse(p);
- return new ConstantEvaluatorFactory(p.getByteArray());
+ return new ConstantEvalFactory(p.getByteArray());
} else if (constantValue.isNull()) {
IPointable p = (VoidPointable) VoidPointable.FACTORY.createPointable();
XDMConstants.setEmptySequence(p);
- return new ConstantEvaluatorFactory(p.getByteArray());
+ return new ConstantEvalFactory(p.getByteArray());
} else if (constantValue.isTrue()) {
IPointable p = (BooleanPointable) BooleanPointable.FACTORY.createPointable();
XDMConstants.setTrue(p);
- return new ConstantEvaluatorFactory(p.getByteArray());
+ return new ConstantEvalFactory(p.getByteArray());
}
VXQueryConstantValue cv = (VXQueryConstantValue) ((ConstantExpression) expr).getValue();
- return new ConstantEvaluatorFactory(cv.getValue());
+ return new ConstantEvalFactory(cv.getValue());
case VARIABLE:
VariableReferenceExpression vrExpr = (VariableReferenceExpression) expr;
@@ -82,7 +81,11 @@
IScalarEvaluatorFactory[] argFactories = createArgumentEvaluatorFactories(env, inputSchemas, context,
fcExpr.getArguments());
- return fn.createScalarEvaluatorFactory(argFactories);
+ try {
+ return fn.createScalarEvaluatorFactory(argFactories);
+ } catch (SystemException e) {
+ throw new AlgebricksException(e);
+ }
}
throw new UnsupportedOperationException("Cannot create runtime for " + expr.getExpressionTag());
}
@@ -106,11 +109,15 @@
IScalarEvaluatorFactory[] argFactories = createArgumentEvaluatorFactories(env, inputSchemas, context,
expr.getArguments());
- return fn.createAggregateEvaluatorFactory(argFactories);
+ try {
+ return fn.createAggregateEvaluatorFactory(argFactories);
+ } catch (SystemException e) {
+ throw new AlgebricksException(e);
+ }
}
@Override
- public ICopySerializableAggregateFunctionFactory createSerializableAggregateFunctionFactory(
+ public ISerializedAggregateEvaluatorFactory createSerializableAggregateFunctionFactory(
AggregateFunctionCallExpression expr, IVariableTypeEnvironment env, IOperatorSchema[] inputSchemas,
JobGenContext context) throws AlgebricksException {
return null;
@@ -131,6 +138,10 @@
IScalarEvaluatorFactory[] argFactories = createArgumentEvaluatorFactories(env, inputSchemas, context,
expr.getArguments());
- return fn.createUnnestingEvaluatorFactory(argFactories);
+ try {
+ return fn.createUnnestingEvaluatorFactory(argFactories);
+ } catch (SystemException e) {
+ throw new AlgebricksException(e);
+ }
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryNullWriterFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryMissingWriterFactory.java
similarity index 80%
rename from vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryNullWriterFactory.java
rename to vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryMissingWriterFactory.java
index f0220dd..4003d79 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryNullWriterFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryMissingWriterFactory.java
@@ -19,22 +19,21 @@
import java.io.DataOutput;
import java.io.IOException;
-import org.apache.vxquery.datamodel.values.XDMConstants;
-
-import org.apache.hyracks.api.dataflow.value.INullWriter;
-import org.apache.hyracks.api.dataflow.value.INullWriterFactory;
+import org.apache.hyracks.api.dataflow.value.IMissingWriter;
+import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.vxquery.datamodel.values.XDMConstants;
-public class VXQueryNullWriterFactory implements INullWriterFactory {
+public class VXQueryMissingWriterFactory implements IMissingWriterFactory {
private static final long serialVersionUID = 1L;
@Override
- public INullWriter createNullWriter() {
+ public IMissingWriter createMissingWriter() {
final VoidPointable vp = (VoidPointable) VoidPointable.FACTORY.createPointable();
- return new INullWriter() {
+ return new IMissingWriter() {
@Override
- public void writeNull(DataOutput out) throws HyracksDataException {
+ public void writeMissing(DataOutput out) throws HyracksDataException {
XDMConstants.setEmptySequence(vp);
try {
out.write(vp.getByteArray(), vp.getStartOffset(), vp.getLength());
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryPrinterFactoryProvider.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryPrinterFactoryProvider.java
index 65ef917..11d6204 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryPrinterFactoryProvider.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryPrinterFactoryProvider.java
@@ -16,15 +16,15 @@
*/
package org.apache.vxquery.compiler.algebricks;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
import org.apache.hyracks.algebricks.data.IPrinterFactoryProvider;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
public class VXQueryPrinterFactoryProvider implements IPrinterFactoryProvider {
public static final IPrinterFactoryProvider INSTANCE = new VXQueryPrinterFactoryProvider();
@Override
- public IPrinterFactory getPrinterFactory(Object type) throws AlgebricksException {
+ public IPrinterFactory getPrinterFactory(Object type) throws HyracksDataException {
return new VXQueryPrinterFactory();
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
index d5909c6..1ee4833 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
@@ -19,6 +19,46 @@
import java.util.LinkedList;
import java.util.List;
+import org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer;
+import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
+import org.apache.hyracks.algebricks.rewriter.rules.BreakSelectIntoConjunctsRule;
+import org.apache.hyracks.algebricks.rewriter.rules.ComplexJoinInferenceRule;
+import org.apache.hyracks.algebricks.rewriter.rules.ComplexUnnestToProductRule;
+import org.apache.hyracks.algebricks.rewriter.rules.ConsolidateAssignsRule;
+import org.apache.hyracks.algebricks.rewriter.rules.ConsolidateSelectsRule;
+import org.apache.hyracks.algebricks.rewriter.rules.CopyLimitDownRule;
+import org.apache.hyracks.algebricks.rewriter.rules.EliminateGroupByEmptyKeyRule;
+import org.apache.hyracks.algebricks.rewriter.rules.EnforceStructuralPropertiesRule;
+import org.apache.hyracks.algebricks.rewriter.rules.ExtractCommonOperatorsRule;
+import org.apache.hyracks.algebricks.rewriter.rules.ExtractGbyExpressionsRule;
+import org.apache.hyracks.algebricks.rewriter.rules.FactorRedundantGroupAndDecorVarsRule;
+import org.apache.hyracks.algebricks.rewriter.rules.InferTypesRule;
+import org.apache.hyracks.algebricks.rewriter.rules.InlineAssignIntoAggregateRule;
+import org.apache.hyracks.algebricks.rewriter.rules.InlineVariablesRule;
+//import org.apache.hyracks.algebricks.rewriter.rules.InsertOuterJoinRule;
+import org.apache.hyracks.algebricks.rewriter.rules.IntroJoinInsideSubplanRule;
+import org.apache.hyracks.algebricks.rewriter.rules.IntroduceAggregateCombinerRule;
+import org.apache.hyracks.algebricks.rewriter.rules.IntroduceGroupByCombinerRule;
+import org.apache.hyracks.algebricks.rewriter.rules.IntroduceProjectsRule;
+import org.apache.hyracks.algebricks.rewriter.rules.IsolateHyracksOperatorsRule;
+import org.apache.hyracks.algebricks.rewriter.rules.PullSelectOutOfEqJoin;
+import org.apache.hyracks.algebricks.rewriter.rules.PushMapOperatorDownThroughProductRule;
+import org.apache.hyracks.algebricks.rewriter.rules.PushProjectDownRule;
+import org.apache.hyracks.algebricks.rewriter.rules.PushProjectIntoDataSourceScanRule;
+import org.apache.hyracks.algebricks.rewriter.rules.PushSelectDownRule;
+import org.apache.hyracks.algebricks.rewriter.rules.PushSelectIntoJoinRule;
+import org.apache.hyracks.algebricks.rewriter.rules.PushSubplanWithAggregateDownThroughProductRule;
+import org.apache.hyracks.algebricks.rewriter.rules.ReinferAllTypesRule;
+import org.apache.hyracks.algebricks.rewriter.rules.RemoveRedundantVariablesRule;
+import org.apache.hyracks.algebricks.rewriter.rules.RemoveUnusedAssignAndAggregateRule;
+import org.apache.hyracks.algebricks.rewriter.rules.SetAlgebricksPhysicalOperatorsRule;
+import org.apache.hyracks.algebricks.rewriter.rules.SetExecutionModeRule;
+import org.apache.hyracks.algebricks.rewriter.rules.SimpleUnnestToProductRule;
+import org.apache.hyracks.algebricks.rewriter.rules.subplan.EliminateSubplanRule;
+import org.apache.hyracks.algebricks.rewriter.rules.subplan.EliminateSubplanWithInputCardinalityOneRule;
+import org.apache.hyracks.algebricks.rewriter.rules.subplan.NestedSubplanToJoinRule;
+import org.apache.hyracks.algebricks.rewriter.rules.subplan.PushSubplanIntoGroupByRule;
+import org.apache.hyracks.algebricks.rewriter.rules.subplan.SubplanOutOfGroupRule;
import org.apache.vxquery.compiler.rewriter.rules.ConsolidateAssignAggregateRule;
import org.apache.vxquery.compiler.rewriter.rules.ConsolidateDescandantChild;
import org.apache.vxquery.compiler.rewriter.rules.ConvertAssignToUnnestRule;
@@ -46,56 +86,17 @@
import org.apache.vxquery.compiler.rewriter.rules.algebricksalternatives.InlineNestedVariablesRule;
import org.apache.vxquery.compiler.rewriter.rules.algebricksalternatives.MoveFreeVariableOperatorOutOfSubplanRule;
-import org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer;
-import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
-import org.apache.hyracks.algebricks.rewriter.rules.BreakSelectIntoConjunctsRule;
-import org.apache.hyracks.algebricks.rewriter.rules.ComplexJoinInferenceRule;
-import org.apache.hyracks.algebricks.rewriter.rules.ComplexUnnestToProductRule;
-import org.apache.hyracks.algebricks.rewriter.rules.ConsolidateAssignsRule;
-import org.apache.hyracks.algebricks.rewriter.rules.ConsolidateSelectsRule;
-import org.apache.hyracks.algebricks.rewriter.rules.CopyLimitDownRule;
-import org.apache.hyracks.algebricks.rewriter.rules.EliminateGroupByEmptyKeyRule;
-import org.apache.hyracks.algebricks.rewriter.rules.EliminateSubplanRule;
-import org.apache.hyracks.algebricks.rewriter.rules.EliminateSubplanWithInputCardinalityOneRule;
-import org.apache.hyracks.algebricks.rewriter.rules.EnforceStructuralPropertiesRule;
-import org.apache.hyracks.algebricks.rewriter.rules.ExtractCommonOperatorsRule;
-import org.apache.hyracks.algebricks.rewriter.rules.ExtractGbyExpressionsRule;
-import org.apache.hyracks.algebricks.rewriter.rules.FactorRedundantGroupAndDecorVarsRule;
-import org.apache.hyracks.algebricks.rewriter.rules.InferTypesRule;
-import org.apache.hyracks.algebricks.rewriter.rules.InlineAssignIntoAggregateRule;
-import org.apache.hyracks.algebricks.rewriter.rules.InlineVariablesRule;
-import org.apache.hyracks.algebricks.rewriter.rules.InsertOuterJoinRule;
-import org.apache.hyracks.algebricks.rewriter.rules.IntroJoinInsideSubplanRule;
-import org.apache.hyracks.algebricks.rewriter.rules.IntroduceAggregateCombinerRule;
-import org.apache.hyracks.algebricks.rewriter.rules.IntroduceGroupByCombinerRule;
-import org.apache.hyracks.algebricks.rewriter.rules.IntroduceGroupByForSubplanRule;
-import org.apache.hyracks.algebricks.rewriter.rules.IntroduceProjectsRule;
-import org.apache.hyracks.algebricks.rewriter.rules.IsolateHyracksOperatorsRule;
-import org.apache.hyracks.algebricks.rewriter.rules.NestedSubplanToJoinRule;
-import org.apache.hyracks.algebricks.rewriter.rules.PullSelectOutOfEqJoin;
-import org.apache.hyracks.algebricks.rewriter.rules.PushMapOperatorDownThroughProductRule;
-import org.apache.hyracks.algebricks.rewriter.rules.PushProjectDownRule;
-import org.apache.hyracks.algebricks.rewriter.rules.PushProjectIntoDataSourceScanRule;
-import org.apache.hyracks.algebricks.rewriter.rules.PushSelectDownRule;
-import org.apache.hyracks.algebricks.rewriter.rules.PushSelectIntoJoinRule;
-import org.apache.hyracks.algebricks.rewriter.rules.PushSubplanIntoGroupByRule;
-import org.apache.hyracks.algebricks.rewriter.rules.PushSubplanWithAggregateDownThroughProductRule;
-import org.apache.hyracks.algebricks.rewriter.rules.ReinferAllTypesRule;
-import org.apache.hyracks.algebricks.rewriter.rules.RemoveRedundantVariablesRule;
-import org.apache.hyracks.algebricks.rewriter.rules.RemoveUnusedAssignAndAggregateRule;
-import org.apache.hyracks.algebricks.rewriter.rules.SetAlgebricksPhysicalOperatorsRule;
-import org.apache.hyracks.algebricks.rewriter.rules.SetExecutionModeRule;
-import org.apache.hyracks.algebricks.rewriter.rules.SimpleUnnestToProductRule;
-import org.apache.hyracks.algebricks.rewriter.rules.SubplanOutOfGroupRule;
-
public class RewriteRuleset {
+ RewriteRuleset() {
+ }
+
/**
* Optimizations specific to XQuery.
*
* @return List of algebraic rewrite rules.
*/
- public final static List<IAlgebraicRewriteRule> buildPathStepNormalizationRuleCollection() {
- List<IAlgebraicRewriteRule> normalization = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildPathStepNormalizationRuleCollection() {
+ List<IAlgebraicRewriteRule> normalization = new LinkedList<>();
normalization.add(new SetVariableIdContextRule());
// Remove unused functions.
@@ -153,8 +154,8 @@
*
* @return List of algebraic rewrite rules.
*/
- public final static List<IAlgebraicRewriteRule> buildXQueryNormalizationRuleCollection() {
- List<IAlgebraicRewriteRule> normalization = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildXQueryNormalizationRuleCollection() {
+ List<IAlgebraicRewriteRule> normalization = new LinkedList<>();
// Find assign for scalar aggregate function followed by an aggregate operator.
normalization.add(new ConsolidateAssignAggregateRule());
@@ -179,8 +180,8 @@
*
* @return List of algebraic rewrite rules.
*/
- public final static List<IAlgebraicRewriteRule> buildInlineRedundantExpressionNormalizationRuleCollection() {
- List<IAlgebraicRewriteRule> normalization = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildInlineRedundantExpressionNormalizationRuleCollection() {
+ List<IAlgebraicRewriteRule> normalization = new LinkedList<>();
normalization.add(new InlineNestedVariablesRule());
normalization.add(new RemoveRedundantTreatExpressionsRule());
normalization.add(new RemoveRedundantDataExpressionsRule());
@@ -199,8 +200,8 @@
*
* @return List of algebraic rewrite rules.
*/
- public final static List<IAlgebraicRewriteRule> buildNestedDataSourceRuleCollection() {
- List<IAlgebraicRewriteRule> xquery = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildNestedDataSourceRuleCollection() {
+ List<IAlgebraicRewriteRule> xquery = new LinkedList<>();
xquery.add(new BreakSelectIntoConjunctsRule());
xquery.add(new SimpleUnnestToProductRule());
xquery.add(new PushMapOperatorDownThroughProductRule());
@@ -213,8 +214,8 @@
return xquery;
}
- public final static List<IAlgebraicRewriteRule> buildTypeInferenceRuleCollection() {
- List<IAlgebraicRewriteRule> typeInfer = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildTypeInferenceRuleCollection() {
+ List<IAlgebraicRewriteRule> typeInfer = new LinkedList<>();
typeInfer.add(new InferTypesRule());
return typeInfer;
}
@@ -224,8 +225,8 @@
*
* @return List of algebraic rewrite rules.
*/
- public final static List<IAlgebraicRewriteRule> buildUnnestingRuleCollection() {
- List<IAlgebraicRewriteRule> xquery = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildUnnestingRuleCollection() {
+ List<IAlgebraicRewriteRule> xquery = new LinkedList<>();
xquery.add(new PushSelectDownRule());
xquery.add(new SimpleUnnestToProductRule());
@@ -235,9 +236,9 @@
xquery.add(new IntroJoinInsideSubplanRule());
xquery.add(new PushMapOperatorDownThroughProductRule());
xquery.add(new PushSubplanWithAggregateDownThroughProductRule());
- xquery.add(new IntroduceGroupByForSubplanRule());
+ //xquery.add(new IntroduceGroupByForSubplanRule());
xquery.add(new SubplanOutOfGroupRule());
- xquery.add(new InsertOuterJoinRule());
+ // xquery.add(new InsertOuterJoinRule());
xquery.add(new ExtractFunctionsFromJoinConditionRule());
xquery.add(new RemoveRedundantVariablesRule());
@@ -253,8 +254,8 @@
return xquery;
}
- public final static List<IAlgebraicRewriteRule> buildNormalizationRuleCollection() {
- List<IAlgebraicRewriteRule> normalization = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildNormalizationRuleCollection() {
+ List<IAlgebraicRewriteRule> normalization = new LinkedList<>();
normalization.add(new EliminateSubplanRule());
normalization.add(new BreakSelectIntoConjunctsRule());
normalization.add(new PushSelectIntoJoinRule());
@@ -262,8 +263,8 @@
return normalization;
}
- public final static List<IAlgebraicRewriteRule> buildCondPushDownRuleCollection() {
- List<IAlgebraicRewriteRule> condPushDown = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildCondPushDownRuleCollection() {
+ List<IAlgebraicRewriteRule> condPushDown = new LinkedList<>();
condPushDown.add(new PushSelectDownRule());
condPushDown.add(new InlineVariablesRule());
condPushDown.add(new FactorRedundantGroupAndDecorVarsRule());
@@ -271,34 +272,34 @@
return condPushDown;
}
- public final static List<IAlgebraicRewriteRule> buildJoinInferenceRuleCollection() {
- List<IAlgebraicRewriteRule> joinInference = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildJoinInferenceRuleCollection() {
+ List<IAlgebraicRewriteRule> joinInference = new LinkedList<>();
joinInference.add(new InlineVariablesRule());
joinInference.add(new ComplexJoinInferenceRule());
return joinInference;
}
- public final static List<IAlgebraicRewriteRule> buildOpPushDownRuleCollection() {
- List<IAlgebraicRewriteRule> opPushDown = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildOpPushDownRuleCollection() {
+ List<IAlgebraicRewriteRule> opPushDown = new LinkedList<>();
opPushDown.add(new PushProjectDownRule());
opPushDown.add(new PushSelectDownRule());
return opPushDown;
}
- public final static List<IAlgebraicRewriteRule> buildIntroduceProjectRuleCollection() {
- List<IAlgebraicRewriteRule> project = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildIntroduceProjectRuleCollection() {
+ List<IAlgebraicRewriteRule> project = new LinkedList<>();
project.add(new IntroduceProjectsRule());
return project;
}
- public final static List<IAlgebraicRewriteRule> buildDataExchangeRuleCollection() {
- List<IAlgebraicRewriteRule> dataExchange = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildDataExchangeRuleCollection() {
+ List<IAlgebraicRewriteRule> dataExchange = new LinkedList<>();
dataExchange.add(new SetExecutionModeRule());
return dataExchange;
}
- public final static List<IAlgebraicRewriteRule> buildConsolidationRuleCollection() {
- List<IAlgebraicRewriteRule> consolidation = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildConsolidationRuleCollection() {
+ List<IAlgebraicRewriteRule> consolidation = new LinkedList<>();
consolidation.add(new ConsolidateSelectsRule());
consolidation.add(new ConsolidateAssignsRule());
consolidation.add(new InlineAssignIntoAggregateRule());
@@ -308,8 +309,8 @@
return consolidation;
}
- public final static List<IAlgebraicRewriteRule> buildPhysicalRewritesAllLevelsRuleCollection() {
- List<IAlgebraicRewriteRule> physicalPlanRewrites = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildPhysicalRewritesAllLevelsRuleCollection() {
+ List<IAlgebraicRewriteRule> physicalPlanRewrites = new LinkedList<>();
physicalPlanRewrites.add(new PullSelectOutOfEqJoin());
physicalPlanRewrites.add(new PushFunctionsOntoEqJoinBranches());
physicalPlanRewrites.add(new SetAlgebricksPhysicalOperatorsRule());
@@ -320,15 +321,15 @@
return physicalPlanRewrites;
}
- public final static List<IAlgebraicRewriteRule> buildPhysicalRewritesTopLevelRuleCollection() {
- List<IAlgebraicRewriteRule> physicalPlanRewrites = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> buildPhysicalRewritesTopLevelRuleCollection() {
+ List<IAlgebraicRewriteRule> physicalPlanRewrites = new LinkedList<>();
physicalPlanRewrites.add(new CopyLimitDownRule());
physicalPlanRewrites.add(new SetExecutionModeRule());
return physicalPlanRewrites;
}
- public final static List<IAlgebraicRewriteRule> prepareForJobGenRuleCollection() {
- List<IAlgebraicRewriteRule> prepareForJobGenRewrites = new LinkedList<IAlgebraicRewriteRule>();
+ public static final List<IAlgebraicRewriteRule> prepareForJobGenRuleCollection() {
+ List<IAlgebraicRewriteRule> prepareForJobGenRewrites = new LinkedList<>();
prepareForJobGenRewrites.add(new ConvertFromAlgebricksExpressionsRule());
prepareForJobGenRewrites
.add(new IsolateHyracksOperatorsRule(HeuristicOptimizer.hyraxOperatorsBelowWhichJobGenIsDisabled));
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/VXQueryOptimizationContext.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/VXQueryOptimizationContext.java
index eef9495..ec31dbc 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/VXQueryOptimizationContext.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/VXQueryOptimizationContext.java
@@ -3,9 +3,9 @@
* 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.
@@ -17,34 +17,36 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IConflictingTypeResolver;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionEvalSizeComputer;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionTypeComputer;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IMergeAggregationExpressionFactory;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IMissableTypeComputer;
+import org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor;
+import org.apache.hyracks.algebricks.core.rewriter.base.AlgebricksOptimizationContext;
+import org.apache.hyracks.algebricks.core.rewriter.base.PhysicalOptimizationConfig;
import org.apache.vxquery.compiler.rewriter.rules.propagationpolicies.cardinality.Cardinality;
import org.apache.vxquery.compiler.rewriter.rules.propagationpolicies.documentorder.DocumentOrder;
import org.apache.vxquery.compiler.rewriter.rules.propagationpolicies.uniquenodes.UniqueNodes;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionEvalSizeComputer;
-import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionTypeComputer;
-import org.apache.hyracks.algebricks.core.algebra.expressions.IMergeAggregationExpressionFactory;
-import org.apache.hyracks.algebricks.core.algebra.expressions.INullableTypeComputer;
-import org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor;
-import org.apache.hyracks.algebricks.core.rewriter.base.AlgebricksOptimizationContext;
-import org.apache.hyracks.algebricks.core.rewriter.base.PhysicalOptimizationConfig;
-
public class VXQueryOptimizationContext extends AlgebricksOptimizationContext {
- private final Map<ILogicalOperator, HashMap<Integer, DocumentOrder>> documentOrderOperatorVariableMap = new HashMap<ILogicalOperator, HashMap<Integer, DocumentOrder>>();
- private final Map<ILogicalOperator, HashMap<Integer, UniqueNodes>> uniqueNodesOperatorVariableMap = new HashMap<ILogicalOperator, HashMap<Integer, UniqueNodes>>();
- private final Map<ILogicalOperator, Cardinality> cardinalityOperatorMap = new HashMap<ILogicalOperator, Cardinality>();
+ private final Map<ILogicalOperator, HashMap<Integer, DocumentOrder>> documentOrderOperatorVariableMap = new HashMap<>();
+ private final Map<ILogicalOperator, HashMap<Integer, UniqueNodes>> uniqueNodesOperatorVariableMap = new HashMap<>();
+ private final Map<ILogicalOperator, Cardinality> cardinalityOperatorMap = new HashMap<>();
private int totalDataSources = 0;
private int collectionId = 0;
public VXQueryOptimizationContext(int varCounter, IExpressionEvalSizeComputer expressionEvalSizeComputer,
IMergeAggregationExpressionFactory mergeAggregationExpressionFactory,
- IExpressionTypeComputer expressionTypeComputer, INullableTypeComputer nullableTypeComputer,
- PhysicalOptimizationConfig physicalOptimizationConfig, LogicalOperatorPrettyPrintVisitor prettyPrintVisitor) {
+ IExpressionTypeComputer expressionTypeComputer, IMissableTypeComputer missableTypeComputer,
+ IConflictingTypeResolver conflictingTypeResovler, PhysicalOptimizationConfig physicalOptimizationConfig,
+ AlgebricksPartitionConstraint clusterLocations, LogicalOperatorPrettyPrintVisitor prettyPrintVisitor) {
super(varCounter, expressionEvalSizeComputer, mergeAggregationExpressionFactory, expressionTypeComputer,
- nullableTypeComputer, physicalOptimizationConfig, prettyPrintVisitor);
+ missableTypeComputer, conflictingTypeResovler, physicalOptimizationConfig, clusterLocations, prettyPrintVisitor);
}
public void incrementTotalDataSources() {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractCollectionRule.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractCollectionRule.java
index 2e8a8ac..b62242b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractCollectionRule.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractCollectionRule.java
@@ -17,9 +17,6 @@
package org.apache.vxquery.compiler.rewriter.rules;
import java.io.DataInputStream;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
import java.util.Set;
import org.apache.commons.lang3.mutable.Mutable;
@@ -79,7 +76,7 @@
AssignOperator assign = (AssignOperator) op2;
// Check to see if the expression is a function and fn:Collection.
- ILogicalExpression logicalExpression = (ILogicalExpression) assign.getExpressions().get(0).getValue();
+ ILogicalExpression logicalExpression = assign.getExpressions().get(0).getValue();
if (logicalExpression.getExpressionTag() != LogicalExpressionTag.FUNCTION_CALL) {
return null;
}
@@ -92,7 +89,7 @@
// Get arguments
int size = functionCall.getArguments().size();
if (size > 0) {
- String args[] = new String[size];
+ String[] args = new String[size];
for (int i = 0; i < size; i++) {
args[i] = getArgument(functionCall, opRef, i);
}
@@ -103,7 +100,7 @@
private String getArgument(AbstractFunctionCallExpression functionCall, Mutable<ILogicalOperator> opRef, int pos) {
VXQueryConstantValue constantValue;
- ILogicalExpression logicalExpression2 = (ILogicalExpression) functionCall.getArguments().get(pos).getValue();
+ ILogicalExpression logicalExpression2 = functionCall.getArguments().get(pos).getValue();
if (logicalExpression2.getExpressionTag() != LogicalExpressionTag.VARIABLE) {
return null;
} else if (logicalExpression2 == null) {
@@ -118,7 +115,7 @@
AssignOperator assign2 = (AssignOperator) op3;
// Check to see if the expression is a constant expression and type string.
- ILogicalExpression logicalExpression3 = (ILogicalExpression) assign2.getExpressions().get(0).getValue();
+ ILogicalExpression logicalExpression3 = assign2.getExpressions().get(0).getValue();
if (logicalExpression3.getExpressionTag() != LogicalExpressionTag.CONSTANT) {
return null;
}
@@ -132,17 +129,9 @@
}
// Constant value is now in a TaggedValuePointable. Convert the value into a java String.
tvp.set(constantValue.getValue(), 0, constantValue.getValue().length);
- String collectionName = null;
if (tvp.getTag() == ValueTag.XS_STRING_TAG) {
tvp.getValue(stringp);
- try {
- bbis.setByteBuffer(ByteBuffer.wrap(Arrays.copyOfRange(stringp.getByteArray(), stringp.getStartOffset(),
- stringp.getLength() + stringp.getStartOffset())), 0);
- collectionName = di.readUTF();
- return collectionName;
- } catch (IOException e) {
- e.printStackTrace();
- }
+ return stringp.toString();
}
return null;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceCollectionRule.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceCollectionRule.java
index 42d59aa..20283d8 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceCollectionRule.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceCollectionRule.java
@@ -60,7 +60,7 @@
@Override
public boolean rewritePre(Mutable<ILogicalOperator> opRef, IOptimizationContext context) {
VXQueryOptimizationContext vxqueryContext = (VXQueryOptimizationContext) context;
- String args[] = getFunctionalArguments(opRef, VXQueryCommons.collectionFunctions);
+ String[] args = getFunctionalArguments(opRef, VXQueryCommons.collectionFunctions);
if (args != null) {
String collectionName = args[0];
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/ReplaceSourceMapInDocExpression.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/ReplaceSourceMapInDocExpression.java
index 8f241b3..08766b0 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/ReplaceSourceMapInDocExpression.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/ReplaceSourceMapInDocExpression.java
@@ -23,18 +23,6 @@
import java.util.List;
import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.vxquery.compiler.algebricks.VXQueryConstantValue;
-import org.apache.vxquery.compiler.rewriter.rules.util.ExpressionToolbox;
-import org.apache.vxquery.compiler.rewriter.rules.util.OperatorToolbox;
-import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.datamodel.builders.atomic.StringValueBuilder;
-import org.apache.vxquery.datamodel.values.ValueTag;
-import org.apache.vxquery.functions.BuiltinFunctions;
-import org.apache.vxquery.metadata.VXQueryMetadataProvider;
-import org.apache.vxquery.types.BuiltinTypeRegistry;
-import org.apache.vxquery.types.Quantifier;
-import org.apache.vxquery.types.SequenceType;
-
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
@@ -47,27 +35,38 @@
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.hyracks.dataflow.common.comm.util.ByteBufferInputStream;
+import org.apache.vxquery.compiler.algebricks.VXQueryConstantValue;
+import org.apache.vxquery.compiler.rewriter.rules.util.ExpressionToolbox;
+import org.apache.vxquery.compiler.rewriter.rules.util.OperatorToolbox;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.builders.atomic.StringValueBuilder;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.functions.BuiltinFunctions;
+import org.apache.vxquery.metadata.VXQueryMetadataProvider;
+import org.apache.vxquery.types.BuiltinTypeRegistry;
+import org.apache.vxquery.types.Quantifier;
+import org.apache.vxquery.types.SequenceType;
/**
* The rule searches for where the function_doc1 function is in the plan in place of XQuery function.
* It replaces the string contained in the function with its absolute file path.
- *
+ *
* <pre>
* Before
- *
+ *
* plan__parent
* %OPERATOR( $v1 : fn:doc( \@string ) )
* plan__child
- *
+ *
* Where xquery_function creates an atomic value.
- *
- * After
- *
+ *
+ * After
+ *
* plan__parent
* %OPERATOR( $v1 : fn:doc( \@absolute_file_path ) ) )
* plan__child
* </pre>
- *
+ *
* @author shivanim
*/
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/atomic/XSDatePointable.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/atomic/XSDatePointable.java
index d728927..f635b1d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/atomic/XSDatePointable.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/atomic/XSDatePointable.java
@@ -16,23 +16,20 @@
*/
package org.apache.vxquery.datamodel.accessors.atomic;
-import org.apache.vxquery.datamodel.api.IDate;
-import org.apache.vxquery.datamodel.api.ITimezone;
-
import org.apache.hyracks.api.dataflow.value.ITypeTraits;
import org.apache.hyracks.data.std.api.AbstractPointable;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.api.IPointableFactory;
import org.apache.hyracks.data.std.primitive.BytePointable;
import org.apache.hyracks.data.std.primitive.ShortPointable;
+import org.apache.vxquery.datamodel.api.IDate;
+import org.apache.vxquery.datamodel.api.ITimezone;
/**
* The date is split up into five sections. Due to leap year, we have decided to keep the
* storage simple by saving each date section separately. For calculations you can access
* YearMonth (months) and DayTime (milliseconds) values.
* The date pointable is also used for GDay, GMonth, GYear, GDayMonth and GMonthYear.
- *
- * @author prestoncarman
*/
public class XSDatePointable extends AbstractPointable implements IDate, ITimezone {
public final static int YEAR_OFFSET = 0;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/atomic/XSQNamePointable.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/atomic/XSQNamePointable.java
index f8e63b6..977101b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/atomic/XSQNamePointable.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/atomic/XSQNamePointable.java
@@ -20,7 +20,7 @@
import org.apache.hyracks.data.std.api.AbstractPointable;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.api.IPointableFactory;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.util.string.UTF8StringUtil;
/**
* The XSQNamePointable holds three strings: URI, Prefix and Local Name.
@@ -59,7 +59,8 @@
}
public static int getUriLength(byte[] bytes, int start) {
- return getUriUTFLength(bytes, start) + 2;
+ int utfLength = getUriUTFLength(bytes, start);
+ return utfLength + UTF8StringUtil.getNumBytesToStoreLength(utfLength);
}
public int getUriUTFLength() {
@@ -67,7 +68,7 @@
}
public static int getUriUTFLength(byte[] bytes, int start) {
- return UTF8StringPointable.getUTFLength(bytes, start);
+ return UTF8StringUtil.getUTFLength(bytes, start);
}
public int getPrefixLength() {
@@ -75,7 +76,8 @@
}
public static int getPrefixLength(byte[] bytes, int start) {
- return getPrefixUTFLength(bytes, start) + 2;
+ int utfLength = getPrefixUTFLength(bytes, start);
+ return utfLength + UTF8StringUtil.getNumBytesToStoreLength(utfLength);
}
public int getPrefixUTFLength() {
@@ -83,7 +85,7 @@
}
public static int getPrefixUTFLength(byte[] bytes, int start) {
- return UTF8StringPointable.getUTFLength(bytes, start + getUriLength(bytes, start));
+ return UTF8StringUtil.getUTFLength(bytes, start + getUriLength(bytes, start));
}
public int getLocalNameLength() {
@@ -91,7 +93,8 @@
}
public static int getLocalNameLength(byte[] bytes, int start) {
- return getLocalNameUTFLength(bytes, start) + 2;
+ int utfLength = getLocalNameUTFLength(bytes, start);
+ return utfLength + UTF8StringUtil.getNumBytesToStoreLength(utfLength);
}
public int getLocalNameUTFLength() {
@@ -99,7 +102,7 @@
}
public static int getLocalNameUTFLength(byte[] bytes, int start) {
- return UTF8StringPointable.getUTFLength(bytes,
+ return UTF8StringUtil.getUTFLength(bytes,
start + getUriLength(bytes, start) + getPrefixLength(bytes, start));
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonitem/ObjectPointable.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonitem/ObjectPointable.java
index ac96210..5311342 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonitem/ObjectPointable.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonitem/ObjectPointable.java
@@ -16,6 +16,8 @@
*/
package org.apache.vxquery.datamodel.accessors.jsonitem;
+import java.io.IOException;
+
import org.apache.hyracks.api.dataflow.value.ITypeTraits;
import org.apache.hyracks.data.std.api.AbstractPointable;
import org.apache.hyracks.data.std.api.IMutableValueStorage;
@@ -24,12 +26,11 @@
import org.apache.hyracks.data.std.primitive.IntegerPointable;
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.util.string.UTF8StringUtil;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import java.io.IOException;
-
/**
* The datamodel of the JSON object is represented in this class:
* Byte 1: Value tag of object (109)
@@ -65,8 +66,9 @@
return IntegerPointable.getInteger(bytes, start);
}
- private static int getKeyLength(byte[] b, int s) {
- return UTF8StringPointable.getUTFLength(b, s) + 2;
+ private static int getKeyLength(byte[] bytes, int start) {
+ int utfLength = UTF8StringUtil.getUTFLength(bytes, start);
+ return utfLength + UTF8StringUtil.getNumBytesToStoreLength(utfLength);
}
private static int getSlotArrayOffset(int start) {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/nodes/NodeTreePointable.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/nodes/NodeTreePointable.java
index db03e28..c0c447c 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/nodes/NodeTreePointable.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/nodes/NodeTreePointable.java
@@ -16,8 +16,6 @@
*/
package org.apache.vxquery.datamodel.accessors.nodes;
-import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-
import org.apache.hyracks.api.dataflow.value.ITypeTraits;
import org.apache.hyracks.data.std.algorithms.BinarySearchAlgorithm;
import org.apache.hyracks.data.std.api.AbstractPointable;
@@ -28,6 +26,8 @@
import org.apache.hyracks.data.std.primitive.IntegerPointable;
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.util.string.UTF8StringUtil;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
/*
* NodeTree {
@@ -36,17 +36,17 @@
* Dictionary dictionary?;
* ElementNode rootNode;
* }
- *
+ *
* ElementHeader (padded) {
* bit nodeIdExists;
* bit dictionaryExists;
* bit headerTypeExists;
* }
- *
+ *
* NodeId {
* int32 id;
* }
- *
+ *
* Dictionary {
* int32 numberOfItems
* int32[numberOfItems] lengthOfItem
@@ -97,14 +97,15 @@
public int getStart(int index) {
int dataAreaStart = getDictionaryDataAreaStartOffset();
int sortedPtrArrayStart = getDictionarySortedPointerArrayOffset();
- int sortedSlotValue = IntegerPointable
- .getInteger(bytes, sortedPtrArrayStart + index * SORTED_PTR_SLOT_SIZE);
+ int sortedSlotValue = IntegerPointable.getInteger(bytes,
+ sortedPtrArrayStart + index * SORTED_PTR_SLOT_SIZE);
return dataAreaStart + sortedSlotValue;
}
@Override
public int getLength(int index) {
- return UTF8StringPointable.getUTFLength(bytes, getStart(index)) + 2;
+ int utfLength = UTF8StringUtil.getUTFLength(bytes, getStart(index));
+ return utfLength + UTF8StringUtil.getNumBytesToStoreLength(utfLength);
}
};
@@ -130,16 +131,18 @@
return dictionaryExists() ? IntegerPointable.getInteger(bytes, getDictionaryEntryCountOffset()) : 0;
}
- public void getString(int idx, IPointable string) {
+ public void getString(int idx, UTF8StringPointable string) {
int nEntries = getDictionaryEntryCount();
if (idx < 0 || idx >= nEntries) {
throw new IllegalArgumentException(idx + " not within [0, " + nEntries + ")");
}
int dataAreaStart = getDictionaryDataAreaStartOffset();
- int idxSlotValue = idx == 0 ? 0 : IntegerPointable.getInteger(bytes, getDictionaryIndexPointerArrayOffset()
- + (idx - 1) * IDX_PTR_SLOT_SIZE);
- int strLen = UTF8StringPointable.getUTFLength(bytes, dataAreaStart + idxSlotValue);
- string.set(bytes, dataAreaStart + idxSlotValue, strLen + 2);
+ int idxSlotValue = idx == 0 ? 0
+ : IntegerPointable.getInteger(bytes,
+ getDictionaryIndexPointerArrayOffset() + (idx - 1) * IDX_PTR_SLOT_SIZE);
+ int strLen = UTF8StringUtil.getUTFLength(bytes, dataAreaStart + idxSlotValue);
+ int strMetaLen = UTF8StringUtil.getNumBytesToStoreLength(strLen);
+ string.set(bytes, dataAreaStart + idxSlotValue, strMetaLen + strLen);
}
public int lookupString(UTF8StringPointable key) {
@@ -197,8 +200,8 @@
}
private int getDictionaryDataAreaStartOffset() {
- return getDictionaryIndexPointerArrayOffset() + getDictionaryEntryCount()
- * (IDX_PTR_SLOT_SIZE + SORTED_PTR_SLOT_SIZE);
+ return getDictionaryIndexPointerArrayOffset()
+ + getDictionaryEntryCount() * (IDX_PTR_SLOT_SIZE + SORTED_PTR_SLOT_SIZE);
}
private int getRootNodeOffset() {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/nodes/PINodePointable.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/nodes/PINodePointable.java
index 3ae5126..6aee42b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/nodes/PINodePointable.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/nodes/PINodePointable.java
@@ -19,8 +19,8 @@
import org.apache.hyracks.api.dataflow.value.ITypeTraits;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.api.IPointableFactory;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.util.string.UTF8StringUtil;
/*
* PI {
@@ -66,7 +66,8 @@
}
private int getTargetSize(NodeTreePointable nodeTree) {
- return UTF8StringPointable.getUTFLength(bytes, getTargetOffset(nodeTree)) + 2;
+ int utfLength = UTF8StringUtil.getUTFLength(bytes, getTargetOffset(nodeTree));
+ return utfLength + UTF8StringUtil.getNumBytesToStoreLength(utfLength);
}
private int getContentOffset(NodeTreePointable nodeTree) {
@@ -74,6 +75,7 @@
}
private int getContentSize(NodeTreePointable nodeTree) {
- return UTF8StringPointable.getUTFLength(bytes, getContentOffset(nodeTree)) + 2;
+ int utfLength = UTF8StringUtil.getUTFLength(bytes, getContentOffset(nodeTree));
+ return utfLength + UTF8StringUtil.getNumBytesToStoreLength(utfLength);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/atomic/StringValueBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/atomic/StringValueBuilder.java
index 215d1b1..453ffe0 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/atomic/StringValueBuilder.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/atomic/StringValueBuilder.java
@@ -19,7 +19,7 @@
import java.io.DataOutput;
import java.io.IOException;
-import org.apache.hyracks.data.std.primitive.UTF8StringWriter;
+import org.apache.hyracks.util.string.UTF8StringWriter;
public class StringValueBuilder {
private final UTF8StringWriter writer;
@@ -29,6 +29,6 @@
}
public void write(CharSequence string, DataOutput out) throws IOException {
- writer.writeUTF8String(string, out);
+ writer.writeUTF8(string, out);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/atomic/UTF8StringBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/atomic/UTF8StringBuilder.java
deleted file mode 100644
index a4d301d..0000000
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/atomic/UTF8StringBuilder.java
+++ /dev/null
@@ -1,51 +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.vxquery.datamodel.builders.atomic;
-
-import java.io.DataOutput;
-import java.io.IOException;
-import java.io.UTFDataFormatException;
-
-import org.apache.hyracks.data.std.api.IMutableValueStorage;
-import org.apache.hyracks.data.std.primitive.BytePointable;
-import org.apache.vxquery.datamodel.builders.base.IBuilder;
-import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-
-public class UTF8StringBuilder implements IBuilder {
- private IMutableValueStorage mvs;
- private DataOutput out;
-
- public void reset(IMutableValueStorage mvs) throws IOException {
- this.mvs = mvs;
- out = mvs.getDataOutput();
- out.write(0);
- out.write(0);
- }
-
- public void finish() throws IOException {
- int utflen = mvs.getLength() - 2;
- BytePointable.setByte(mvs.getByteArray(), 0, (byte) ((utflen >>> 8) & 0xFF));
- BytePointable.setByte(mvs.getByteArray(), 1, (byte) ((utflen >>> 0) & 0xFF));
- }
-
- public void appendCharArray(char[] ch, int start, int length) throws IOException {
- FunctionHelper.writeCharArray(ch, start, length, out);
- if (mvs.getLength() > 65535) {
- throw new UTFDataFormatException("encoded string too long: " + mvs.getLength() + " bytes");
- }
- }
-}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/atomic/VXQueryUTF8StringBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/atomic/VXQueryUTF8StringBuilder.java
new file mode 100644
index 0000000..dcf5bbc
--- /dev/null
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/atomic/VXQueryUTF8StringBuilder.java
@@ -0,0 +1,29 @@
+/*
+ * 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.vxquery.datamodel.builders.atomic;
+
+import java.io.IOException;
+
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
+
+public class VXQueryUTF8StringBuilder extends UTF8StringBuilder {
+
+ public void appendUtf8Bytes(byte[] bytes, int byteStartOffset, int byteLength) throws IOException {
+ out.write(bytes, byteStartOffset, byteLength);
+ }
+
+}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/CommentNodeBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/CommentNodeBuilder.java
index d596c3d..68f5d4d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/CommentNodeBuilder.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/CommentNodeBuilder.java
@@ -19,6 +19,7 @@
import java.io.IOException;
import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.data.std.util.GrowableArray;
import org.apache.vxquery.datamodel.values.ValueTag;
public class CommentNodeBuilder extends AbstractNodeBuilder {
@@ -39,4 +40,8 @@
public void setValue(IValueReference value) throws IOException {
out.write(value.getByteArray(), value.getStartOffset(), value.getLength());
}
+
+ public void setValue(GrowableArray value) throws IOException {
+ out.write(value.getByteArray(), 0, value.getLength());
+ }
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/DictionaryBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/DictionaryBuilder.java
index dae149f..cf13bfe 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/DictionaryBuilder.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/DictionaryBuilder.java
@@ -22,14 +22,15 @@
import java.util.Map.Entry;
import java.util.TreeMap;
-import org.apache.vxquery.util.GrowableIntArray;
-
import org.apache.hyracks.data.std.algorithms.BinarySearchAlgorithm;
import org.apache.hyracks.data.std.collections.api.IValueReferenceVector;
import org.apache.hyracks.data.std.primitive.IntegerPointable;
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.hyracks.data.std.util.ByteArrayAccessibleOutputStream;
+import org.apache.hyracks.util.string.UTF8StringUtil;
+import org.apache.hyracks.util.string.UTF8StringWriter;
+import org.apache.vxquery.util.GrowableIntArray;
public class DictionaryBuilder {
private final GrowableIntArray stringEndOffsets;
@@ -46,6 +47,8 @@
private boolean cacheReady;
+ private final UTF8StringWriter UTF8Writer = new UTF8StringWriter();
+
private final IValueReferenceVector sortedStringsVector = new IValueReferenceVector() {
@Override
public int getStart(int index) {
@@ -60,7 +63,8 @@
@Override
public int getLength(int index) {
- return UTF8StringPointable.getUTFLength(dataBuffer.getByteArray(), getStart(index)) + 2;
+ int utfLength = UTF8StringUtil.getUTFLength(dataBuffer.getByteArray(), getStart(index));
+ return utfLength + UTF8StringUtil.getNumBytesToStoreLength(utfLength);
}
@Override
@@ -77,7 +81,7 @@
dataBuffer = new ByteArrayAccessibleOutputStream();
dataBufferOut = new DataOutputStream(dataBuffer);
cache = new ArrayBackedValueStorage();
- hashSlotIndexes = new TreeMap<String, Integer>();
+ hashSlotIndexes = new TreeMap<>();
cacheReady = false;
}
@@ -120,6 +124,7 @@
}
}
out.write(dataBuffer.getByteArray(), 0, dataBuffer.size());
+ // TODO can this value be determined before writing. Could this be append only.
IntegerPointable.setInteger(abvs.getByteArray(), sizeOffset, abvs.getLength() - sizeOffset);
}
@@ -127,7 +132,7 @@
Integer slotIndex = hashSlotIndexes.get(str);
if (slotIndex == null) {
try {
- dataBufferOut.writeUTF(str);
+ UTF8Writer.writeUTF8(str, dataBufferOut);
slotIndex = stringEndOffsets.getSize();
dataBufferOut.writeInt(slotIndex);
} catch (IOException e) {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/PINodeBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/PINodeBuilder.java
index 0e62762..05a1a88 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/PINodeBuilder.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/PINodeBuilder.java
@@ -19,6 +19,7 @@
import java.io.IOException;
import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.data.std.util.GrowableArray;
import org.apache.vxquery.datamodel.values.ValueTag;
public class PINodeBuilder extends AbstractNodeBuilder {
@@ -43,4 +44,12 @@
public void setContent(IValueReference value) throws IOException {
out.write(value.getByteArray(), value.getStartOffset(), value.getLength());
}
+
+ public void setTarget(GrowableArray value) throws IOException {
+ out.write(value.getByteArray(), 0, value.getLength());
+ }
+
+ public void setContent(GrowableArray value) throws IOException {
+ out.write(value.getByteArray(), 0, value.getLength());
+ }
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/TextNodeBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/TextNodeBuilder.java
index 67aa487..4456b35 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/TextNodeBuilder.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/nodes/TextNodeBuilder.java
@@ -19,6 +19,7 @@
import java.io.IOException;
import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.data.std.util.GrowableArray;
import org.apache.vxquery.datamodel.values.ValueTag;
public class TextNodeBuilder extends AbstractNodeBuilder {
@@ -39,4 +40,8 @@
public void setValue(IValueReference value) throws IOException {
out.write(value.getByteArray(), value.getStartOffset(), value.getLength());
}
+
+ public void setValue(GrowableArray value) throws IOException {
+ out.write(value.getByteArray(), 0, value.getLength());
+ }
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/XDMConstants.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/XDMConstants.java
index 3dc7e9e..c74c0b0 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/XDMConstants.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/XDMConstants.java
@@ -54,10 +54,9 @@
}
EMPTY_SEQUENCE = Arrays.copyOf(abvs.getByteArray(), abvs.getLength());
- EMPTY_STRING = new byte[3];
+ EMPTY_STRING = new byte[2];
EMPTY_STRING[0] = ValueTag.XS_STRING_TAG;
EMPTY_STRING[1] = 0;
- EMPTY_STRING[2] = 0;
JS_NULL_CONSTANT = new byte[1];
JS_NULL_CONSTANT[0] = ValueTag.JS_NULL_TAG;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/exceptions/SystemException.java b/vxquery-core/src/main/java/org/apache/vxquery/exceptions/SystemException.java
index fccbc55..a3f7bf8 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/exceptions/SystemException.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/exceptions/SystemException.java
@@ -19,10 +19,10 @@
import java.text.MessageFormat;
import java.util.Arrays;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.util.SourceLocation;
-public class SystemException extends AlgebricksException {
+public class SystemException extends HyracksDataException {
private static final long serialVersionUID = 1L;
private final ErrorCode code;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryDataException.java b/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryDataException.java
index e41872c..28c556f 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryDataException.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryDataException.java
@@ -26,8 +26,8 @@
private File file;
- public VXQueryDataException(String message, Exception ex, File file) {
- super(message, ex);
+ public VXQueryDataException(String message, Exception ex, File file, String nodeId) {
+ super(message, ex, nodeId);
this.file = file;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryFileNotFoundException.java b/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryFileNotFoundException.java
index 2856178..22dc754 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryFileNotFoundException.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryFileNotFoundException.java
@@ -22,8 +22,8 @@
private static final long serialVersionUID = 1L;
- public VXQueryFileNotFoundException(Exception ex, File file) {
- super("The file ([nodeId]:[path]) can not be found.", ex, file);
+ public VXQueryFileNotFoundException(Exception ex, File file, String nodeId) {
+ super("The file ([nodeId]:[path]) can not be found.", ex, file, nodeId);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryParseException.java b/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryParseException.java
index f0d66fb..8a367e3 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryParseException.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/exceptions/VXQueryParseException.java
@@ -22,8 +22,8 @@
private static final long serialVersionUID = 1L;
- public VXQueryParseException(Exception ex, File file) {
- super("The file ([nodeId]:[path]) threw a SAXException during parsing.", ex, file);
+ public VXQueryParseException(Exception ex, File file, String nodeId) {
+ super("The file ([nodeId]:[path]) threw a SAXException during parsing.", ex, file, nodeId);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/index/IndexDocumentBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/index/IndexDocumentBuilder.java
index bccd28d..7524da4 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/index/IndexDocumentBuilder.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/index/IndexDocumentBuilder.java
@@ -117,7 +117,7 @@
print(bstart, sstart, lstart, "0", "");
for (int i = 1; i < results.size() - 1; i++) {
//TODO: Since each doc is a file,
- //we can only handle files
+ //we can only handle files
//small enough to fit in memory
doc.add(results.get(i).sf);
}
@@ -813,8 +813,8 @@
}
private String[] printString(UTF8StringPointable utf8sp, String path) {
- int utfLen = utf8sp.getUTFLength();
- int offset = 2;
+ int utfLen = utf8sp.getUTF8Length();
+ int offset = utf8sp.getMetaDataLength();
String[] result = { "", path };
while (utfLen > 0) {
char c = utf8sp.charAt(offset);
@@ -843,7 +843,7 @@
result[0] += Character.toString(c);
break;
}
- int cLen = UTF8StringPointable.getModifiedUTF8Len(c);
+ int cLen = utf8sp.charSize(offset);
offset += cLen;
utfLen -= cLen;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/metadata/AbstractVXQueryDataSource.java b/vxquery-core/src/main/java/org/apache/vxquery/metadata/AbstractVXQueryDataSource.java
index dd9898c..df6fb4b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/metadata/AbstractVXQueryDataSource.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/metadata/AbstractVXQueryDataSource.java
@@ -16,11 +16,13 @@
*/
package org.apache.vxquery.metadata;
-import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSourcePropertiesProvider;
-
import java.util.List;
-public abstract class AbstractVXQueryDataSource {
+import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSource;
+import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSourcePropertiesProvider;
+import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
+
+public abstract class AbstractVXQueryDataSource implements IDataSource<String> {
protected static final String DELIMITER = "\\|";
protected int dataSourceId;
protected String collectionName;
@@ -36,4 +38,17 @@
protected IDataSourcePropertiesProvider propProvider;
public abstract String getFunctionCall();
+
+ @Override
+ public boolean isScanAccessPathALeaf() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public INodeDomain getDomain() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/metadata/QueryResultDataSink.java b/vxquery-core/src/main/java/org/apache/vxquery/metadata/QueryResultDataSink.java
index 8286d1b..f8d6d1d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/metadata/QueryResultDataSink.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/metadata/QueryResultDataSink.java
@@ -20,7 +20,7 @@
import org.apache.hyracks.algebricks.core.algebra.properties.FileSplitDomain;
import org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.RandomPartitioningProperty;
-import org.apache.hyracks.dataflow.std.file.FileSplit;
+import org.apache.hyracks.api.io.FileSplit;
public class QueryResultDataSink implements IDataSink {
private final FileSplit[] fileSplits;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionDataSource.java b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionDataSource.java
index b4bc858..bee7c7b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionDataSource.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionDataSource.java
@@ -19,18 +19,16 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.vxquery.compiler.rewriter.rules.CollectionFileDomain;
-
import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSource;
import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSourcePropertiesProvider;
import org.apache.hyracks.algebricks.core.algebra.properties.FunctionalDependency;
import org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
import org.apache.hyracks.algebricks.core.algebra.properties.RandomPartitioningProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
+import org.apache.vxquery.compiler.rewriter.rules.CollectionFileDomain;
-public class VXQueryCollectionDataSource extends AbstractVXQueryDataSource implements IDataSource<String> {
+public class VXQueryCollectionDataSource extends AbstractVXQueryDataSource {
private VXQueryCollectionDataSource(int id, String file, Object[] types) {
this.dataSourceId = id;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java
index 7736edd..be95f93 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java
@@ -80,7 +80,7 @@
protected static final Logger LOGGER = Logger.getLogger(VXQueryCollectionOperatorDescriptor.class.getName());
private HDFSFunctions hdfs;
private String tag;
- private final String START_TAG = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n";
+ private static final String START_TAG = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n";
private final String hdfsConf;
private final Map<String, NodeControllerInfo> nodeControllerInfos;
@@ -277,7 +277,7 @@
public void close() throws HyracksDataException {
// Check if needed?
if (appender.getTupleCount() > 0) {
- appender.flush(writer, true);
+ appender.flush(writer);
}
writer.close();
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingDataSource.java b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingDataSource.java
index da75108..ddbc984 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingDataSource.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingDataSource.java
@@ -16,21 +16,20 @@
*/
package org.apache.vxquery.metadata;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSource;
import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSourcePropertiesProvider;
import org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
import org.apache.hyracks.algebricks.core.algebra.properties.RandomPartitioningProperty;
import org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
import org.apache.vxquery.compiler.rewriter.rules.CollectionFileDomain;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* Datasource object for indexing.
*/
-public class VXQueryIndexingDataSource extends AbstractVXQueryDataSource implements IDataSource<String> {
+public class VXQueryIndexingDataSource extends AbstractVXQueryDataSource {
protected Object[] types;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingOperatorDescriptor.java b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingOperatorDescriptor.java
index ae637ac..a24a629 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingOperatorDescriptor.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingOperatorDescriptor.java
@@ -43,7 +43,6 @@
import org.apache.hyracks.dataflow.common.comm.util.FrameUtils;
import org.apache.hyracks.dataflow.std.base.AbstractSingleActivityOperatorDescriptor;
import org.apache.hyracks.dataflow.std.base.AbstractUnaryInputUnaryOutputOperatorNodePushable;
-import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
import org.apache.vxquery.datamodel.values.XDMConstants;
@@ -87,11 +86,10 @@
final short partitionId = (short) ctx.getTaskAttemptId().getTaskId().getPartition();
final ITreeNodeIdProvider nodeIdProvider = new TreeNodeIdProvider(partitionId, dataSourceId, totalDataSources);
final String nodeId = ctx.getJobletContext().getApplicationContext().getNodeId();
- final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final String collectionName = collectionPartitions[partition % collectionPartitions.length];
String collectionModifiedName = collectionName.replace("${nodeId}", nodeId);
IndexCentralizerUtil indexCentralizerUtil = new IndexCentralizerUtil(
- ctx.getIOManager().getIODevices().get(0).getPath());
+ ctx.getIOManager().getIODevices().get(0).getMount());
indexCentralizerUtil.readIndexDirectory();
return new AbstractUnaryInputUnaryOutputOperatorNodePushable() {
@@ -158,7 +156,7 @@
XDMConstants.setTrue(result);
FrameUtils.appendFieldToWriter(writer, appender, result.getByteArray(),
result.getStartOffset(), result.getLength());
- } catch (IOException | SystemException e) {
+ } catch (IOException e) {
throw new HyracksDataException(
"Could not update index in " + indexModifiedName + " " + e.getMessage());
}
@@ -174,7 +172,7 @@
XDMConstants.setTrue(result);
FrameUtils.appendFieldToWriter(writer, appender, result.getByteArray(),
result.getStartOffset(), result.getLength());
- } catch (SystemException | IOException e) {
+ } catch (IOException e) {
throw new HyracksDataException(
"Could not delete index in " + indexModifiedName + " " + e.getMessage());
}
@@ -208,7 +206,7 @@
public void close() throws HyracksDataException {
// Check if needed?
if (appender.getTupleCount() > 0) {
- appender.flush(writer, true);
+ appender.flush(writer);
}
writer.close();
indexCentralizerUtil.writeIndexDirectory();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryMetadataProvider.java b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryMetadataProvider.java
index b7b37b9..e552f68 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryMetadataProvider.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryMetadataProvider.java
@@ -19,6 +19,7 @@
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -87,7 +88,7 @@
List<LogicalVariable> scanVariables, List<LogicalVariable> projectVariables, boolean projectPushed,
List<LogicalVariable> minFilterVars, List<LogicalVariable> maxFilterVars, IOperatorSchema opSchema,
IVariableTypeEnvironment typeEnv, JobGenContext context, JobSpecification jobSpec, Object implConfig)
- throws AlgebricksException {
+ throws AlgebricksException {
VXQueryCollectionDataSource ds = null;
VXQueryIndexingDataSource ids = null;
@@ -126,10 +127,10 @@
constraint = getClusterLocations(nodeList, ids.getPartitionCount());
}
- return new Pair<IOperatorDescriptor, AlgebricksPartitionConstraint>(scanner, constraint);
+ return new Pair<>(scanner, constraint);
}
- public static AlgebricksPartitionConstraint getClusterLocations(String[] nodeList) {
+ public static AlgebricksAbsolutePartitionConstraint getClusterLocations(String[] nodeList) {
int availableProcessors = Runtime.getRuntime().availableProcessors();
if (availableProcessors < 1) {
availableProcessors = 1;
@@ -137,8 +138,8 @@
return getClusterLocations(nodeList, availableProcessors);
}
- public static AlgebricksPartitionConstraint getClusterLocations(String[] nodeList, int partitions) {
- ArrayList<String> locs = new ArrayList<String>();
+ public static AlgebricksAbsolutePartitionConstraint getClusterLocations(String[] nodeList, int partitions) {
+ ArrayList<String> locs = new ArrayList<>();
for (String node : nodeList) {
for (int j = 0; j < partitions; j++) {
locs.add(node);
@@ -150,14 +151,9 @@
}
@Override
- public boolean scannerOperatorIsLeaf(IDataSource<String> dataSource) {
- return false;
- }
-
- @Override
public Pair<IPushRuntimeFactory, AlgebricksPartitionConstraint> getWriteFileRuntime(IDataSink sink,
int[] printColumns, IPrinterFactory[] printerFactories, RecordDescriptor inputDesc)
- throws AlgebricksException {
+ throws AlgebricksException {
throw new UnsupportedOperationException();
}
@@ -183,7 +179,7 @@
IOperatorSchema[] inputSchemas, IVariableTypeEnvironment typeEnv, List<LogicalVariable> primaryKeys,
List<LogicalVariable> secondaryKeys, List<LogicalVariable> additionalNonKeyFields,
ILogicalExpression filterExpr, RecordDescriptor recordDesc, JobGenContext context, JobSpecification spec)
- throws AlgebricksException {
+ throws AlgebricksException {
throw new UnsupportedOperationException();
}
@@ -201,6 +197,7 @@
return fid;
}
+ @Override
public boolean isFunctional() {
return true;
}
@@ -212,7 +209,7 @@
int[] printColumns, IPrinterFactory[] printerFactories, RecordDescriptor inputDesc, boolean ordered,
JobSpecification spec) throws AlgebricksException {
QueryResultSetDataSink rsds = (QueryResultSetDataSink) sink;
- ResultSetId rssId = (ResultSetId) rsds.getId();
+ ResultSetId rssId = rsds.getId();
IResultSerializerFactoryProvider resultSerializerFactoryProvider = ResultSerializerFactoryProvider.INSTANCE;
IAWriterFactory writerFactory = PrinterBasedWriterFactory.INSTANCE;
@@ -227,15 +224,7 @@
throw new AlgebricksException(e);
}
- return new Pair<IOperatorDescriptor, AlgebricksPartitionConstraint>(resultWriter, null);
- }
-
- @Override
- public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getInsertRuntime(IDataSource<String> dataSource,
- IOperatorSchema propagatedSchema, IVariableTypeEnvironment typeEnv, List<LogicalVariable> keys,
- LogicalVariable payLoadVar, List<LogicalVariable> additionalNonKeyFields, RecordDescriptor recordDesc,
- JobGenContext context, JobSpecification jobSpec, boolean bulkload) throws AlgebricksException {
- throw new UnsupportedOperationException();
+ return new Pair<>(resultWriter, null);
}
@Override
@@ -257,4 +246,38 @@
throw new UnsupportedOperationException();
}
+ @Override
+ public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getInsertRuntime(IDataSource<String> dataSource,
+ IOperatorSchema propagatedSchema, IVariableTypeEnvironment typeEnv, List<LogicalVariable> keys,
+ LogicalVariable payLoadVar, List<LogicalVariable> additionalFilterKeyFields,
+ List<LogicalVariable> additionalNonFilteringFields, RecordDescriptor recordDesc, JobGenContext context,
+ JobSpecification jobSpec, boolean bulkload) throws AlgebricksException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getUpsertRuntime(IDataSource<String> dataSource,
+ IOperatorSchema inputSchema, IVariableTypeEnvironment typeEnv, List<LogicalVariable> keys,
+ LogicalVariable payLoadVar, List<LogicalVariable> additionalFilterFields,
+ List<LogicalVariable> additionalNonFilteringFields, RecordDescriptor recordDesc, JobGenContext context,
+ JobSpecification jobSpec) throws AlgebricksException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getIndexUpsertRuntime(
+ IDataSourceIndex<String, String> dataSourceIndex, IOperatorSchema propagatedSchema,
+ IOperatorSchema[] inputSchemas, IVariableTypeEnvironment typeEnv, List<LogicalVariable> primaryKeys,
+ List<LogicalVariable> secondaryKeys, List<LogicalVariable> additionalFilteringKeys,
+ ILogicalExpression filterExpr, List<LogicalVariable> prevSecondaryKeys,
+ LogicalVariable prevAdditionalFilteringKeys, RecordDescriptor inputDesc, JobGenContext context,
+ JobSpecification spec) throws AlgebricksException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Map<String, String> getConfig() {
+ return new HashMap<>();
+ }
+
}
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 325fb71..bd628e4 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
@@ -19,6 +19,12 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
@@ -31,13 +37,6 @@
import org.apache.vxquery.runtime.functions.comparison.AbstractValueComparisonOperation;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public abstract class AbstractMaxMinAggregateEvaluatorFactory extends
AbstractTaggedValueArgumentAggregateEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -46,7 +45,8 @@
super(args);
}
- protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws AlgebricksException {
+ @Override
+ protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws HyracksDataException {
final AbstractValueComparisonOperation aOpComparison = createValueComparisonOperation();
final TaggedValuePointable tvp2 = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
@@ -60,17 +60,17 @@
long count;
@Override
- public void init() throws AlgebricksException {
+ public void init() {
count = 0;
}
@Override
- public void finishPartial(IPointable result) throws AlgebricksException {
+ public void finishPartial(IPointable result) {
finish(result);
}
@Override
- public void finish(IPointable result) throws AlgebricksException {
+ public void finish(IPointable result) {
if (count == 0) {
XDMConstants.setEmptySequence(result);
} else {
@@ -79,7 +79,7 @@
}
@Override
- protected void step(TaggedValuePointable[] args) throws SystemException {
+ protected void step(TaggedValuePointable[] args) throws HyracksDataException {
TaggedValuePointable tvp1 = args[0];
if (tvp1.getTag() == ValueTag.SEQUENCE_TAG) {
// The local aggregate did not find a value so the global aggregate is receiving a empty sequence.
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AbstractMaxMinScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AbstractMaxMinScalarEvaluatorFactory.java
index 82d938e..06762d1 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AbstractMaxMinScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/AbstractMaxMinScalarEvaluatorFactory.java
@@ -16,25 +16,23 @@
*/
package org.apache.vxquery.runtime.functions.aggregate;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.datamodel.values.XDMConstants;
-import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.comparison.AbstractValueComparisonOperation;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-
public abstract class AbstractMaxMinScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -44,7 +42,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
final AbstractValueComparisonOperation aOpComparison = createValueComparisonOperation();
@@ -56,7 +54,7 @@
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
- protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws HyracksDataException {
// TODO Update the results to be based on specs when different types in sequence.
TaggedValuePointable tvp = args[0];
if (tvp.getTag() == ValueTag.SEQUENCE_TAG) {
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 828efd4..f33aa9d 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
@@ -18,6 +18,13 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -30,14 +37,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentAggregateEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.ArithmeticHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class AvgGlobalAggregateEvaluatorFactory extends AbstractTaggedValueArgumentAggregateEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -46,7 +45,7 @@
}
@Override
- protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws AlgebricksException {
+ protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws HyracksDataException {
final ArrayBackedValueStorage abvsCount = new ArrayBackedValueStorage();
final DataOutput dOutCount = abvsCount.getDataOutput();
final ArrayBackedValueStorage abvsSum = new ArrayBackedValueStorage();
@@ -65,7 +64,7 @@
TaggedValuePointable tvpCount = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
@Override
- public void init() throws AlgebricksException {
+ public void init() throws HyracksDataException {
try {
abvsCount.reset();
dOutCount.write(ValueTag.XS_INTEGER_TAG);
@@ -76,17 +75,17 @@
dOutSum.writeLong(0);
tvpSum.set(abvsSum);
} catch (Exception e) {
- throw new AlgebricksException(e);
+ throw new HyracksDataException(e);
}
}
@Override
- public void finishPartial(IPointable result) throws AlgebricksException {
+ public void finishPartial(IPointable result) throws HyracksDataException {
finish(result);
}
@Override
- public void finish(IPointable result) throws AlgebricksException {
+ public void finish(IPointable result) throws HyracksDataException {
tvpCount.getValue(longp);
if (longp.getLong() == 0) {
XDMConstants.setEmptySequence(result);
@@ -96,13 +95,13 @@
divide.compute(tvpSum, tvpCount, tvpSum);
result.set(tvpSum);
} catch (Exception e) {
- throw new AlgebricksException(e);
+ throw new HyracksDataException(e);
}
}
}
@Override
- protected void step(TaggedValuePointable[] args) throws SystemException {
+ protected void step(TaggedValuePointable[] args) throws HyracksDataException {
TaggedValuePointable tvp = args[0];
if (tvp.getTag() == ValueTag.SEQUENCE_TAG) {
tvp.getValue(seq);
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 db2aa57..bdfc1ad 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
@@ -18,23 +18,21 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.datamodel.values.XDMConstants;
-import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.arithmetic.AddOperation;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentAggregateEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentAggregateEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.ArithmeticHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class AvgLocalAggregateEvaluatorFactory extends AbstractTaggedValueArgumentAggregateEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -43,7 +41,7 @@
}
@Override
- protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws AlgebricksException {
+ protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws HyracksDataException {
final TaggedValuePointable tvpCount = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvsCount = new ArrayBackedValueStorage();
final DataOutput dOutCount = abvsCount.getDataOutput();
@@ -53,13 +51,13 @@
final SequenceBuilder sb = new SequenceBuilder();
final AddOperation aOpAdd = new AddOperation();
final ArithmeticHelper add = new ArithmeticHelper(aOpAdd, dCtx);
-
+
return new AbstractTaggedValueArgumentAggregateEvaluator(args) {
long count;
TaggedValuePointable tvpSum = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
@Override
- public void init() throws AlgebricksException {
+ public void init() throws HyracksDataException {
count = 0;
try {
abvsSum.reset();
@@ -67,17 +65,17 @@
dOutSum.writeLong(0);
tvpSum.set(abvsSum);
} catch (Exception e) {
- throw new AlgebricksException(e);
+ throw new HyracksDataException(e);
}
}
@Override
- public void finishPartial(IPointable result) throws AlgebricksException {
+ public void finishPartial(IPointable result) throws HyracksDataException {
finish(result);
}
@Override
- public void finish(IPointable result) throws AlgebricksException {
+ public void finish(IPointable result) throws HyracksDataException {
if (count == 0) {
XDMConstants.setEmptySequence(result);
} else {
@@ -96,13 +94,13 @@
sb.finish();
result.set(abvsSeq);
} catch (Exception e) {
- throw new AlgebricksException(e);
+ throw new HyracksDataException(e);
}
}
}
@Override
- protected void step(TaggedValuePointable[] args) throws SystemException {
+ protected void step(TaggedValuePointable[] args) throws HyracksDataException {
TaggedValuePointable tvp = args[0];
add.compute(tvp, tvpSum, tvpSum);
count++;
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 09a611f..2ce95cb 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
@@ -19,6 +19,12 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.datamodel.values.XDMConstants;
@@ -30,13 +36,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentAggregateEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.ArithmeticHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnAvgAggregateEvaluatorFactory extends AbstractTaggedValueArgumentAggregateEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@
}
@Override
- protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws AlgebricksException {
+ protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws HyracksDataException {
final TaggedValuePointable tvpCount = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvsSum = new ArrayBackedValueStorage();
final DataOutput dOutSum = abvsSum.getDataOutput();
@@ -61,17 +60,17 @@
TaggedValuePointable tvpSum = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
@Override
- public void init() throws AlgebricksException {
+ public void init() throws HyracksDataException {
count = 0;
}
@Override
- public void finishPartial(IPointable result) throws AlgebricksException {
+ public void finishPartial(IPointable result) throws HyracksDataException {
finish(result);
}
@Override
- public void finish(IPointable result) throws AlgebricksException {
+ public void finish(IPointable result) throws HyracksDataException {
if (count == 0) {
XDMConstants.setEmptySequence(result);
} else {
@@ -85,13 +84,13 @@
divide.compute(tvpSum, tvpCount, tvpSum);
result.set(tvpSum);
} catch (Exception e) {
- throw new AlgebricksException(e);
+ throw new HyracksDataException(e);
}
}
}
@Override
- protected void step(TaggedValuePointable[] args) throws SystemException {
+ protected void step(TaggedValuePointable[] args) throws HyracksDataException {
TaggedValuePointable tvp = args[0];
if (count == 0) {
// Init.
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnAvgScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnAvgScalarEvaluatorFactory.java
index 9a511cd..435d4e4 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnAvgScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnAvgScalarEvaluatorFactory.java
@@ -18,6 +18,12 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -31,13 +37,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.ArithmeticHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnAvgScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -47,7 +46,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
final TaggedValuePointable tvpNext = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
@@ -62,7 +61,7 @@
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
- protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws HyracksDataException {
TaggedValuePointable tvp = args[0];
if (tvp.getTag() == ValueTag.SEQUENCE_TAG) {
tvp.getValue(seqp);
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 8c55630..77ff018 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
@@ -18,18 +18,16 @@
import java.io.DataOutput;
-import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.datamodel.values.ValueTag;
-import org.apache.vxquery.exceptions.SystemException;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentAggregateEvaluator;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentAggregateEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentAggregateEvaluator;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentAggregateEvaluatorFactory;
public class FnCountAggregateEvaluatorFactory extends AbstractTaggedValueArgumentAggregateEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,36 +37,36 @@
}
@Override
- protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws AlgebricksException {
+ protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
return new AbstractTaggedValueArgumentAggregateEvaluator(args) {
long count;
@Override
- public void init() throws AlgebricksException {
+ public void init() throws HyracksDataException {
count = 0;
}
@Override
- public void finishPartial(IPointable result) throws AlgebricksException {
+ public void finishPartial(IPointable result) throws HyracksDataException {
finish(result);
}
@Override
- public void finish(IPointable result) throws AlgebricksException {
+ public void finish(IPointable result) throws HyracksDataException {
try {
abvs.reset();
dOut.write(ValueTag.XS_INTEGER_TAG);
dOut.writeLong(count);
result.set(abvs);
} catch (Exception e) {
- throw new AlgebricksException(e);
+ throw new HyracksDataException(e);
}
}
@Override
- protected void step(TaggedValuePointable[] args) throws SystemException {
+ protected void step(TaggedValuePointable[] args) throws HyracksDataException {
count++;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnCountScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnCountScalarEvaluatorFactory.java
index 0912f29..ba3e70f 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnCountScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnCountScalarEvaluatorFactory.java
@@ -18,6 +18,12 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -26,13 +32,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnCountScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -42,15 +41,15 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
- protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws HyracksDataException {
TaggedValuePointable tvp = args[0];
- long count = 0;
+ long count;
if (tvp.getTag() == ValueTag.SEQUENCE_TAG) {
tvp.getValue(seqp);
count = seqp.getEntryCount();
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 b4fdcdc..d03394a 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
@@ -19,21 +19,19 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
-import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.arithmetic.AddOperation;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentAggregateEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentAggregateEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.ArithmeticHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnSumAggregateEvaluatorFactory extends AbstractTaggedValueArgumentAggregateEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -42,7 +40,7 @@
}
@Override
- protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws AlgebricksException {
+ protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws HyracksDataException {
final ArrayBackedValueStorage abvsSum = new ArrayBackedValueStorage();
final DataOutput dOutSum = abvsSum.getDataOutput();
final AddOperation aOpAdd = new AddOperation();
@@ -54,29 +52,29 @@
// TODO Check if the second argument is supplied as the zero value.
@Override
- public void init() throws AlgebricksException {
+ public void init() throws HyracksDataException {
try {
abvsSum.reset();
dOutSum.write(ValueTag.XS_INTEGER_TAG);
dOutSum.writeLong(0);
tvpSum.set(abvsSum);
} catch (IOException e) {
- throw new AlgebricksException(e.toString());
+ throw new HyracksDataException(e.toString());
}
}
@Override
- public void finishPartial(IPointable result) throws AlgebricksException {
+ public void finishPartial(IPointable result) throws HyracksDataException {
finish(result);
}
@Override
- public void finish(IPointable result) throws AlgebricksException {
+ public void finish(IPointable result) throws HyracksDataException {
result.set(tvpSum);
}
@Override
- protected void step(TaggedValuePointable[] args) throws SystemException {
+ protected void step(TaggedValuePointable[] args) throws HyracksDataException {
TaggedValuePointable tvp = args[0];
add.compute(tvp, tvpSum, tvpSum);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnSumScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnSumScalarEvaluatorFactory.java
index 635fa8a..8055239 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnSumScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/aggregate/FnSumScalarEvaluatorFactory.java
@@ -18,6 +18,13 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -29,14 +36,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.ArithmeticHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnSumScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -46,7 +45,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AbstractArithmeticScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AbstractArithmeticScalarEvaluatorFactory.java
index eb253a6..b99354a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AbstractArithmeticScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AbstractArithmeticScalarEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.arithmetic;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -26,12 +31,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.ArithmeticHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public abstract class AbstractArithmeticScalarEvaluatorFactory extends
AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -42,7 +41,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final ArithmeticHelper aHelper = new ArithmeticHelper(createArithmeticOperation(), dCtx);
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluator.java
index 895294a..c0e7f2c 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluator.java
@@ -16,15 +16,13 @@
*/
package org.apache.vxquery.runtime.functions.base;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
import org.apache.vxquery.datamodel.accessors.PointablePool;
import org.apache.vxquery.datamodel.accessors.PointablePoolFactory;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.exceptions.SystemException;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
public abstract class AbstractTaggedValueArgumentAggregateEvaluator implements IAggregateEvaluator {
private final IScalarEvaluator[] args;
@@ -42,12 +40,12 @@
}
@Override
- public void step(IFrameTupleReference tuple) throws AlgebricksException {
+ public void step(IFrameTupleReference tuple) throws HyracksDataException {
for (int i = 0; i < args.length; ++i) {
args[i].evaluate(tuple, tvps[i]);
}
step(tvps);
}
- protected abstract void step(TaggedValuePointable[] args) throws SystemException;
+ protected abstract void step(TaggedValuePointable[] args) throws HyracksDataException;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluatorFactory.java
index 2ab0b66..b6d9feb 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentAggregateEvaluatorFactory.java
@@ -16,14 +16,13 @@
*/
package org.apache.vxquery.runtime.functions.base;
-import org.apache.vxquery.context.DynamicContext;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluatorFactory;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.context.DynamicContext;
public abstract class AbstractTaggedValueArgumentAggregateEvaluatorFactory implements IAggregateEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -37,7 +36,7 @@
}
@Override
- public final IAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx) throws AlgebricksException {
+ public final IAggregateEvaluator createAggregateEvaluator(IHyracksTaskContext ctx) throws HyracksDataException {
dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
IScalarEvaluator[] es = new IScalarEvaluator[args.length];
for (int i = 0; i < es.length; ++i) {
@@ -46,5 +45,5 @@
return createEvaluator(es);
}
- protected abstract IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws AlgebricksException;
+ protected abstract IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws HyracksDataException;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluator.java
index 20f24f6..857b142 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluator.java
@@ -16,16 +16,14 @@
*/
package org.apache.vxquery.runtime.functions.base;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
import org.apache.vxquery.datamodel.accessors.ArrayBackedValueStoragePool;
import org.apache.vxquery.datamodel.accessors.PointablePool;
import org.apache.vxquery.datamodel.accessors.PointablePoolFactory;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.exceptions.SystemException;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
public abstract class AbstractTaggedValueArgumentScalarEvaluator implements IScalarEvaluator {
private final IScalarEvaluator[] args;
@@ -44,12 +42,12 @@
}
@Override
- public final void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException {
+ public final void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException {
for (int i = 0; i < args.length; ++i) {
args[i].evaluate(tuple, tvps[i]);
}
evaluate(tvps, result);
}
- protected abstract void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException;
+ protected abstract void evaluate(TaggedValuePointable[] args, IPointable result) throws HyracksDataException;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluatorFactory.java
index d07361b..a5a910e 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.base;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
public abstract class AbstractTaggedValueArgumentScalarEvaluatorFactory implements IScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -31,7 +31,7 @@
}
@Override
- public final IScalarEvaluator createScalarEvaluator(IHyracksTaskContext ctx) throws AlgebricksException {
+ public final IScalarEvaluator createScalarEvaluator(IHyracksTaskContext ctx) throws HyracksDataException {
IScalarEvaluator[] es = new IScalarEvaluator[args.length];
for (int i = 0; i < es.length; ++i) {
es[i] = args[i].createScalarEvaluator(ctx);
@@ -40,5 +40,5 @@
}
protected abstract IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException;
+ throws HyracksDataException;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluator.java
index 3db1a0e..4117774 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluator.java
@@ -16,15 +16,13 @@
*/
package org.apache.vxquery.runtime.functions.base;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluator;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
import org.apache.vxquery.datamodel.accessors.PointablePool;
import org.apache.vxquery.datamodel.accessors.PointablePoolFactory;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.exceptions.SystemException;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluator;
-import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
public abstract class AbstractTaggedValueArgumentUnnestingEvaluator implements IUnnestingEvaluator {
private final IScalarEvaluator[] args;
@@ -42,12 +40,12 @@
}
@Override
- public final void init(IFrameTupleReference tuple) throws AlgebricksException {
+ public final void init(IFrameTupleReference tuple) throws HyracksDataException {
for (int i = 0; i < args.length; ++i) {
args[i].evaluate(tuple, tvps[i]);
}
init(tvps);
}
- protected abstract void init(TaggedValuePointable[] args) throws SystemException;
+ protected abstract void init(TaggedValuePointable[] args) throws HyracksDataException;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluatorFactory.java
index f32a734..88247b9 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/base/AbstractTaggedValueArgumentUnnestingEvaluatorFactory.java
@@ -17,16 +17,16 @@
package org.apache.vxquery.runtime.functions.base;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
public abstract class AbstractTaggedValueArgumentUnnestingEvaluatorFactory implements IUnnestingEvaluatorFactory {
private static final long serialVersionUID = 1L;
-
+
protected IHyracksTaskContext ctxview;
private final IScalarEvaluatorFactory[] args;
@@ -36,7 +36,7 @@
}
@Override
- public final IUnnestingEvaluator createUnnestingEvaluator(IHyracksTaskContext ctx) throws AlgebricksException {
+ public final IUnnestingEvaluator createUnnestingEvaluator(IHyracksTaskContext ctx) throws HyracksDataException {
ctxview = ctx;
IScalarEvaluator[] es = new IScalarEvaluator[args.length];
for (int i = 0; i < es.length; ++i) {
@@ -45,5 +45,5 @@
return createEvaluator(ctx, es);
}
- protected abstract IUnnestingEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) throws AlgebricksException;
+ protected abstract IUnnestingEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) throws HyracksDataException;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/AndScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/AndScalarEvaluatorFactory.java
index 599a4d7..f006087 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/AndScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/AndScalarEvaluatorFactory.java
@@ -16,17 +16,16 @@
*/
package org.apache.vxquery.runtime.functions.bool;
-import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.datamodel.values.XDMConstants;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.primitive.BooleanPointable;
import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.values.XDMConstants;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class AndScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -37,7 +36,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AndScalarEvaluator(args);
}
@@ -53,7 +52,7 @@
}
@Override
- public final void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException {
+ public final void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException {
for (int i = 0; i < args.length; ++i) {
args[i].evaluate(tuple, tvp);
tvp.getValue(bp);
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluatorFactory.java
index 7d83a19..b40cfb1 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnBooleanScalarEvaluatorFactory.java
@@ -16,6 +16,18 @@
*/
package org.apache.vxquery.runtime.functions.bool;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.BytePointable;
+import org.apache.hyracks.data.std.primitive.DoublePointable;
+import org.apache.hyracks.data.std.primitive.FloatPointable;
+import org.apache.hyracks.data.std.primitive.IntegerPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.ShortPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
@@ -26,19 +38,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.BytePointable;
-import org.apache.hyracks.data.std.primitive.DoublePointable;
-import org.apache.hyracks.data.std.primitive.FloatPointable;
-import org.apache.hyracks.data.std.primitive.IntegerPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.primitive.ShortPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnBooleanScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -48,7 +47,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new FnBooleanScalarEvaluator(args);
}
@@ -153,7 +152,7 @@
case ValueTag.XS_ANY_URI_TAG:
case ValueTag.XS_STRING_TAG: {
tvp.getValue(utf8p);
- if (utf8p.getUTFLength() == 0) {
+ if (utf8p.getStringLength() == 0) {
booleanResult = false;
}
break;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnFalseScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnFalseScalarEvaluatorFactory.java
index 53778d2..cb9ad8a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnFalseScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnFalseScalarEvaluatorFactory.java
@@ -16,18 +16,17 @@
*/
package org.apache.vxquery.runtime.functions.bool;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.XDMConstants;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class FnFalseScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -37,7 +36,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnNotScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnNotScalarEvaluatorFactory.java
index b9d4585..f1a3213 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnNotScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnNotScalarEvaluatorFactory.java
@@ -16,19 +16,18 @@
*/
package org.apache.vxquery.runtime.functions.bool;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.BooleanPointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.XDMConstants;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.BooleanPointable;
-
public class FnNotScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -38,7 +37,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
private final BooleanPointable bp = (BooleanPointable) BooleanPointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnTrueScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnTrueScalarEvaluatorFactory.java
index a94d2df..9de862e 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnTrueScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/FnTrueScalarEvaluatorFactory.java
@@ -16,18 +16,17 @@
*/
package org.apache.vxquery.runtime.functions.bool;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.XDMConstants;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class FnTrueScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -37,7 +36,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/OrScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/OrScalarEvaluatorFactory.java
index da31e14..83db663 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/OrScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/bool/OrScalarEvaluatorFactory.java
@@ -16,17 +16,16 @@
*/
package org.apache.vxquery.runtime.functions.bool;
-import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.datamodel.values.XDMConstants;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.primitive.BooleanPointable;
import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.values.XDMConstants;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class OrScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -37,7 +36,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new OrScalarEvaluator(args);
}
@@ -53,7 +52,7 @@
}
@Override
- public final void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException {
+ public final void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException {
for (int i = 0; i < args.length; ++i) {
args[i].evaluate(tuple, tvp);
tvp.getValue(bp);
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastScalarEvaluatorFactory.java
index 739e197..6cfd9a8 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastScalarEvaluatorFactory.java
@@ -18,6 +18,12 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -27,13 +33,6 @@
import org.apache.vxquery.types.BuiltinTypeRegistry;
import org.apache.vxquery.types.SequenceType;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class CastScalarEvaluatorFactory extends AbstractTypeScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -43,7 +42,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTypeScalarEvaluator(args, ctx) {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
@@ -62,140 +61,117 @@
case ValueTag.XS_ANY_URI_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertAnyURI(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_BASE64_BINARY_TAG:
tvp.getValue(tp.binaryp);
aOp.convertBase64Binary(tp.binaryp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_BOOLEAN_TAG:
tvp.getValue(tp.boolp);
aOp.convertBoolean(tp.boolp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_DATE_TAG:
tvp.getValue(tp.datep);
aOp.convertDate(tp.datep, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_DATETIME_TAG:
tvp.getValue(tp.datetimep);
aOp.convertDatetime(tp.datetimep, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_DAY_TIME_DURATION_TAG:
tvp.getValue(tp.longp);
aOp.convertDTDuration(tp.longp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_DECIMAL_TAG:
tvp.getValue(tp.decp);
aOp.convertDecimal(tp.decp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_DOUBLE_TAG:
tvp.getValue(tp.doublep);
aOp.convertDouble(tp.doublep, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_DURATION_TAG:
tvp.getValue(tp.durationp);
aOp.convertDuration(tp.durationp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_FLOAT_TAG:
tvp.getValue(tp.floatp);
aOp.convertFloat(tp.floatp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_G_DAY_TAG:
tvp.getValue(tp.datep);
aOp.convertGDay(tp.datep, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_G_MONTH_TAG:
tvp.getValue(tp.datep);
aOp.convertGMonth(tp.datep, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_G_MONTH_DAY_TAG:
tvp.getValue(tp.datep);
aOp.convertGMonthDay(tp.datep, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_G_YEAR_TAG:
tvp.getValue(tp.datep);
aOp.convertGYear(tp.datep, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_G_YEAR_MONTH_TAG:
tvp.getValue(tp.datep);
aOp.convertGYearMonth(tp.datep, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_HEX_BINARY_TAG:
tvp.getValue(tp.binaryp);
aOp.convertHexBinary(tp.binaryp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_INTEGER_TAG:
tvp.getValue(tp.longp);
aOp.convertInteger(tp.longp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_NOTATION_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertNotation(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_QNAME_TAG:
tvp.getValue(tp.qnamep);
aOp.convertQName(tp.qnamep, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_STRING_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertString(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_TIME_TAG:
tvp.getValue(tp.timep);
aOp.convertTime(tp.timep, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_UNTYPED_ATOMIC_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertUntypedAtomic(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_YEAR_MONTH_DURATION_TAG:
tvp.getValue(tp.intp);
aOp.convertYMDuration(tp.intp, dOut);
- result.set(abvs);
- return;
+ break;
/**
* Derived Numeric Datatypes (Alphabetical)
@@ -203,74 +179,62 @@
case ValueTag.XS_BYTE_TAG:
tvp.getValue(tp.bytep);
aOp.convertByte(tp.bytep, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_INT_TAG:
tvp.getValue(tp.intp);
aOp.convertInt(tp.intp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_LONG_TAG:
tvp.getValue(tp.longp);
aOp.convertLong(tp.longp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_NEGATIVE_INTEGER_TAG:
tvp.getValue(tp.longp);
aOp.convertNegativeInteger(tp.longp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_NON_NEGATIVE_INTEGER_TAG:
tvp.getValue(tp.longp);
aOp.convertNonNegativeInteger(tp.longp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_NON_POSITIVE_INTEGER_TAG:
tvp.getValue(tp.longp);
aOp.convertNonPositiveInteger(tp.longp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_POSITIVE_INTEGER_TAG:
tvp.getValue(tp.longp);
aOp.convertPositiveInteger(tp.longp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_SHORT_TAG:
tvp.getValue(tp.shortp);
aOp.convertShort(tp.shortp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_UNSIGNED_BYTE_TAG:
tvp.getValue(tp.shortp);
aOp.convertUnsignedByte(tp.shortp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_UNSIGNED_INT_TAG:
tvp.getValue(tp.longp);
aOp.convertUnsignedInt(tp.longp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_UNSIGNED_LONG_TAG:
tvp.getValue(tp.longp);
aOp.convertUnsignedLong(tp.longp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_UNSIGNED_SHORT_TAG:
tvp.getValue(tp.intp);
aOp.convertUnsignedShort(tp.intp, dOut);
- result.set(abvs);
- return;
+ break;
/**
* Derived String Datatypes (Alphabetical)
@@ -278,71 +242,65 @@
case ValueTag.XS_ENTITY_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertEntity(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_ID_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertID(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_IDREF_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertIDREF(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_LANGUAGE_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertIDREF(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_NAME_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertName(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_NCNAME_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertNCName(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_NMTOKEN_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertNMToken(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_NORMALIZED_STRING_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertNormalizedString(tp.utf8sp, dOut);
- result.set(abvs);
- return;
+ break;
case ValueTag.XS_TOKEN_TAG:
tvp.getValue(tp.utf8sp);
aOp.convertToken(tp.utf8sp, dOut);
- result.set(abvs);
- return;
-
+ break;
+
/**
* JSON null
*/
case ValueTag.JS_NULL_TAG:
aOp.convertNull(dOut);
- result.set(abvs);
- return;
+ break;
+
+ default:
+ throw new SystemException(ErrorCode.XPTY0004);
}
+ result.set(abvs.getByteArray(), abvs.getStartOffset(), abvs.getLength());
} catch (SystemException se) {
throw se;
} catch (Exception e) {
throw new SystemException(ErrorCode.SYSE0001, e);
}
- throw new SystemException(ErrorCode.XPTY0004);
+
}
@Override
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToBase64BinaryOperation.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToBase64BinaryOperation.java
index 680ce08..8e9aaa7 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToBase64BinaryOperation.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToBase64BinaryOperation.java
@@ -20,13 +20,12 @@
import java.io.IOException;
import org.apache.commons.codec.binary.Base64OutputStream;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ByteArrayAccessibleOutputStream;
import org.apache.vxquery.datamodel.accessors.atomic.XSBinaryPointable;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.exceptions.SystemException;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ByteArrayAccessibleOutputStream;
-
public class CastToBase64BinaryOperation extends AbstractCastToOperation {
private ByteArrayAccessibleOutputStream baaos = new ByteArrayAccessibleOutputStream();
@@ -46,13 +45,14 @@
public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
baaos.reset();
Base64OutputStream b64os = new Base64OutputStream(baaos, false);
- b64os.write(stringp.getByteArray(), stringp.getStartOffset() + 2, stringp.getLength() - 2);
- b64os.close();
+ b64os.write(stringp.getByteArray(), stringp.getCharStartOffset(), stringp.getUTF8Length());
dOut.write(ValueTag.XS_BASE64_BINARY_TAG);
dOut.write((byte) ((baaos.size() >>> 8) & 0xFF));
dOut.write((byte) ((baaos.size() >>> 0) & 0xFF));
dOut.write(baaos.getByteArray(), 0, baaos.size());
+
+ b64os.close();
}
@Override
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToBooleanOperation.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToBooleanOperation.java
index edfae66..e37d55d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToBooleanOperation.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToBooleanOperation.java
@@ -19,6 +19,11 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.data.std.primitive.BooleanPointable;
+import org.apache.hyracks.data.std.primitive.DoublePointable;
+import org.apache.hyracks.data.std.primitive.FloatPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.exceptions.ErrorCode;
@@ -27,12 +32,6 @@
import org.apache.vxquery.runtime.functions.strings.LowerCaseCharacterIterator;
import org.apache.vxquery.runtime.functions.strings.UTF8StringCharacterIterator;
-import org.apache.hyracks.data.std.primitive.BooleanPointable;
-import org.apache.hyracks.data.std.primitive.DoublePointable;
-import org.apache.hyracks.data.std.primitive.FloatPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class CastToBooleanOperation extends AbstractCastToOperation {
@Override
@@ -82,7 +81,7 @@
}
@Override
- public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
+ public void convertString(UTF8StringPointable stringp, DataOutput dOut) throws IOException {
byte result = 2;
ICharacterIterator charIterator = new LowerCaseCharacterIterator(new UTF8StringCharacterIterator(stringp));
charIterator.reset();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToDecimalOperation.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToDecimalOperation.java
index 8117d0e..cea4cf2 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToDecimalOperation.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToDecimalOperation.java
@@ -19,13 +19,6 @@
import java.io.DataOutput;
import java.io.IOException;
-import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
-import org.apache.vxquery.datamodel.values.ValueTag;
-import org.apache.vxquery.exceptions.ErrorCode;
-import org.apache.vxquery.exceptions.SystemException;
-import org.apache.vxquery.runtime.functions.strings.ICharacterIterator;
-import org.apache.vxquery.runtime.functions.strings.UTF8StringCharacterIterator;
-
import org.apache.hyracks.data.std.api.INumeric;
import org.apache.hyracks.data.std.primitive.BooleanPointable;
import org.apache.hyracks.data.std.primitive.BytePointable;
@@ -36,12 +29,20 @@
import org.apache.hyracks.data.std.primitive.ShortPointable;
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.util.string.UTF8StringWriter;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.ErrorCode;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.strings.ICharacterIterator;
+import org.apache.vxquery.runtime.functions.strings.UTF8StringCharacterIterator;
public class CastToDecimalOperation extends AbstractCastToOperation {
private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
private DataOutput dOutInner = abvsInner.getDataOutput();
private CastToStringOperation castToString = new CastToStringOperation();
private UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
+ private UTF8StringWriter sw = new UTF8StringWriter();
@Override
public void convertBoolean(BooleanPointable boolp, DataOutput dOut) throws SystemException, IOException {
@@ -70,9 +71,11 @@
throw new SystemException(ErrorCode.FORG0001);
}
abvsInner.reset();
- dOutInner.write(ValueTag.XS_STRING_TAG);
- dOutInner.writeUTF(Double.toString(doublep.getDouble()));
- stringp.set(abvsInner.getByteArray(), abvsInner.getStartOffset() + 1, abvsInner.getLength() - 1);
+ sw.writeUTF8(Double.toString(doublep.getDouble()), dOutInner);
+ stringp.set(abvsInner.getByteArray(), abvsInner.getStartOffset(), abvsInner.getLength());
+// dOutInner.write(ValueTag.XS_STRING_TAG);
+// sw.writeUTF8(Double.toString(doublep.getDouble()), dOutInner);
+// stringp.set(abvsInner.getByteArray(), abvsInner.getStartOffset() + 1, abvsInner.getLength() - 1);
convertStringExtra(stringp, dOut, true);
}
@@ -169,7 +172,7 @@
dOut.write(ValueTag.XS_DECIMAL_TAG);
dOut.write(decimalPlace);
- dOut.writeLong((negativeValue ? -value : value));
+ dOut.writeLong(negativeValue ? -value : value);
}
@Override
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToQNameOperation.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToQNameOperation.java
index e400af7..12d4702 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToQNameOperation.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToQNameOperation.java
@@ -19,6 +19,10 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.exceptions.SystemException;
@@ -26,10 +30,11 @@
import org.apache.vxquery.runtime.functions.strings.UTF8StringCharacterIterator;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class CastToQNameOperation extends AbstractCastToOperation {
+ private static final int STRING_EXPECTED_LENGTH = 300;
+ private final GrowableArray ga = new GrowableArray();
+ private final UTF8StringBuilder sb = new UTF8StringBuilder();
+
ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
DataOutput dOutInner = abvsInner.getDataOutput();
@@ -44,29 +49,43 @@
abvsInner.reset();
ICharacterIterator charIterator = new UTF8StringCharacterIterator(stringp);
charIterator.reset();
- int c = 0;
- int prefixLength = 0;
- while ((c = charIterator.next()) != ICharacterIterator.EOS_CHAR) {
- if (c == Character.valueOf(':')) {
- prefixLength = abvsInner.getLength();
- } else {
- FunctionHelper.writeChar((char) c, dOutInner);
- }
- }
+ int c;
+ boolean prefixFound = false;
dOut.write(ValueTag.XS_QNAME_TAG);
- dOut.write((byte) ((0 >>> 8) & 0xFF));
- dOut.write((byte) ((0 >>> 0) & 0xFF));
- // No URI
- dOut.write((byte) ((prefixLength >>> 8) & 0xFF));
- dOut.write((byte) ((prefixLength >>> 0) & 0xFF));
- dOut.write(abvsInner.getByteArray(), abvsInner.getStartOffset(), prefixLength);
+ // URI
+ dOut.write((byte) 0);
- int localNameLength = abvsInner.getLength() - prefixLength;
- dOut.write((byte) ((localNameLength >>> 8) & 0xFF));
- dOut.write((byte) ((localNameLength >>> 0) & 0xFF));
- dOut.write(abvsInner.getByteArray(), abvsInner.getStartOffset() + prefixLength, localNameLength);
+ // Prefix and Local Name
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
+ while ((c = charIterator.next()) != ICharacterIterator.EOS_CHAR) {
+ if (c == Character.valueOf(':')) {
+ prefixFound = true;
+ break;
+ } else {
+ FunctionHelper.writeChar((char) c, sb);
+ }
+ }
+ if (prefixFound) {
+ // Finish Prefix
+ sb.finish();
+ dOut.write(ga.getByteArray(), 0, ga.getLength());
+
+ // Local Name
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
+ while ((c = charIterator.next()) != ICharacterIterator.EOS_CHAR) {
+ FunctionHelper.writeChar((char) c, sb);
+ }
+ } else {
+ // No Prefix
+ dOut.write((byte) 0);
+ // Local Name is in ga variable
+ }
+ sb.finish();
+ dOut.write(ga.getByteArray(), 0, ga.getLength());
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java
index dcc0d07..d541ccd 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java
@@ -20,19 +20,6 @@
import java.io.IOException;
import org.apache.commons.codec.binary.Base64OutputStream;
-import org.apache.vxquery.datamodel.accessors.atomic.XSBinaryPointable;
-import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
-import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
-import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
-import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
-import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
-import org.apache.vxquery.datamodel.accessors.atomic.XSTimePointable;
-import org.apache.vxquery.datamodel.builders.atomic.StringValueBuilder;
-import org.apache.vxquery.datamodel.util.DateTime;
-import org.apache.vxquery.datamodel.values.ValueTag;
-import org.apache.vxquery.exceptions.SystemException;
-import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-
import org.apache.hyracks.data.std.primitive.BooleanPointable;
import org.apache.hyracks.data.std.primitive.BytePointable;
import org.apache.hyracks.data.std.primitive.DoublePointable;
@@ -43,13 +30,31 @@
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.hyracks.data.std.util.ByteArrayAccessibleOutputStream;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.vxquery.datamodel.accessors.atomic.XSBinaryPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSTimePointable;
+import org.apache.vxquery.datamodel.builders.atomic.StringValueBuilder;
+import org.apache.vxquery.datamodel.builders.atomic.VXQueryUTF8StringBuilder;
+import org.apache.vxquery.datamodel.util.DateTime;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.util.FunctionHelper;
public class CastToStringOperation extends AbstractCastToOperation {
+ private static final int STRING_EXPECTED_LENGTH = 300;
+ private final GrowableArray ga = new GrowableArray();
+ private final VXQueryUTF8StringBuilder sb = new VXQueryUTF8StringBuilder();
private ByteArrayAccessibleOutputStream baaos = new ByteArrayAccessibleOutputStream();
private ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
private DataOutput dOutInner = abvsInner.getDataOutput();
- int returnTag = ValueTag.XS_STRING_TAG;
+ protected int returnTag = ValueTag.XS_STRING_TAG;
private final char[] hex = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
+ private final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
@Override
public void convertAnyURI(UTF8StringPointable stringp, DataOutput dOut) throws SystemException, IOException {
@@ -59,63 +64,60 @@
@Override
public void convertBase64Binary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
- baaos.reset();
- @SuppressWarnings("resource")
+ // Read binary
Base64OutputStream b64os = new Base64OutputStream(baaos, true);
b64os.write(binaryp.getByteArray(), binaryp.getStartOffset() + 2, binaryp.getLength() - 2);
- dOut.write(returnTag);
- dOut.write((byte) ((baaos.size() >>> 8) & 0xFF));
- dOut.write((byte) ((baaos.size() >>> 0) & 0xFF));
- dOut.write(baaos.getByteArray(), 0, baaos.size());
+ // Write string
+ startString();
+ sb.appendUtf8Bytes(baaos.getByteArray(), 0, baaos.size());
+ sendStringDataOutput(dOut);
}
@Override
public void convertBoolean(BooleanPointable boolp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
if (boolp.getBoolean()) {
- FunctionHelper.writeCharSequence("true", dOutInner);
+ FunctionHelper.writeCharSequence("true", sb);
} else {
- FunctionHelper.writeCharSequence("false", dOutInner);
+ FunctionHelper.writeCharSequence("false", sb);
}
sendStringDataOutput(dOut);
}
@Override
public void convertDate(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeDateAsString(datep, dOutInner);
- FunctionHelper.writeTimezoneAsString(datep, dOutInner);
-
+ startString();
+ FunctionHelper.writeDateAsString(datep, sb);
+ FunctionHelper.writeTimezoneAsString(datep, sb);
sendStringDataOutput(dOut);
}
@Override
public void convertDatetime(XSDateTimePointable datetimep, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeDateAsString(datetimep, dOutInner);
- FunctionHelper.writeChar('T', dOutInner);
- FunctionHelper.writeTimeAsString(datetimep, dOutInner);
- FunctionHelper.writeTimezoneAsString(datetimep, dOutInner);
-
+ startString();
+ FunctionHelper.writeDateAsString(datetimep, sb);
+ FunctionHelper.writeChar('T', sb);
+ FunctionHelper.writeTimeAsString(datetimep, sb);
+ FunctionHelper.writeTimezoneAsString(datetimep, sb);
sendStringDataOutput(dOut);
}
@Override
public void convertDecimal(XSDecimalPointable decp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
byte decimalPlace = decp.getDecimalPlace();
long value = decp.getDecimalValue();
byte nDigits = decp.getDigitCount();
if (!FunctionHelper.isNumberPostive(value)) {
// Negative result, but the rest of the calculations can be based on a positive value.
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
value *= -1;
}
if (value == 0) {
- FunctionHelper.writeChar('0', dOutInner);
+ FunctionHelper.writeChar('0', sb);
} else {
long pow10 = (long) Math.pow(10, nDigits - 1);
int start = Math.max(decimalPlace, nDigits - 1);
@@ -123,14 +125,14 @@
for (int i = start; i >= end; --i) {
if (i >= nDigits || i < 0) {
- FunctionHelper.writeChar('0', dOutInner);
+ FunctionHelper.writeChar('0', sb);
} else {
- FunctionHelper.writeChar((char) ('0' + (value / pow10)), dOutInner);
+ FunctionHelper.writeChar((char) ('0' + (value / pow10)), sb);
value %= pow10;
pow10 /= 10;
}
if (i == decimalPlace && value > 0) {
- FunctionHelper.writeChar('.', dOutInner);
+ FunctionHelper.writeChar('.', sb);
}
}
}
@@ -140,29 +142,30 @@
@Override
public void convertDouble(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
abvsInner.reset();
+ startString();
double value = doublep.getDouble();
if (Double.isInfinite(value)) {
if (value == Double.NEGATIVE_INFINITY) {
- FunctionHelper.writeCharSequence("-", dOutInner);
+ FunctionHelper.writeCharSequence("-", sb);
}
- FunctionHelper.writeCharSequence("INF", dOutInner);
+ FunctionHelper.writeCharSequence("INF", sb);
sendStringDataOutput(dOut);
} else if (Double.isNaN(value)) {
- FunctionHelper.writeCharSequence("NaN", dOutInner);
+ FunctionHelper.writeCharSequence("NaN", sb);
sendStringDataOutput(dOut);
} else if (value == -0.0 || value == 0.0) {
long bits = Double.doubleToLongBits(value);
boolean negative = ((bits >> 63) == 0) ? false : true;
if (negative) {
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeCharSequence("-", sb);
}
- FunctionHelper.writeCharSequence("0", dOutInner);
+ FunctionHelper.writeCharSequence("0", sb);
sendStringDataOutput(dOut);
} else if (Math.abs(value) >= 0.000001 && Math.abs(value) <= 10000000) {
- //the jdk (toString function) does not output number in desired format when
- //a number is between one and ten million, so we take care of this
+ //the jdk (toString function) does not output number in desired format when
+ //a number is between one and ten million, so we take care of this
//case separately here.
CastToDecimalOperation castToDecimal = new CastToDecimalOperation();
castToDecimal.convertDouble(doublep, dOutInner);
@@ -175,67 +178,65 @@
decimalToScientificNotn(decp, dOut);
}
} else {
- dOut.write(returnTag);
- dOut.writeUTF(Double.toString(value));
+ FunctionHelper.writeCharSequence(Double.toString(value), sb);
+ sendStringDataOutput(dOut);
}
}
public void convertDoubleCanonical(DoublePointable doublep, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
double value = doublep.getDouble();
-
- dOut.write(returnTag);
- dOut.writeUTF(Double.toString(value));
- return;
+ FunctionHelper.writeCharSequence(Double.toString(value), sb);
+ sendStringDataOutput(dOut);
}
@Override
public void convertDTDuration(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
long dayTime = longp.getLong();
if (dayTime == 0) {
- FunctionHelper.writeCharSequence("PT0S", dOutInner);
+ FunctionHelper.writeCharSequence("PT0S", sb);
} else {
if (dayTime < 0) {
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
dayTime *= -1;
}
- FunctionHelper.writeChar('P', dOutInner);
+ FunctionHelper.writeChar('P', sb);
// Day
if (dayTime >= DateTime.CHRONON_OF_DAY) {
- FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_DAY, 1, dOutInner);
- FunctionHelper.writeChar('D', dOutInner);
+ FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_DAY, 1, sb);
+ FunctionHelper.writeChar('D', sb);
dayTime %= DateTime.CHRONON_OF_DAY;
}
if (dayTime > 0) {
- FunctionHelper.writeChar('T', dOutInner);
+ FunctionHelper.writeChar('T', sb);
}
// Hour
if (dayTime >= DateTime.CHRONON_OF_HOUR) {
- FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_HOUR, 1, dOutInner);
- FunctionHelper.writeChar('H', dOutInner);
+ FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_HOUR, 1, sb);
+ FunctionHelper.writeChar('H', sb);
dayTime %= DateTime.CHRONON_OF_HOUR;
}
// Minute
if (dayTime >= DateTime.CHRONON_OF_MINUTE) {
- FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_MINUTE, 1, dOutInner);
- FunctionHelper.writeChar('M', dOutInner);
+ FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_MINUTE, 1, sb);
+ FunctionHelper.writeChar('M', sb);
dayTime %= DateTime.CHRONON_OF_MINUTE;
}
// Milliseconds
if (dayTime > 0) {
- FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_SECOND, 1, dOutInner);
+ FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_SECOND, 1, sb);
if (dayTime % DateTime.CHRONON_OF_SECOND != 0) {
- FunctionHelper.writeChar('.', dOutInner);
- FunctionHelper.writeNumberWithPadding(dayTime % DateTime.CHRONON_OF_SECOND, 3, dOutInner);
+ FunctionHelper.writeChar('.', sb);
+ FunctionHelper.writeNumberWithPadding(dayTime % DateTime.CHRONON_OF_SECOND, 3, sb);
}
- FunctionHelper.writeChar('S', dOutInner);
+ FunctionHelper.writeChar('S', sb);
}
}
sendStringDataOutput(dOut);
@@ -243,62 +244,62 @@
@Override
public void convertDuration(XSDurationPointable durationp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
int yearMonth = durationp.getYearMonth();
long dayTime = durationp.getDayTime();
if (yearMonth < 0 || dayTime < 0) {
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
yearMonth *= -1;
dayTime *= -1;
}
- FunctionHelper.writeChar('P', dOutInner);
+ FunctionHelper.writeChar('P', sb);
// Year
if (yearMonth >= 12) {
- FunctionHelper.writeNumberWithPadding(yearMonth / 12, 1, dOutInner);
- FunctionHelper.writeChar('Y', dOutInner);
+ FunctionHelper.writeNumberWithPadding(yearMonth / 12, 1, sb);
+ FunctionHelper.writeChar('Y', sb);
}
// Month
if (yearMonth % 12 > 0) {
- FunctionHelper.writeNumberWithPadding(yearMonth % 12, 1, dOutInner);
- FunctionHelper.writeChar('M', dOutInner);
+ FunctionHelper.writeNumberWithPadding(yearMonth % 12, 1, sb);
+ FunctionHelper.writeChar('M', sb);
}
// Day
if (dayTime >= DateTime.CHRONON_OF_DAY) {
- FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_DAY, 1, dOutInner);
- FunctionHelper.writeChar('D', dOutInner);
+ FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_DAY, 1, sb);
+ FunctionHelper.writeChar('D', sb);
dayTime %= DateTime.CHRONON_OF_DAY;
}
if (dayTime > 0) {
- FunctionHelper.writeChar('T', dOutInner);
+ FunctionHelper.writeChar('T', sb);
}
// Hour
if (dayTime >= DateTime.CHRONON_OF_HOUR) {
- FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_HOUR, 1, dOutInner);
- FunctionHelper.writeChar('H', dOutInner);
+ FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_HOUR, 1, sb);
+ FunctionHelper.writeChar('H', sb);
dayTime %= DateTime.CHRONON_OF_HOUR;
}
// Minute
if (dayTime >= DateTime.CHRONON_OF_MINUTE) {
- FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_MINUTE, 1, dOutInner);
- FunctionHelper.writeChar('M', dOutInner);
+ FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_MINUTE, 1, sb);
+ FunctionHelper.writeChar('M', sb);
dayTime %= DateTime.CHRONON_OF_MINUTE;
}
// Milliseconds
if (dayTime > 0) {
- FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_SECOND, 1, dOutInner);
+ FunctionHelper.writeNumberWithPadding(dayTime / DateTime.CHRONON_OF_SECOND, 1, sb);
if (dayTime % DateTime.CHRONON_OF_SECOND != 0) {
- FunctionHelper.writeChar('.', dOutInner);
- FunctionHelper.writeNumberWithPadding(dayTime % DateTime.CHRONON_OF_SECOND, 3, dOutInner);
+ FunctionHelper.writeChar('.', sb);
+ FunctionHelper.writeNumberWithPadding(dayTime % DateTime.CHRONON_OF_SECOND, 3, sb);
}
- FunctionHelper.writeChar('S', dOutInner);
+ FunctionHelper.writeChar('S', sb);
}
sendStringDataOutput(dOut);
@@ -307,6 +308,7 @@
@Override
public void convertFloat(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
abvsInner.reset();
+ startString();
float value = floatp.getFloat();
if (!Float.isInfinite(value) && !Float.isNaN(value) && Math.abs(value) >= 0.000001
@@ -321,9 +323,9 @@
boolean negative = ((bits >> 31) == 0) ? false : true;
if (negative) {
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
}
- FunctionHelper.writeCharSequence("0", dOutInner);
+ FunctionHelper.writeCharSequence("0", sb);
sendStringDataOutput(dOut);
} else {
convertFloatCanonical(floatp, dOut);
@@ -331,128 +333,126 @@
}
public void convertFloatCanonical(FloatPointable floatp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
float value = floatp.getFloat();
if (Float.isInfinite(value)) {
if (value == Float.NEGATIVE_INFINITY) {
- FunctionHelper.writeCharSequence("-", dOutInner);
+ FunctionHelper.writeCharSequence("-", sb);
}
- FunctionHelper.writeCharSequence("INF", dOutInner);
+ FunctionHelper.writeCharSequence("INF", sb);
} else if (Float.isNaN(value)) {
- FunctionHelper.writeCharSequence("NaN", dOutInner);
+ FunctionHelper.writeCharSequence("NaN", sb);
} else {
- dOut.write(returnTag);
- dOut.writeUTF(Float.toString(value));
- return;
+ FunctionHelper.writeCharSequence(Float.toString(value), sb);
}
sendStringDataOutput(dOut);
}
@Override
public void convertGDay(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
// Default
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
// Year
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
// Month
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
// Day
- FunctionHelper.writeNumberWithPadding(datep.getDay(), 2, dOutInner);
+ FunctionHelper.writeNumberWithPadding(datep.getDay(), 2, sb);
// Timezone
- FunctionHelper.writeTimezoneAsString(datep, dOutInner);
+ FunctionHelper.writeTimezoneAsString(datep, sb);
sendStringDataOutput(dOut);
}
@Override
public void convertGMonth(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
// Default
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
// Year
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
// Month
- FunctionHelper.writeNumberWithPadding(datep.getMonth(), 2, dOutInner);
+ FunctionHelper.writeNumberWithPadding(datep.getMonth(), 2, sb);
// Timezone
- FunctionHelper.writeTimezoneAsString(datep, dOutInner);
+ FunctionHelper.writeTimezoneAsString(datep, sb);
sendStringDataOutput(dOut);
}
@Override
public void convertGMonthDay(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
// Default
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
// Year
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
// Month
- FunctionHelper.writeNumberWithPadding(datep.getMonth(), 2, dOutInner);
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeNumberWithPadding(datep.getMonth(), 2, sb);
+ FunctionHelper.writeChar('-', sb);
// Day
- FunctionHelper.writeNumberWithPadding(datep.getDay(), 2, dOutInner);
+ FunctionHelper.writeNumberWithPadding(datep.getDay(), 2, sb);
// Timezone
- FunctionHelper.writeTimezoneAsString(datep, dOutInner);
+ FunctionHelper.writeTimezoneAsString(datep, sb);
sendStringDataOutput(dOut);
}
@Override
public void convertGYear(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
// Year
- FunctionHelper.writeNumberWithPadding(datep.getYear(), 4, dOutInner);
+ FunctionHelper.writeNumberWithPadding(datep.getYear(), 4, sb);
// Timezone
- FunctionHelper.writeTimezoneAsString(datep, dOutInner);
+ FunctionHelper.writeTimezoneAsString(datep, sb);
sendStringDataOutput(dOut);
}
@Override
public void convertGYearMonth(XSDatePointable datep, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
// Year
- FunctionHelper.writeNumberWithPadding(datep.getYear(), 4, dOutInner);
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeNumberWithPadding(datep.getYear(), 4, sb);
+ FunctionHelper.writeChar('-', sb);
// Month
- FunctionHelper.writeNumberWithPadding(datep.getMonth(), 2, dOutInner);
+ FunctionHelper.writeNumberWithPadding(datep.getMonth(), 2, sb);
// Timezone
- FunctionHelper.writeTimezoneAsString(datep, dOutInner);
+ FunctionHelper.writeTimezoneAsString(datep, sb);
sendStringDataOutput(dOut);
}
@Override
public void convertHexBinary(XSBinaryPointable binaryp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
for (int index = 0; index < binaryp.getBinaryLength(); ++index) {
int bi = binaryp.getByteArray()[binaryp.getBinaryStart() + index] & 0xff;
- FunctionHelper.writeChar(hex[(bi >> 4)], dOutInner);
- FunctionHelper.writeChar(hex[(bi & 0xf)], dOutInner);
+ FunctionHelper.writeChar(hex[bi >> 4], sb);
+ FunctionHelper.writeChar(hex[bi & 0xf], sb);
}
sendStringDataOutput(dOut);
}
@Override
public void convertInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(longp.getLong(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(longp.getLong(), 1, sb);
sendStringDataOutput(dOut);
}
@@ -464,16 +464,14 @@
@Override
public void convertQName(XSQNamePointable qnamep, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
if (qnamep.getPrefixUTFLength() > 0) {
- dOutInner.write(qnamep.getByteArray(), qnamep.getStartOffset() + qnamep.getUriLength() + 2,
- qnamep.getPrefixUTFLength());
- FunctionHelper.writeChar(':', dOutInner);
+ qnamep.getPrefix(stringp);
+ sb.appendUtf8StringPointable(stringp);
+ FunctionHelper.writeChar(':', sb);
}
- dOutInner.write(qnamep.getByteArray(),
- qnamep.getStartOffset() + qnamep.getUriLength() + qnamep.getPrefixLength() + 2,
- qnamep.getLocalNameUTFLength());
-
+ qnamep.getLocalName(stringp);
+ sb.appendUtf8StringPointable(stringp);
sendStringDataOutput(dOut);
}
@@ -485,10 +483,9 @@
@Override
public void convertTime(XSTimePointable timep, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeTimeAsString(timep, dOutInner);
- FunctionHelper.writeTimezoneAsString(timep, dOutInner);
-
+ startString();
+ FunctionHelper.writeTimeAsString(timep, sb);
+ FunctionHelper.writeTimezoneAsString(timep, sb);
sendStringDataOutput(dOut);
}
@@ -499,28 +496,28 @@
@Override
public void convertYMDuration(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
+ startString();
int yearMonth = intp.getInteger();
if (yearMonth == 0) {
- FunctionHelper.writeCharSequence("P0M", dOutInner);
+ FunctionHelper.writeCharSequence("P0M", sb);
} else {
if (yearMonth < 0) {
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
yearMonth *= -1;
}
- FunctionHelper.writeChar('P', dOutInner);
+ FunctionHelper.writeChar('P', sb);
// Year
if (yearMonth >= 12) {
- FunctionHelper.writeNumberWithPadding(yearMonth / 12, 1, dOutInner);
- FunctionHelper.writeChar('Y', dOutInner);
+ FunctionHelper.writeNumberWithPadding(yearMonth / 12, 1, sb);
+ FunctionHelper.writeChar('Y', sb);
}
// Month
if (yearMonth % 12 > 0) {
- FunctionHelper.writeNumberWithPadding(yearMonth % 12, 1, dOutInner);
- FunctionHelper.writeChar('M', dOutInner);
+ FunctionHelper.writeNumberWithPadding(yearMonth % 12, 1, sb);
+ FunctionHelper.writeChar('M', sb);
}
}
sendStringDataOutput(dOut);
@@ -530,74 +527,74 @@
* Derived Numeric Datatypes
*/
public void convertByte(BytePointable bytep, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(bytep.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(bytep.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
public void convertInt(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(intp.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(intp.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
public void convertLong(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
public void convertNegativeInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
public void convertNonNegativeInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
public void convertNonPositiveInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
public void convertPositiveInteger(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
public void convertShort(ShortPointable shortp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(shortp.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(shortp.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
public void convertUnsignedByte(ShortPointable shortp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(shortp.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(shortp.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
public void convertUnsignedInt(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
public void convertUnsignedLong(LongPointable longp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(longp.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
public void convertUnsignedShort(IntegerPointable intp, DataOutput dOut) throws SystemException, IOException {
- abvsInner.reset();
- FunctionHelper.writeNumberWithPadding(intp.longValue(), 1, dOutInner);
+ startString();
+ FunctionHelper.writeNumberWithPadding(intp.longValue(), 1, sb);
sendStringDataOutput(dOut);
}
@@ -647,8 +644,8 @@
}
@Override
- public void convertNormalizedString(UTF8StringPointable stringp, DataOutput dOut) throws SystemException,
- IOException {
+ public void convertNormalizedString(UTF8StringPointable stringp, DataOutput dOut)
+ throws SystemException, IOException {
// TODO Add check to verify string consists of limited character set.
convertString(stringp, dOut);
}
@@ -659,36 +656,40 @@
convertString(stringp, dOut);
}
+ private void startString() throws IOException {
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
+ }
+
private void sendStringDataOutput(DataOutput dOut) throws SystemException, IOException {
dOut.write(returnTag);
- dOut.write((byte) ((abvsInner.getLength() >>> 8) & 0xFF));
- dOut.write((byte) ((abvsInner.getLength() >>> 0) & 0xFF));
- dOut.write(abvsInner.getByteArray(), abvsInner.getStartOffset(), abvsInner.getLength());
+ sb.finish();
+ dOut.write(ga.getByteArray(), 0, ga.getLength());
}
public void decimalToScientificNotn(XSDecimalPointable decp, DataOutput dOut) throws SystemException, IOException {
byte decimalPlace = decp.getDecimalPlace();
long value = decp.getDecimalValue();
byte nDigits = decp.getDigitCount();
- abvsInner.reset();
+ startString();
if (!FunctionHelper.isNumberPostive(value)) {
// Negative result, but the rest of the calculations can be based on a positive value.
- FunctionHelper.writeChar('-', dOutInner);
+ FunctionHelper.writeChar('-', sb);
value *= -1;
}
if (value == 0) {
- FunctionHelper.writeChar('0', dOutInner);
+ FunctionHelper.writeChar('0', sb);
} else {
long pow10 = (long) Math.pow(10, nDigits - 1);
- FunctionHelper.writeNumberWithPadding((value / pow10), 0, dOutInner);
- FunctionHelper.writeChar('.', dOutInner);
+ FunctionHelper.writeNumberWithPadding((value / pow10), 0, sb);
+ FunctionHelper.writeChar('.', sb);
long mod = value % pow10;
- FunctionHelper.writeNumberWithPadding(mod, (nDigits - 1), dOutInner);
- FunctionHelper.writeChar('E', dOutInner);
+ FunctionHelper.writeNumberWithPadding(mod, (nDigits - 1), sb);
+ FunctionHelper.writeChar('E', sb);
long power = (nDigits - 1) - decimalPlace;
- FunctionHelper.writeNumberWithPadding(power, 0, dOutInner);
+ FunctionHelper.writeNumberWithPadding(power, 0, sb);
}
sendStringDataOutput(dOut);
}
@@ -697,6 +698,6 @@
public void convertNull(DataOutput dOut) throws SystemException, IOException {
StringValueBuilder svb = new StringValueBuilder();
dOut.write(returnTag);
- svb.write("null",dOut);
+ svb.write("null", dOut);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableScalarEvaluatorFactory.java
index a3da889..5334c92 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/castable/CastableScalarEvaluatorFactory.java
@@ -18,6 +18,12 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -28,13 +34,6 @@
import org.apache.vxquery.types.BuiltinTypeRegistry;
import org.apache.vxquery.types.SequenceType;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class CastableScalarEvaluatorFactory extends AbstractTypeScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -44,7 +43,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTypeScalarEvaluator(args, ctx) {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/AbstractValueComparisonScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/AbstractValueComparisonScalarEvaluatorFactory.java
index 4d5eca2..58aa35d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/AbstractValueComparisonScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/AbstractValueComparisonScalarEvaluatorFactory.java
@@ -18,6 +18,13 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -30,14 +37,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public abstract class AbstractValueComparisonScalarEvaluatorFactory extends
AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -48,7 +47,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
final AbstractValueComparisonOperation aOp = createValueComparisonOperation();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java
index cc1e117..ea156f0 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java
@@ -18,6 +18,14 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.DoublePointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -66,15 +74,6 @@
import org.apache.vxquery.runtime.functions.util.AtomizeHelper;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.DoublePointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public abstract class AbstractGeneralComparisonScalarEvaluatorFactory extends
AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -85,7 +84,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final AbstractValueComparisonOperation aOp = createValueComparisonOperation();
final ArrayBackedValueStorage abvsInner1 = new ArrayBackedValueStorage();
final DataOutput dOutInner1 = abvsInner1.getDataOutput();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/conditional/IfThenElseScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/conditional/IfThenElseScalarEvaluatorFactory.java
index a7df0cb..806e067 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/conditional/IfThenElseScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/conditional/IfThenElseScalarEvaluatorFactory.java
@@ -16,20 +16,19 @@
*/
package org.apache.vxquery.runtime.functions.conditional;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.BooleanPointable;
+import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.BooleanPointable;
-import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
-
public class IfThenElseScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
private static final int CONDITION = 0;
@@ -42,28 +41,24 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, final IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final TaggedValuePointable conditionTvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
final BooleanPointable bp = (BooleanPointable) BooleanPointable.FACTORY.createPointable();
return new IScalarEvaluator() {
@Override
- public void evaluate(IFrameTupleReference tuple, IPointable result) throws AlgebricksException {
+ public void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException {
args[CONDITION].evaluate(tuple, conditionTvp);
- try {
- if (conditionTvp.getTag() != ValueTag.XS_BOOLEAN_TAG) {
- throw new SystemException(ErrorCode.FORG0006);
- }
- conditionTvp.getValue(bp);
+ if (conditionTvp.getTag() != ValueTag.XS_BOOLEAN_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ conditionTvp.getValue(bp);
- if (bp.getBoolean()) {
- args[TRUE_CONDITION].evaluate(tuple, result);
- } else {
- args[FALSE_CONDITION].evaluate(tuple, result);
- }
- } catch (SystemException e) {
- throw new AlgebricksException(e);
+ if (bp.getBoolean()) {
+ args[TRUE_CONDITION].evaluate(tuple, result);
+ } else {
+ args[FALSE_CONDITION].evaluate(tuple, result);
}
}
};
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/AbstractValueFromDateTimeScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/AbstractValueFromDateTimeScalarEvaluatorFactory.java
index 8c8a091..5437383 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/AbstractValueFromDateTimeScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/AbstractValueFromDateTimeScalarEvaluatorFactory.java
@@ -19,6 +19,12 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -28,13 +34,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public abstract class AbstractValueFromDateTimeScalarEvaluatorFactory extends
AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
final DataOutput dOutInner = abvsInner.getDataOutput();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/AbstractValueFromDurationScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/AbstractValueFromDurationScalarEvaluatorFactory.java
index e7479b0..f675207 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/AbstractValueFromDurationScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/AbstractValueFromDurationScalarEvaluatorFactory.java
@@ -19,6 +19,14 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.IntegerPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
@@ -29,15 +37,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.IntegerPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public abstract class AbstractValueFromDurationScalarEvaluatorFactory extends
AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -48,7 +47,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final XSDurationPointable durationp = (XSDurationPointable) XSDurationPointable.FACTORY.createPointable();
final LongPointable longp = (LongPointable) LongPointable.FACTORY.createPointable();
final IntegerPointable intp = (IntegerPointable) IntegerPointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustDateTimeToTimezoneScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustDateTimeToTimezoneScalarEvaluatorFactory.java
index f645fe6..d7299f6 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustDateTimeToTimezoneScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustDateTimeToTimezoneScalarEvaluatorFactory.java
@@ -19,6 +19,13 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
@@ -29,14 +36,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnAdjustDateTimeToTimezoneScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -46,7 +45,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
final XSDateTimePointable ctxDatetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustDateToTimezoneScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustDateToTimezoneScalarEvaluatorFactory.java
index 21d08d1..2787771 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustDateToTimezoneScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustDateToTimezoneScalarEvaluatorFactory.java
@@ -19,6 +19,13 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
@@ -30,14 +37,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnAdjustDateToTimezoneScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -47,7 +46,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final XSDatePointable datep = (XSDatePointable) XSDatePointable.FACTORY.createPointable();
final XSDateTimePointable ctxDatetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustTimeToTimezoneScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustTimeToTimezoneScalarEvaluatorFactory.java
index 80a519b..baf861f 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustTimeToTimezoneScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnAdjustTimeToTimezoneScalarEvaluatorFactory.java
@@ -19,6 +19,13 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
@@ -30,14 +37,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnAdjustTimeToTimezoneScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -47,7 +46,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final XSTimePointable timep = (XSTimePointable) XSTimePointable.FACTORY.createPointable();
final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentDateScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentDateScalarEvaluatorFactory.java
index 965ce08..4341cfc 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentDateScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentDateScalarEvaluatorFactory.java
@@ -19,6 +19,12 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
@@ -28,13 +34,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.cast.CastToDateOperation;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnCurrentDateScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -44,7 +43,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
final CastToDateOperation castToDate = new CastToDateOperation();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentDateTimeScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentDateTimeScalarEvaluatorFactory.java
index 8ad2af0..c722ce2 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentDateTimeScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentDateTimeScalarEvaluatorFactory.java
@@ -19,6 +19,12 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
@@ -28,13 +34,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.cast.CastToDateTimeOperation;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnCurrentDateTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -44,7 +43,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
final CastToDateTimeOperation castToDateTime = new CastToDateTimeOperation();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentTimeScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentTimeScalarEvaluatorFactory.java
index 1c22c37..22003be 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentTimeScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnCurrentTimeScalarEvaluatorFactory.java
@@ -19,6 +19,12 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
@@ -28,13 +34,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.cast.CastToTimeOperation;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnCurrentTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -44,7 +43,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
final CastToTimeOperation castToTime = new CastToTimeOperation();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDateTimeScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDateTimeScalarEvaluatorFactory.java
index 07436ea..5881a4f 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDateTimeScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDateTimeScalarEvaluatorFactory.java
@@ -19,6 +19,12 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
@@ -32,13 +38,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnDateTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -48,7 +47,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final XSDatePointable datep = (XSDatePointable) XSDatePointable.FACTORY.createPointable();
final XSTimePointable timep = (XSTimePointable) XSTimePointable.FACTORY.createPointable();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnImplicitTimezoneScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnImplicitTimezoneScalarEvaluatorFactory.java
index 8172d2e..500a5be 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnImplicitTimezoneScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnImplicitTimezoneScalarEvaluatorFactory.java
@@ -19,6 +19,12 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
@@ -29,13 +35,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnImplicitTimezoneScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/error/FnErrorScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/error/FnErrorScalarEvaluatorFactory.java
index e728953..91270f6 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/error/FnErrorScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/error/FnErrorScalarEvaluatorFactory.java
@@ -16,16 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.error;
-import java.io.DataInputStream;
-import java.io.IOException;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.dataflow.common.comm.util.ByteBufferInputStream;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
@@ -34,7 +30,6 @@
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.vxquery.runtime.functions.util.FunctionHelper;
public class FnErrorScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -46,7 +41,7 @@
@SuppressWarnings("unused")
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final XSQNamePointable qnamep = (XSQNamePointable) XSQNamePointable.FACTORY.createPointable();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
final UTF8StringPointable urip = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
@@ -54,9 +49,6 @@
final UTF8StringPointable prefixp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable descriptionp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
- final ByteBufferInputStream bbis = new ByteBufferInputStream();
- final DataInputStream di = new DataInputStream(bbis);
-
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
@@ -77,13 +69,8 @@
tvp1.getValue(qnamep);
qnamep.getUri(urip);
qnamep.getLocalName(localnamep);
- try {
- namespaceURI = FunctionHelper.getStringFromPointable(urip, bbis, di);
-
- localPart = FunctionHelper.getStringFromPointable(localnamep, bbis, di);
- } catch (IOException e) {
- throw new SystemException(ErrorCode.FOER0000);
- }
+ namespaceURI = urip.toString();
+ localPart = localnamep.toString();
// TODO Update to dynamic error.
throw new SystemException(ErrorCode.FOER0000);
}
@@ -103,13 +90,8 @@
tvp1.getValue(qnamep);
qnamep.getUri(urip);
qnamep.getLocalName(localnamep);
- try {
- namespaceURI = FunctionHelper.getStringFromPointable(urip, bbis, di);
-
- localPart = FunctionHelper.getStringFromPointable(localnamep, bbis, di);
- } catch (IOException e) {
- throw new SystemException(ErrorCode.FORG0006);
- }
+ namespaceURI = urip.toString();
+ localPart = localnamep.toString();
} else {
throw new SystemException(ErrorCode.FORG0006);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/index/ShowIndexScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/index/ShowIndexScalarEvaluatorFactory.java
index 9b72a34..6677bd9 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/index/ShowIndexScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/index/ShowIndexScalarEvaluatorFactory.java
@@ -18,10 +18,10 @@
import java.io.IOException;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -33,13 +33,15 @@
import org.apache.vxquery.runtime.functions.index.indexCentralizer.IndexCentralizerUtil;
public class ShowIndexScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
public ShowIndexScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
super(args);
}
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final SequenceBuilder sb = new SequenceBuilder();
@@ -50,7 +52,7 @@
abvs.reset();
sb.reset(abvs);
IndexCentralizerUtil indexCentralizerUtil = new IndexCentralizerUtil(
- ctx.getIOManager().getIODevices().get(0).getPath());
+ ctx.getIOManager().getIODevices().get(0).getMount());
indexCentralizerUtil.readIndexDirectory();
indexCentralizerUtil.getAllCollections(sb);
sb.finish();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnDocScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnDocScalarEvaluatorFactory.java
index 827686f..665c812 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnDocScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnDocScalarEvaluatorFactory.java
@@ -19,10 +19,10 @@
import java.io.DataInputStream;
import java.io.IOException;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
@@ -47,7 +47,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final ByteBufferInputStream bbis = new ByteBufferInputStream();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnKeysScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnKeysScalarEvaluatorFactory.java
index f45299b..49e7a29 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnKeysScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnKeysScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class JnKeysScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new JnKeysScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnMembersScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnMembersScalarEvaluatorFactory.java
index 59a923d..ce42e27 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnMembersScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnMembersScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class JnMembersScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new JnMembersScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnNullScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnNullScalarEvaluatorFactory.java
index e042370..300f853 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnNullScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnNullScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class JnNullScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new JnNullScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnParseJsonScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnParseJsonScalarEvaluatorFactory.java
index 772118e..8f00082 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnParseJsonScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/JnParseJsonScalarEvaluatorFactory.java
@@ -16,11 +16,16 @@
*/
package org.apache.vxquery.runtime.functions.json;
+import java.io.BufferedReader;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
import org.apache.commons.io.IOUtils;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.primitive.BooleanPointable;
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
@@ -34,14 +39,8 @@
import org.apache.vxquery.jsonparser.JSONParser;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.vxquery.runtime.functions.util.FunctionHelper;
import org.apache.vxquery.xmlparser.IParser;
-import java.io.BufferedReader;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
public class JnParseJsonScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -52,7 +51,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp2 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ObjectPointable op = (ObjectPointable) ObjectPointable.FACTORY.createPointable();
@@ -113,7 +112,7 @@
int items = 0;
try {
IParser parser = new JSONParser();
- String input = FunctionHelper.getStringFromPointable(stringp, bbis, di);
+ String input = stringp.toString();
InputStreamReader isr = new InputStreamReader(IOUtils.toInputStream(input));
items = parser.parse(new BufferedReader(isr), abvs);
} catch (IOException e) {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/KeysOrMembersScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/KeysOrMembersScalarEvaluatorFactory.java
index d664318..7e1a2ec 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/KeysOrMembersScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/KeysOrMembersScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class KeysOrMembersScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new KeysOrMembersScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnAccumulateScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnAccumulateScalarEvaluatorFactory.java
index fbbb997..7559509 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnAccumulateScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnAccumulateScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class LibjnAccumulateScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new LibjnAccumulateScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantArraysScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantArraysScalarEvaluatorFactory.java
index 5692664..f90c0f1 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantArraysScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantArraysScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class LibjnDescendantArraysScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new LibjnDescendantArraysScalarEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantObjectsScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantObjectsScalarEvaluatorFactory.java
index f905493..a65bb79 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantObjectsScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantObjectsScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class LibjnDescendantObjectsScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new LibjnDescendantObjectsScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantPairsScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantPairsScalarEvaluatorFactory.java
index b2bfa9d..23ac32c 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantPairsScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnDescendantPairsScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class LibjnDescendantPairsScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new LibjnDescendantPairsScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnFlattenScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnFlattenScalarEvaluatorFactory.java
index 2e3e901..0633d49 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnFlattenScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnFlattenScalarEvaluatorFactory.java
@@ -18,10 +18,10 @@
import java.io.IOException;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
@@ -44,7 +44,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final SequencePointable sp = (SequencePointable) SequencePointable.FACTORY.createPointable();
final SequenceBuilder sb = new SequenceBuilder();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnIntersectScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnIntersectScalarEvaluatorFactory.java
index a7d7b91..7899bc7 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnIntersectScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnIntersectScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class LibjnIntersectScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new LibjnIntersectScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnProjectScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnProjectScalarEvaluatorFactory.java
index 54f5fd0..b5d11c6 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnProjectScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnProjectScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class LibjnProjectScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new LibjnProjectScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnRemoveKeysScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnRemoveKeysScalarEvaluatorFactory.java
index 4563014..5918052 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnRemoveKeysScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnRemoveKeysScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class LibjnRemoveKeysScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new LibjnRemoveKeysScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnValuesScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnValuesScalarEvaluatorFactory.java
index 18bff0a..dba8801 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnValuesScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/LibjnValuesScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class LibjnValuesScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new LibjnValuesScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/ValueScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/ValueScalarEvaluatorFactory.java
index 7e754c2..405465c 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/ValueScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/json/ValueScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.json;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class ValueScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -32,7 +32,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new ValueScalarEvaluator(ctx, args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ArrayConstructorScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ArrayConstructorScalarEvaluatorFactory.java
index 7b0b379..56efb53 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ArrayConstructorScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ArrayConstructorScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.jsonitem;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class ArrayConstructorScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -31,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new ArrayConstructorScalarEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ObjectConstructorScalarEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ObjectConstructorScalarEvaluator.java
index 6cde2c7..8fa750c 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ObjectConstructorScalarEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ObjectConstructorScalarEvaluator.java
@@ -16,6 +16,8 @@
*/
package org.apache.vxquery.runtime.functions.jsonitem;
+import java.io.IOException;
+
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.data.std.api.IPointable;
@@ -31,8 +33,6 @@
import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
-import java.io.IOException;
-
public class ObjectConstructorScalarEvaluator extends AbstractObjectConstructorScalarEvaluator {
private IPointable vp;
private UTF8StringPointable sp;
@@ -51,7 +51,7 @@
@Override
protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
- TaggedValuePointable key, value, qmc, tvp;
+ TaggedValuePointable key, value, qmc;
ArrayBackedValueStorage abvsResult = abvsPool.takeOne();
ArrayBackedValueStorage abvsItem = abvsPool.takeOne();
try {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ObjectConstructorScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ObjectConstructorScalarEvaluatorFactory.java
index a030736..dab663d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ObjectConstructorScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/ObjectConstructorScalarEvaluatorFactory.java
@@ -16,13 +16,14 @@
*/
package org.apache.vxquery.runtime.functions.jsonitem;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class ObjectConstructorScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
public ObjectConstructorScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
super(args);
@@ -30,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new ObjectConstructorScalarEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/SimpleObjectUnionScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/SimpleObjectUnionScalarEvaluatorFactory.java
index 9ba4798..27e5808 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/SimpleObjectUnionScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/jsonitem/SimpleObjectUnionScalarEvaluatorFactory.java
@@ -16,13 +16,14 @@
*/
package org.apache.vxquery.runtime.functions.jsonitem;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class SimpleObjectUnionScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
public SimpleObjectUnionScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
super(args);
@@ -30,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new SimpleObjectUnionScalarEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/FnDataScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/FnDataScalarEvaluatorFactory.java
index 8ce5543..875580e 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/FnDataScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/FnDataScalarEvaluatorFactory.java
@@ -18,6 +18,12 @@
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
@@ -28,13 +34,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.AtomizeHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnDataScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -44,7 +43,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new FnDataScalarEvaluator(args);
}
@@ -80,6 +79,8 @@
}
sb.finish();
result.set(abvs);
+ } catch (SystemException e) {
+ throw e;
} catch (IOException e) {
throw new SystemException(ErrorCode.SYSE0001);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/JnSizeScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/JnSizeScalarEvaluatorFactory.java
index 9ad34fa..fee411b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/JnSizeScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/JnSizeScalarEvaluatorFactory.java
@@ -19,10 +19,10 @@
import java.io.DataOutput;
import java.io.IOException;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -43,7 +43,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new JnSizeScalarEvaluator(args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/AttributeNodeConstructorScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/AttributeNodeConstructorScalarEvaluatorFactory.java
index 4b1a5a1..4b80cf0 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/AttributeNodeConstructorScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/AttributeNodeConstructorScalarEvaluatorFactory.java
@@ -16,12 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.node;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class AttributeNodeConstructorScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -32,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AttributeNodeConstructorScalarEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/CommentNodeConstructorScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/CommentNodeConstructorScalarEvaluatorFactory.java
index 8bc3d32..1a74938 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/CommentNodeConstructorScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/CommentNodeConstructorScalarEvaluatorFactory.java
@@ -16,12 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.node;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class CommentNodeConstructorScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -32,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new CommentNodeConstructorScalarEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ElementNodeConstructorScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ElementNodeConstructorScalarEvaluatorFactory.java
index bf9c156..63de557 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ElementNodeConstructorScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ElementNodeConstructorScalarEvaluatorFactory.java
@@ -16,12 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.node;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class ElementNodeConstructorScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -32,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new ElementNodeConstructorScalarEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocAvailableScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocAvailableScalarEvaluatorFactory.java
index d4d305d..db908f6 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocAvailableScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocAvailableScalarEvaluatorFactory.java
@@ -18,6 +18,14 @@
import java.io.DataInputStream;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.dataflow.common.comm.util.ByteBufferInputStream;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -32,15 +40,6 @@
import org.apache.vxquery.xmlparser.TreeNodeIdProvider;
import org.apache.vxquery.xmlparser.XMLParser;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-import org.apache.hyracks.dataflow.common.comm.util.ByteBufferInputStream;
-
public class FnDocAvailableScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -50,7 +49,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocScalarEvaluatorFactory.java
index ecc8421..5f08a8e 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocScalarEvaluatorFactory.java
@@ -18,6 +18,14 @@
import java.io.DataInputStream;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.dataflow.common.comm.util.ByteBufferInputStream;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -32,15 +40,6 @@
import org.apache.vxquery.xmlparser.TreeNodeIdProvider;
import org.apache.vxquery.xmlparser.XMLParser;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-import org.apache.hyracks.dataflow.common.comm.util.ByteBufferInputStream;
-
public class FnDocScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -50,7 +49,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnNumberScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnNumberScalarEvaluatorFactory.java
index 80f0c42..dcf1708 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnNumberScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnNumberScalarEvaluatorFactory.java
@@ -19,6 +19,12 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -28,13 +34,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.cast.CastToDoubleOperation;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnNumberScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -44,7 +43,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
final CastToDoubleOperation castToDouble = new CastToDoubleOperation();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/IdFromNodeScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/IdFromNodeScalarEvaluatorFactory.java
index 64da253..43acc20 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/IdFromNodeScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/IdFromNodeScalarEvaluatorFactory.java
@@ -18,6 +18,12 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.accessors.nodes.NodeTreePointable;
@@ -29,13 +35,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class IdFromNodeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
final NodeTreePointable ntp = (NodeTreePointable) NodeTreePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/LocalIdFromNodeScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/LocalIdFromNodeScalarEvaluatorFactory.java
index 4042326..0403186 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/LocalIdFromNodeScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/LocalIdFromNodeScalarEvaluatorFactory.java
@@ -18,6 +18,12 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -28,13 +34,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class LocalIdFromNodeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -44,7 +43,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
final TypedPointables tp = new TypedPointables();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/OpNodeAfterEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/OpNodeAfterEvaluatorFactory.java
index 20ce65a..67a40f3 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/OpNodeAfterEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/OpNodeAfterEvaluatorFactory.java
@@ -17,12 +17,11 @@
package org.apache.vxquery.runtime.functions.node;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class OpNodeAfterEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -34,7 +33,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new OpNodeAfterEvaluator(args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/OpNodeBeforeEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/OpNodeBeforeEvaluatorFactory.java
index 0205a50..e2e793d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/OpNodeBeforeEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/OpNodeBeforeEvaluatorFactory.java
@@ -17,12 +17,11 @@
package org.apache.vxquery.runtime.functions.node;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class OpNodeBeforeEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -34,7 +33,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new OpNodeBeforeEvaluator(args);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/PINodeConstructorScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/PINodeConstructorScalarEvaluatorFactory.java
index c8d9ddd..e14b103 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/PINodeConstructorScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/PINodeConstructorScalarEvaluatorFactory.java
@@ -16,12 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.node;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class PINodeConstructorScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -32,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new PINodeConstructorScalarEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/TextNodeConstructorScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/TextNodeConstructorScalarEvaluatorFactory.java
index 1cbfb95..28e644a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/TextNodeConstructorScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/TextNodeConstructorScalarEvaluatorFactory.java
@@ -16,12 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.node;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class TextNodeConstructorScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -32,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new TextNodeConstructorScalarEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/TreeIdFromNodeScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/TreeIdFromNodeScalarEvaluatorFactory.java
index e83c5d6..988f373 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/TreeIdFromNodeScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/TreeIdFromNodeScalarEvaluatorFactory.java
@@ -18,6 +18,12 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.nodes.NodeTreePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -27,13 +33,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class TreeIdFromNodeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -43,7 +42,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
final NodeTreePointable ntp = (NodeTreePointable) NodeTreePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/nodeid/SortDistinctNodesAscOrAtomicsScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/nodeid/SortDistinctNodesAscOrAtomicsScalarEvaluatorFactory.java
index 09fa3b0..3c91d2d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/nodeid/SortDistinctNodesAscOrAtomicsScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/nodeid/SortDistinctNodesAscOrAtomicsScalarEvaluatorFactory.java
@@ -16,17 +16,16 @@
*/
package org.apache.vxquery.runtime.functions.nodeid;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class SortDistinctNodesAscOrAtomicsScalarEvaluatorFactory extends
AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -37,7 +36,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/numeric/AbstractNumericScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/numeric/AbstractNumericScalarEvaluatorFactory.java
index 1a6ccc9..9599dee 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/numeric/AbstractNumericScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/numeric/AbstractNumericScalarEvaluatorFactory.java
@@ -18,6 +18,13 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -29,14 +36,6 @@
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
import org.apache.vxquery.types.BuiltinTypeRegistry;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public abstract class AbstractNumericScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -46,7 +45,7 @@
@Override
protected AbstractTaggedValueArgumentScalarEvaluator createEvaluator(IHyracksTaskContext ctx,
- IScalarEvaluator[] args) throws AlgebricksException {
+ IScalarEvaluator[] args) throws HyracksDataException {
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
final AbstractNumericOperation aOp = createNumericOperation();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/numeric/FnRoundHalfToEvenScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/numeric/FnRoundHalfToEvenScalarEvaluatorFactory.java
index b811a10..7466703 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/numeric/FnRoundHalfToEvenScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/numeric/FnRoundHalfToEvenScalarEvaluatorFactory.java
@@ -19,6 +19,18 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.BytePointable;
+import org.apache.hyracks.data.std.primitive.DoublePointable;
+import org.apache.hyracks.data.std.primitive.FloatPointable;
+import org.apache.hyracks.data.std.primitive.IntegerPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.ShortPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
@@ -30,19 +42,6 @@
import org.apache.vxquery.runtime.functions.cast.CastToDecimalOperation;
import org.apache.vxquery.types.BuiltinTypeRegistry;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.BytePointable;
-import org.apache.hyracks.data.std.primitive.DoublePointable;
-import org.apache.hyracks.data.std.primitive.FloatPointable;
-import org.apache.hyracks.data.std.primitive.IntegerPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.primitive.ShortPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnRoundHalfToEvenScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -52,7 +51,7 @@
@Override
protected AbstractTaggedValueArgumentScalarEvaluator createEvaluator(IHyracksTaskContext ctx,
- IScalarEvaluator[] args) throws AlgebricksException {
+ IScalarEvaluator[] args) throws HyracksDataException {
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnLocalNameFromQNameScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnLocalNameFromQNameScalarEvaluatorFactory.java
index 560bc09..725826b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnLocalNameFromQNameScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnLocalNameFromQNameScalarEvaluatorFactory.java
@@ -18,6 +18,13 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
@@ -28,14 +35,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnLocalNameFromQNameScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final XSQNamePointable qnamep = (XSQNamePointable) XSQNamePointable.FACTORY.createPointable();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnNamespaceUriFromQNameScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnNamespaceUriFromQNameScalarEvaluatorFactory.java
index 7a8851b..b52e44d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnNamespaceUriFromQNameScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnNamespaceUriFromQNameScalarEvaluatorFactory.java
@@ -18,6 +18,13 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
@@ -28,14 +35,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnNamespaceUriFromQNameScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final XSQNamePointable qnamep = (XSQNamePointable) XSQNamePointable.FACTORY.createPointable();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnPrefixFromQNameScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnPrefixFromQNameScalarEvaluatorFactory.java
index 1a2820b..6304272 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnPrefixFromQNameScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnPrefixFromQNameScalarEvaluatorFactory.java
@@ -18,6 +18,13 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
@@ -28,14 +35,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnPrefixFromQNameScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final XSQNamePointable qnamep = (XSQNamePointable) XSQNamePointable.FACTORY.createPointable();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnQNameScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnQNameScalarEvaluatorFactory.java
index f35a125..ebc85c9 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnQNameScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/qname/FnQNameScalarEvaluatorFactory.java
@@ -18,6 +18,15 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -30,16 +39,9 @@
import org.apache.vxquery.runtime.functions.strings.UTF8StringCharacterIterator;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnQNameScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
+ private static final int STRING_EXPECTED_LENGTH = 300;
public FnQNameScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
super(args);
@@ -47,15 +49,15 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable paramURI = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable paramQName = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
- final ArrayBackedValueStorage abvsParamQName = new ArrayBackedValueStorage();
- final DataOutput dOutParamQName = abvsParamQName.getDataOutput();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
final TaggedValuePointable tvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+ final GrowableArray ga = new GrowableArray();
+ final UTF8StringBuilder sb = new UTF8StringBuilder();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
@@ -99,31 +101,41 @@
dOut.write(ValueTag.XS_QNAME_TAG);
dOut.write(paramURI.getByteArray(), paramURI.getStartOffset(), paramURI.getLength());
- // Separate the local name and prefix.
- abvsParamQName.reset();
+ // Prefix and Local Name
ICharacterIterator charIterator = new UTF8StringCharacterIterator(paramQName);
charIterator.reset();
- int c = 0;
- int prefixLength = 0;
+ int c;
+ boolean prefixFound = false;
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
while ((c = charIterator.next()) != ICharacterIterator.EOS_CHAR) {
if (c == Character.valueOf(':')) {
- prefixLength = abvsParamQName.getLength();
+ prefixFound = true;
+ break;
} else {
- FunctionHelper.writeChar((char) c, dOutParamQName);
+ FunctionHelper.writeChar((char) c, sb);
}
}
+ if (prefixFound) {
+ // Finish Prefix
+ sb.finish();
+ dOut.write(ga.getByteArray(), 0, ga.getLength());
- dOut.write((byte) ((prefixLength >>> 8) & 0xFF));
- dOut.write((byte) ((prefixLength >>> 0) & 0xFF));
- dOut.write(abvsParamQName.getByteArray(), abvsParamQName.getStartOffset(), prefixLength);
+ // Local Name
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
+ while ((c = charIterator.next()) != ICharacterIterator.EOS_CHAR) {
+ FunctionHelper.writeChar((char) c, sb);
+ }
+ } else {
+ // No Prefix
+ dOut.write((byte) 0);
+ // Local Name is in ga variable
+ }
+ sb.finish();
+ dOut.write(ga.getByteArray(), 0, ga.getLength());
- int localNameLength = abvsParamQName.getLength() - prefixLength;
- dOut.write((byte) ((localNameLength >>> 8) & 0xFF));
- dOut.write((byte) ((localNameLength >>> 0) & 0xFF));
- dOut.write(abvsParamQName.getByteArray(), abvsParamQName.getStartOffset() + prefixLength,
- localNameLength);
-
- result.set(abvs);
+ result.set(abvs.getByteArray(), abvs.getStartOffset(), abvs.getLength());
} catch (Exception e) {
throw new SystemException(ErrorCode.SYSE0001, e);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/ConcatenateScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/ConcatenateScalarEvaluatorFactory.java
index b74a2b7..fc29c2d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/ConcatenateScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/ConcatenateScalarEvaluatorFactory.java
@@ -18,6 +18,13 @@
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
@@ -27,14 +34,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class ConcatenateScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -44,7 +43,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final SequenceBuilder sb = new SequenceBuilder();
final SequencePointable seq = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnDistinctValuesScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnDistinctValuesScalarEvaluatorFactory.java
index cbc1d03..72b3d78 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnDistinctValuesScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnDistinctValuesScalarEvaluatorFactory.java
@@ -18,6 +18,14 @@
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -32,15 +40,6 @@
import org.apache.vxquery.runtime.functions.comparison.ValueEqComparisonOperation;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnDistinctValuesScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -50,7 +49,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final SequenceBuilder sb = new SequenceBuilder();
final SequencePointable seq = new SequencePointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnEmptyScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnEmptyScalarEvaluatorFactory.java
index 9fbdd4f..af09c86 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnEmptyScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnEmptyScalarEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.sequence;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class FnEmptyScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnExactlyOneScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnExactlyOneScalarEvaluatorFactory.java
index fb691c1..3cf07a8 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnExactlyOneScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnExactlyOneScalarEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.sequence;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class FnExactlyOneScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnExistsScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnExistsScalarEvaluatorFactory.java
index 7392773..348bf0d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnExistsScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnExistsScalarEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.sequence;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class FnExistsScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnIndexOfScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnIndexOfScalarEvaluatorFactory.java
index a99406b..d641851 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnIndexOfScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnIndexOfScalarEvaluatorFactory.java
@@ -19,6 +19,13 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -33,14 +40,6 @@
import org.apache.vxquery.runtime.functions.comparison.ValueEqComparisonOperation;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnIndexOfScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -50,7 +49,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
final DataOutput dOutInner = abvsInner.getDataOutput();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnInsertBeforeScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnInsertBeforeScalarEvaluatorFactory.java
index 9f78c9b..5761e71 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnInsertBeforeScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnInsertBeforeScalarEvaluatorFactory.java
@@ -18,6 +18,14 @@
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
@@ -27,15 +35,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnInsertBeforeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final SequenceBuilder sb = new SequenceBuilder();
final SequencePointable seq = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnOneOrMoreScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnOneOrMoreScalarEvaluatorFactory.java
index 24936c7..346f9c9 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnOneOrMoreScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnOneOrMoreScalarEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.sequence;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class FnOneOrMoreScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnRemoveScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnRemoveScalarEvaluatorFactory.java
index 72db5c4..8f36616 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnRemoveScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnRemoveScalarEvaluatorFactory.java
@@ -18,6 +18,14 @@
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
@@ -27,15 +35,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnRemoveScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final SequenceBuilder sb = new SequenceBuilder();
final SequencePointable seq = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnReverseScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnReverseScalarEvaluatorFactory.java
index cfd8cf3..6e04ba6 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnReverseScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnReverseScalarEvaluatorFactory.java
@@ -18,6 +18,13 @@
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
@@ -27,14 +34,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnReverseScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -44,7 +43,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final SequenceBuilder sb = new SequenceBuilder();
final SequencePointable seq = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnSubsequenceScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnSubsequenceScalarEvaluatorFactory.java
index 6c21169..5e690ab 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnSubsequenceScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnSubsequenceScalarEvaluatorFactory.java
@@ -18,6 +18,15 @@
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.DoublePointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
@@ -29,16 +38,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.numeric.FnRoundOperation;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.DoublePointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnSubsequenceScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -48,7 +47,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final SequenceBuilder sb = new SequenceBuilder();
final SequencePointable seq = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnUnorderedScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnUnorderedScalarEvaluatorFactory.java
index 19506ab..35ba052 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnUnorderedScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnUnorderedScalarEvaluatorFactory.java
@@ -16,17 +16,16 @@
*/
package org.apache.vxquery.runtime.functions.sequence;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class FnUnorderedScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -36,7 +35,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnZeroOrOneScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnZeroOrOneScalarEvaluatorFactory.java
index 0eb4a6a..791f956 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnZeroOrOneScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnZeroOrOneScalarEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.sequence;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class FnZeroOrOneScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/IterateUnnestingEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/IterateUnnestingEvaluatorFactory.java
index 0869179..1fbab4a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/IterateUnnestingEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/IterateUnnestingEvaluatorFactory.java
@@ -16,19 +16,18 @@
*/
package org.apache.vxquery.runtime.functions.sequence;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluator;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluator;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class IterateUnnestingEvaluatorFactory extends AbstractTaggedValueArgumentUnnestingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -38,14 +37,14 @@
@Override
protected IUnnestingEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
return new AbstractTaggedValueArgumentUnnestingEvaluator(args) {
private int index;
private int seqLength;
@Override
- public boolean step(IPointable result) throws AlgebricksException {
+ public boolean step(IPointable result) throws HyracksDataException {
TaggedValuePointable tvp = tvps[0];
if (tvp.getTag() != ValueTag.SEQUENCE_TAG) {
if (index == 0) {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/OpToScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/OpToScalarEvaluatorFactory.java
index 5ae76e8..6360d3d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/OpToScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/OpToScalarEvaluatorFactory.java
@@ -19,6 +19,13 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -28,14 +35,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class OpToScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
final DataOutput dOutInner = abvsInner.getDataOutput();
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 f3c04de..a8d9ab9 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
@@ -19,6 +19,13 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -28,14 +35,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentAggregateEvaluatorFactory;
import org.apache.vxquery.util.GrowableIntArray;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IAggregateEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class SequenceAggregateEvaluatorFactory extends AbstractTaggedValueArgumentAggregateEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -44,7 +43,7 @@
}
@Override
- protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws AlgebricksException {
+ protected IAggregateEvaluator createEvaluator(IScalarEvaluator[] args) throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final GrowableIntArray slots = new GrowableIntArray();
final ArrayBackedValueStorage dataArea = new ArrayBackedValueStorage();
@@ -52,25 +51,21 @@
final VoidPointable p = (VoidPointable) VoidPointable.FACTORY.createPointable();
return new AbstractTaggedValueArgumentAggregateEvaluator(args) {
@Override
- public void init() throws AlgebricksException {
+ public void init() throws HyracksDataException {
abvs.reset();
slots.clear();
dataArea.reset();
}
@Override
- public void finishPartial(IPointable result) throws AlgebricksException {
+ public void finishPartial(IPointable result) throws HyracksDataException {
finish(result);
}
@Override
- public void finish(IPointable result) throws AlgebricksException {
+ public void finish(IPointable result) throws HyracksDataException {
if (slots.getSize() != 1) {
- try {
- assembleResult(abvs, slots, dataArea);
- } catch (SystemException e) {
- throw new AlgebricksException(e);
- }
+ assembleResult(abvs, slots, dataArea);
result.set(abvs);
} else {
result.set(dataArea);
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/serialize/FnSerializeScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/serialize/FnSerializeScalarEvaluatorFactory.java
index a8025a9..194f1b1 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/serialize/FnSerializeScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/serialize/FnSerializeScalarEvaluatorFactory.java
@@ -18,14 +18,16 @@
import java.io.IOException;
import java.io.PrintStream;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.hyracks.data.std.util.ByteArrayAccessibleOutputStream;
+import org.apache.hyracks.data.std.util.GrowableArray;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.builders.atomic.VXQueryUTF8StringBuilder;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
@@ -34,7 +36,7 @@
import org.apache.vxquery.serializer.XMLSerializer;
public class FnSerializeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
-
+ private static final int STRING_EXPECTED_LENGTH = 300;
private static final long serialVersionUID = 1L;
public FnSerializeScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
@@ -43,25 +45,30 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final ByteArrayAccessibleOutputStream baaos = new ByteArrayAccessibleOutputStream();
final PrintStream ps = new PrintStream(baaos);
final XMLSerializer printer = new XMLSerializer();
+ final GrowableArray ga = new GrowableArray();
final DataOutput out = abvs.getDataOutput();
+
+ final VXQueryUTF8StringBuilder sb = new VXQueryUTF8StringBuilder();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
baaos.reset();
TaggedValuePointable tvp = args[0];
- printer.printTaggedValuePointable(ps, tvp);
abvs.reset();
try {
out.write(ValueTag.XS_STRING_TAG);
- out.write((byte) ((baaos.size() >>> 8) & 0xFF));
- out.write((byte) ((baaos.size() >>> 0) & 0xFF));
- out.write(baaos.getByteArray(), 0, baaos.size());
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
+ printer.printTaggedValuePointable(ps, tvp);
+ sb.appendUtf8Bytes(baaos.getByteArray(), 0, baaos.size());
+ sb.finish();
+ out.write(ga.getByteArray(), 0, ga.getLength());
} catch (IOException e) {
throw new SystemException(ErrorCode.XPTY0004);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluatorFactory.java
index 8ce8c0b..10f3896 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluatorFactory.java
@@ -16,12 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.step;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class AttributePathStepScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -32,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AttributePathStepScalarEvaluator(args, ctx);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java
index 4162bee..ae7dd72 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java
@@ -18,18 +18,16 @@
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class ChildPathStepScalarEvaluator extends AbstractTaggedValueArgumentScalarEvaluator {
private final SequenceBuilder seqb = new SequenceBuilder();
@@ -50,12 +48,8 @@
childPathStep.init(args);
seqAbvs.reset();
seqb.reset(seqAbvs);
- try {
- while (childPathStep.step(itemTvp)) {
- seqb.addItem(itemTvp);
- }
- } catch (AlgebricksException e) {
- throw new SystemException(ErrorCode.SYSE0001, e);
+ while (childPathStep.step(itemTvp)) {
+ seqb.addItem(itemTvp);
}
seqb.finish();
result.set(seqAbvs);
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluatorFactory.java
index f10cdf3..51a5653 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluatorFactory.java
@@ -16,12 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.step;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class ChildPathStepScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -32,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new ChildPathStepScalarEvaluator(args, ctx);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnesting.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnesting.java
index 74ec91b..9026de3 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnesting.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnesting.java
@@ -18,6 +18,11 @@
import java.io.IOException;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.IntegerPointable;
import org.apache.vxquery.datamodel.accessors.PointablePool;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -27,11 +32,6 @@
import org.apache.vxquery.runtime.functions.step.NodeTestFilter.INodeFilter;
import org.apache.vxquery.types.SequenceType;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.IntegerPointable;
-
public class ChildPathStepUnnesting extends AbstractForwardAxisPathStep {
private int indexSeqArgs;
private int seqArgsLength;
@@ -49,7 +49,7 @@
super(ctx, pp);
}
- protected void init(TaggedValuePointable[] args) throws SystemException {
+ protected void init(TaggedValuePointable[] args) throws HyracksDataException {
indexSeqArgs = 0;
indexSequence = 0;
@@ -74,13 +74,13 @@
}
}
- public boolean step(IPointable result) throws AlgebricksException {
+ public boolean step(IPointable result) throws HyracksDataException {
if (seqArgsLength > 0) {
while (indexSeqArgs < seqArgsLength) {
seqNtp.getEntry(indexSeqArgs, tvpNtp);
if (tvpNtp.getTag() != ValueTag.NODE_TREE_TAG) {
String description = ErrorCode.SYSE0001 + ": " + ErrorCode.SYSE0001.getDescription();
- throw new AlgebricksException(description);
+ throw new HyracksDataException(description);
}
tvpNtp.getValue(ntp);
ntp.getRootNode(tvpStep);
@@ -113,7 +113,7 @@
* Could not save result.
*/
protected boolean stepNodeTree(TaggedValuePointable tvpInput, int level, IPointable result)
- throws AlgebricksException {
+ throws HyracksDataException {
getSequence(tvpInput, seqItem);
int seqLength = seqItem.getEntryCount();
while (indexSequence < seqLength) {
@@ -128,7 +128,7 @@
return true;
} catch (IOException e) {
String description = ErrorCode.SYSE0001 + ": " + ErrorCode.SYSE0001.getDescription();
- throw new AlgebricksException(description);
+ throw new HyracksDataException(description);
}
}
++indexSequence;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluator.java
index b5d0aec..8bd7f2d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluator.java
@@ -16,14 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.step;
-import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.exceptions.SystemException;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluator;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluator;
public class ChildPathStepUnnestingEvaluator extends AbstractTaggedValueArgumentUnnestingEvaluator {
final ChildPathStepUnnesting childPathStep;
@@ -33,12 +31,12 @@
childPathStep = new ChildPathStepUnnesting(ctx, ppool);
}
- public boolean step(IPointable result) throws AlgebricksException {
+ public boolean step(IPointable result) throws HyracksDataException {
return childPathStep.step(result);
}
@Override
- protected void init(TaggedValuePointable[] args) throws SystemException {
+ protected void init(TaggedValuePointable[] args) throws HyracksDataException {
childPathStep.init(args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java
index db7efc5..54de2eb 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java
@@ -16,13 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.step;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluator;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluatorFactory;
public class ChildPathStepUnnestingEvaluatorFactory extends AbstractTaggedValueArgumentUnnestingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -33,7 +32,7 @@
@Override
protected IUnnestingEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new ChildPathStepUnnestingEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepScalarEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepScalarEvaluator.java
index 1e48168..77af2da 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepScalarEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepScalarEvaluator.java
@@ -18,16 +18,14 @@
import java.io.IOException;
-import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
-import org.apache.vxquery.exceptions.ErrorCode;
-import org.apache.vxquery.exceptions.SystemException;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
+import org.apache.vxquery.exceptions.ErrorCode;
+import org.apache.vxquery.exceptions.SystemException;
public class DescendantOrSelfPathStepScalarEvaluator extends AbstractDescendantPathStepScalarEvaluator {
private final SequenceBuilder seqb = new SequenceBuilder();
@@ -49,12 +47,8 @@
descendentOrSelfPathStep.init(args);
seqAbvs.reset();
seqb.reset(seqAbvs);
- try {
- while (descendentOrSelfPathStep.step(itemTvp)) {
- seqb.addItem(itemTvp);
- }
- } catch (AlgebricksException e) {
- throw new SystemException(ErrorCode.SYSE0001, e);
+ while (descendentOrSelfPathStep.step(itemTvp)) {
+ seqb.addItem(itemTvp);
}
seqb.finish();
result.set(seqAbvs);
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepScalarEvaluatorFactory.java
index d7df395..a909fca 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepScalarEvaluatorFactory.java
@@ -16,12 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.step;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class DescendantOrSelfPathStepScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -32,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new DescendantOrSelfPathStepScalarEvaluator(args, ctx);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnesting.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnesting.java
index 37cd400..305e26d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnesting.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnesting.java
@@ -20,6 +20,11 @@
import java.util.ArrayList;
import java.util.List;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.IntegerPointable;
import org.apache.vxquery.datamodel.accessors.PointablePool;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -29,11 +34,6 @@
import org.apache.vxquery.runtime.functions.step.NodeTestFilter.INodeFilter;
import org.apache.vxquery.types.SequenceType;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.IntegerPointable;
-
public class DescendantOrSelfPathStepUnnesting extends AbstractForwardAxisPathStep {
private boolean testSelf;
private boolean returnSelf;
@@ -86,13 +86,13 @@
}
}
- public boolean step(IPointable result) throws AlgebricksException {
+ public boolean step(IPointable result) throws HyracksDataException {
if (seqArgsLength > 0) {
while (indexSeqArgs < seqArgsLength) {
seqNtp.getEntry(indexSeqArgs, tvpNtp);
if (tvpNtp.getTag() != ValueTag.NODE_TREE_TAG) {
String description = ErrorCode.SYSE0001 + ": " + ErrorCode.SYSE0001.getDescription();
- throw new AlgebricksException(description);
+ throw new HyracksDataException(description);
}
tvpNtp.getValue(ntp);
ntp.getRootNode(tvpStep);
@@ -113,7 +113,7 @@
return false;
}
- private boolean processNodeTree(TaggedValuePointable rootTVP, IPointable result) throws AlgebricksException {
+ private boolean processNodeTree(TaggedValuePointable rootTVP, IPointable result) throws HyracksDataException {
if (testSelf && returnSelf) {
returnSelf = false;
tvpItem.set(rootTVP);
@@ -124,7 +124,7 @@
}
} catch (IOException e) {
String description = ErrorCode.SYSE0001 + ": " + ErrorCode.SYSE0001.getDescription();
- throw new AlgebricksException(description);
+ throw new HyracksDataException(description);
}
}
// Solve for descendants.
@@ -145,7 +145,7 @@
* Could not save result.
*/
protected boolean stepNodeTree(TaggedValuePointable tvpInput, int level, IPointable result)
- throws AlgebricksException {
+ throws HyracksDataException {
// Set up next level tracking.
if (level + 1 > indexSequence.size()) {
indexSequence.add(0);
@@ -186,7 +186,7 @@
return false;
} catch (IOException e) {
String description = ErrorCode.SYSE0001 + ": " + ErrorCode.SYSE0001.getDescription();
- throw new AlgebricksException(description);
+ throw new HyracksDataException(description);
} finally {
pp.giveBack(seqItem);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnestingEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnestingEvaluator.java
index ecba5db..da55a82 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnestingEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnestingEvaluator.java
@@ -16,14 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.step;
-import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.exceptions.SystemException;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluator;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluator;
public class DescendantOrSelfPathStepUnnestingEvaluator extends AbstractTaggedValueArgumentUnnestingEvaluator {
final DescendantOrSelfPathStepUnnesting descendantOrSelfPathStep;
@@ -33,12 +31,12 @@
descendantOrSelfPathStep = new DescendantOrSelfPathStepUnnesting(ctx, ppool, true);
}
- public boolean step(IPointable result) throws AlgebricksException {
+ public boolean step(IPointable result) throws HyracksDataException {
return descendantOrSelfPathStep.step(result);
}
@Override
- protected void init(TaggedValuePointable[] args) throws SystemException {
+ protected void init(TaggedValuePointable[] args) throws HyracksDataException {
descendantOrSelfPathStep.init(args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnestingEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnestingEvaluatorFactory.java
index 947745f..9e11a02 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnestingEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnestingEvaluatorFactory.java
@@ -16,13 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.step;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluator;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluatorFactory;
public class DescendantOrSelfPathStepUnnestingEvaluatorFactory extends
AbstractTaggedValueArgumentUnnestingEvaluatorFactory {
@@ -34,7 +33,7 @@
@Override
protected IUnnestingEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new DescendantOrSelfPathStepUnnestingEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepScalarEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepScalarEvaluator.java
index cfa9cc6..2712d46 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepScalarEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepScalarEvaluator.java
@@ -18,16 +18,14 @@
import java.io.IOException;
-import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
-import org.apache.vxquery.exceptions.ErrorCode;
-import org.apache.vxquery.exceptions.SystemException;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
+import org.apache.vxquery.exceptions.ErrorCode;
+import org.apache.vxquery.exceptions.SystemException;
public class DescendantPathStepScalarEvaluator extends AbstractDescendantPathStepScalarEvaluator {
private final SequenceBuilder seqb = new SequenceBuilder();
@@ -49,12 +47,8 @@
descendentOrSelfPathStep.init(args);
seqAbvs.reset();
seqb.reset(seqAbvs);
- try {
- while (descendentOrSelfPathStep.step(itemTvp)) {
- seqb.addItem(itemTvp);
- }
- } catch (AlgebricksException e) {
- throw new SystemException(ErrorCode.SYSE0001, e);
+ while (descendentOrSelfPathStep.step(itemTvp)) {
+ seqb.addItem(itemTvp);
}
seqb.finish();
result.set(seqAbvs);
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepScalarEvaluatorFactory.java
index f0b38d6..82f46bd 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepScalarEvaluatorFactory.java
@@ -16,12 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.step;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class DescendantPathStepScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -32,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new DescendantOrSelfPathStepScalarEvaluator(args, ctx);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepUnnestingEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepUnnestingEvaluator.java
index 189e4ad..320a79b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepUnnestingEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepUnnestingEvaluator.java
@@ -16,15 +16,14 @@
*/
package org.apache.vxquery.runtime.functions.step;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluator;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class DescendantPathStepUnnestingEvaluator extends AbstractTaggedValueArgumentUnnestingEvaluator {
final DescendantOrSelfPathStepUnnesting descendantPathStep;
@@ -33,7 +32,7 @@
descendantPathStep = new DescendantOrSelfPathStepUnnesting(ctx, ppool, false);
}
- public boolean step(IPointable result) throws AlgebricksException {
+ public boolean step(IPointable result) throws HyracksDataException {
return descendantPathStep.step(result);
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepUnnestingEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepUnnestingEvaluatorFactory.java
index f6d0c49..c57a05d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepUnnestingEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepUnnestingEvaluatorFactory.java
@@ -16,13 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.step;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluator;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluatorFactory;
public class DescendantPathStepUnnestingEvaluatorFactory extends AbstractTaggedValueArgumentUnnestingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -33,7 +32,7 @@
@Override
protected IUnnestingEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new DescendantPathStepUnnestingEvaluator(ctx, args);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/NodeTestFilter.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/NodeTestFilter.java
index 7b35e29..d74c668 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/NodeTestFilter.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/NodeTestFilter.java
@@ -16,6 +16,7 @@
*/
package org.apache.vxquery.runtime.functions.step;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.atomic.CodedQNamePointable;
import org.apache.vxquery.datamodel.accessors.nodes.AttributeNodePointable;
@@ -28,10 +29,6 @@
import org.apache.vxquery.types.NodeType;
import org.apache.vxquery.types.SequenceType;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-
public class NodeTestFilter {
public static INodeFilter getNodeTestFilter(SequenceType sType) {
@@ -53,7 +50,7 @@
if (localName != null) {
localp.set(localName, 0, localName.length);
}
- final IPointable temp = VoidPointable.FACTORY.createPointable();
+ final UTF8StringPointable temp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final AttributeNodePointable anp = (AttributeNodePointable) AttributeNodePointable.FACTORY
.createPointable();
final CodedQNamePointable cqp = (CodedQNamePointable) CodedQNamePointable.FACTORY.createPointable();
@@ -116,7 +113,7 @@
if (localName != null) {
localp.set(localName, 0, localName.length);
}
- final IPointable temp = VoidPointable.FACTORY.createPointable();
+ final UTF8StringPointable temp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ElementNodePointable enp = (ElementNodePointable) ElementNodePointable.FACTORY.createPointable();
final CodedQNamePointable cqp = (CodedQNamePointable) CodedQNamePointable.FACTORY.createPointable();
filter = new INodeFilter() {
@@ -162,7 +159,7 @@
}
};
break;
-
+
case ANY:
default:
filter = new INodeFilter() {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/SelfPathStepScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/SelfPathStepScalarEvaluatorFactory.java
index ab6acad..af7e627 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/SelfPathStepScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/SelfPathStepScalarEvaluatorFactory.java
@@ -16,12 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.step;
-import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
public class SelfPathStepScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -32,7 +31,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new SelfPathStepScalarEvaluator(args, ctx);
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/AbstractCharacterIteratorCopyingEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/AbstractCharacterIteratorCopyingEvaluator.java
index ef5511b..19b6e00 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/AbstractCharacterIteratorCopyingEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/AbstractCharacterIteratorCopyingEvaluator.java
@@ -19,6 +19,11 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.exceptions.ErrorCode;
@@ -26,11 +31,10 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public abstract class AbstractCharacterIteratorCopyingEvaluator extends AbstractTaggedValueArgumentScalarEvaluator {
+ private static final int STRING_EXPECTED_LENGTH = 300;
+ private final GrowableArray ga = new GrowableArray();
+ private final UTF8StringBuilder sb = new UTF8StringBuilder();
private final ICharacterIterator charIterator;
private final ArrayBackedValueStorage abvs;
@@ -46,22 +50,20 @@
abvs.reset();
charIterator.reset();
try {
- // Byte Format: Type (1 byte) + String Length (2 bytes) + String.
+ // Byte Format: Type (1 byte) + String Length (X bytes) + String.
DataOutput out = abvs.getDataOutput();
out.write(ValueTag.XS_STRING_TAG);
- // Default values for the length and update later
- out.write(0);
- out.write(0);
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
int c;
while (ICharacterIterator.EOS_CHAR != (c = charIterator.next())) {
- FunctionHelper.writeChar((char) c, out);
+ FunctionHelper.writeChar((char) c, sb);
}
- // Update the full length string in the byte array.
- abvs.getByteArray()[1] = (byte) (((abvs.getLength() - 3) >>> 8) & 0xFF);
- abvs.getByteArray()[2] = (byte) (((abvs.getLength() - 3) >>> 0) & 0xFF);
+ sb.finish();
+ out.write(ga.getByteArray(), 0, ga.getLength());
result.set(abvs.getByteArray(), abvs.getStartOffset(), abvs.getLength());
} catch (IOException e) {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/AbstractTranscodingCharacterIterator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/AbstractTranscodingCharacterIterator.java
index 35fc4fa..c362875 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/AbstractTranscodingCharacterIterator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/AbstractTranscodingCharacterIterator.java
@@ -23,12 +23,14 @@
this.in = in;
}
- final public char next() {
+ @Override
+ public final char next() {
int c = in.next();
- return c != ICharacterIterator.EOS_CHAR ? transcodeCharacter((char) c) : (char) ICharacterIterator.EOS_CHAR;
+ return c != ICharacterIterator.EOS_CHAR ? transcodeCharacter((char) c) : ICharacterIterator.EOS_CHAR;
}
- final public void reset() {
+ @Override
+ public final void reset() {
in.reset();
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCodepointEqualEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCodepointEqualEvaluatorFactory.java
index 3782942..ec53f5d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCodepointEqualEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCodepointEqualEvaluatorFactory.java
@@ -16,6 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -26,13 +32,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnCodepointEqualEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -42,7 +41,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp1 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp2 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCodepointsToStringEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCodepointsToStringEvaluatorFactory.java
index be74646..fae84a1 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCodepointsToStringEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCodepointsToStringEvaluatorFactory.java
@@ -19,6 +19,16 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -28,17 +38,9 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnCodepointsToStringEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
+ private static final int STRING_EXPECTED_LENGTH = 300;
public FnCodepointsToStringEvaluatorFactory(IScalarEvaluatorFactory[] args) {
super(args);
@@ -46,25 +48,26 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final TaggedValuePointable tvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
final LongPointable longp = (LongPointable) LongPointable.FACTORY.createPointable();
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final VoidPointable p = (VoidPointable) VoidPointable.FACTORY.createPointable();
+ final GrowableArray ga = new GrowableArray();
+ final UTF8StringBuilder sb = new UTF8StringBuilder();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
TaggedValuePointable tvp1 = args[0];
try {
- // Byte Format: Type (1 byte) + String Length (2 bytes) + String.
+ // Byte Format: Type (1 byte) + String Length (X bytes) + String.
DataOutput out = abvs.getDataOutput();
out.write(ValueTag.XS_STRING_TAG);
- // Default values for the length and update later
- out.write(0);
- out.write(0);
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
// Only accept sequences of integers or an integer as input.
if (tvp1.getTag() == ValueTag.SEQUENCE_TAG) {
@@ -76,21 +79,20 @@
if (!Character.isDefined(longp.intValue())) {
throw new SystemException(ErrorCode.FOCH0001);
}
- FunctionHelper.writeChar((char) longp.intValue(), out);
+ FunctionHelper.writeChar((char) longp.intValue(), sb);
}
} else if (tvp1.getTag() == ValueTag.XS_INTEGER_TAG) {
tvp1.getValue(longp);
if (!Character.isDefined(longp.intValue())) {
throw new SystemException(ErrorCode.FOCH0001);
}
- FunctionHelper.writeChar((char) longp.intValue(), out);
+ FunctionHelper.writeChar((char) longp.intValue(), sb);
} else {
throw new SystemException(ErrorCode.FORG0006);
}
- // Update the full length string in the byte array.
- abvs.getByteArray()[1] = (byte) (((abvs.getLength() - 3) >>> 8) & 0xFF);
- abvs.getByteArray()[2] = (byte) (((abvs.getLength() - 3) >>> 0) & 0xFF);
+ sb.finish();
+ out.write(ga.getByteArray(), 0, ga.getLength());
result.set(abvs.getByteArray(), abvs.getStartOffset(), abvs.getLength());
} catch (IOException e) {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCompareEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCompareEvaluatorFactory.java
index 76e80b0..067e9e0 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCompareEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCompareEvaluatorFactory.java
@@ -16,6 +16,13 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -26,14 +33,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnCompareEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -43,7 +42,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp1 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp2 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp3 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnConcatEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnConcatEvaluatorFactory.java
index 7eef348..c77e0f4 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnConcatEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnConcatEvaluatorFactory.java
@@ -19,6 +19,15 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -29,14 +38,6 @@
import org.apache.vxquery.runtime.functions.cast.CastToStringOperation;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnConcatEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -46,13 +47,15 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
final DataOutput dOutInner = abvsInner.getDataOutput();
final CastToStringOperation castToString = new CastToStringOperation();
final TypedPointables tp = new TypedPointables();
+ final UTF8StringBuilder builder = new UTF8StringBuilder();
+ final GrowableArray ga = new GrowableArray();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
@@ -60,13 +63,9 @@
abvs.reset();
try {
- // Byte Format: Type (1 byte) + String Byte Length (2 bytes) + String.
- DataOutput out = abvs.getDataOutput();
- out.write(ValueTag.XS_STRING_TAG);
-
- // Default values for the length and update later
- out.write(0xFF);
- out.write(0xFF);
+ // append each string to abvsBuilder
+ ga.reset();
+ builder.reset(ga, 300);
for (int i = 0; i < args.length; i++) {
TaggedValuePointable tvp = args[i];
@@ -196,6 +195,7 @@
throw new SystemException(ErrorCode.XPTY0004);
}
+ // Remove tag.
stringp.set(abvsInner.getByteArray(), abvsInner.getStartOffset() + 1,
abvsInner.getLength() - 1);
} catch (IOException e) {
@@ -206,15 +206,16 @@
}
// If its an empty string do nothing.
- if (stringp.getUTFLength() > 0) {
- out.write(stringp.getByteArray(), stringp.getStartOffset() + 2, stringp.getUTFLength());
+ if (stringp.getStringLength() > 0) {
+ builder.appendUtf8StringPointable(stringp);
}
}
+ builder.finish();
- // Update the full length string in the byte array.
- abvs.getByteArray()[1] = (byte) (((abvs.getLength() - 3) >>> 8) & 0xFF);
- abvs.getByteArray()[2] = (byte) (((abvs.getLength() - 3) >>> 0) & 0xFF);
-
+ // Add tag to string and write out.
+ DataOutput out = abvs.getDataOutput();
+ out.write(ValueTag.XS_STRING_TAG);
+ out.write(ga.getByteArray(), 0, ga.getLength());
result.set(abvs.getByteArray(), abvs.getStartOffset(), abvs.getLength());
} catch (IOException e) {
throw new SystemException(ErrorCode.SYSE0001, e);
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnContainsEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnContainsEvaluatorFactory.java
index 977ed19..018362a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnContainsEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnContainsEvaluatorFactory.java
@@ -16,6 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -26,13 +32,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnContainsEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -42,7 +41,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp1 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp2 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp3 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
@@ -102,7 +101,7 @@
// TODO use the third value as collation
// Only need to run comparisons if they both have a non empty string.
- if (stringp1.getLength() > 2 && stringp2.getLength() > 2) {
+ if (stringp1.getUTF8Length() > 0 && stringp2.getUTF8Length() > 0) {
int c2 = charIterator2.next();
while (true) {
int c1 = charIterator1.next();
@@ -125,7 +124,7 @@
break;
}
}
- } else if (stringp2.getLength() == 2) {
+ } else if (stringp2.getUTF8Length() == 0) {
booleanResult[1] = 1;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnEndsWithEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnEndsWithEvaluatorFactory.java
index 81062ed..5f50f8b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnEndsWithEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnEndsWithEvaluatorFactory.java
@@ -16,6 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -26,13 +32,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnEndsWithEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -42,7 +41,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp1 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp2 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp3 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnLowerCaseEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnLowerCaseEvaluatorFactory.java
index cf431cd..7a0914f 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnLowerCaseEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnLowerCaseEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnLowerCaseEvaluatorFactory extends AbstractCharacterIteratorCopyingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ICharacterIterator charIterator = new LowerCaseCharacterIterator(new UTF8StringCharacterIterator(stringp));
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStartsWithEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStartsWithEvaluatorFactory.java
index 7d0cb7a..db9404a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStartsWithEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStartsWithEvaluatorFactory.java
@@ -16,6 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -26,13 +32,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnStartsWithEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -42,7 +41,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp1 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp2 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp3 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
@@ -105,7 +104,7 @@
// TODO use the third value as collation
// Only need to run comparisons if they both have a non empty string.
- if (stringp1.getLength() > 2 && stringp2.getLength() > 2) {
+ if (stringp1.getUTF8Length() > 0 && stringp2.getUTF8Length() > 0) {
int c1;
int c2;
while (true) {
@@ -121,7 +120,7 @@
break;
}
}
- } else if (stringp2.getLength() == 2) {
+ } else if (stringp2.getUTF8Length() == 0) {
booleanResult[1] = 1;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringJoinEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringJoinEvaluatorFactory.java
index 576b409..e2dbbee 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringJoinEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringJoinEvaluatorFactory.java
@@ -19,8 +19,17 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.builders.atomic.VXQueryUTF8StringBuilder;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
@@ -28,16 +37,9 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnStringJoinEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
+ private static final int STRING_EXPECTED_LENGTH = 300;
public FnStringJoinEvaluatorFactory(IScalarEvaluatorFactory[] args) {
super(args);
@@ -45,12 +47,14 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final TaggedValuePointable tvp = new TaggedValuePointable();
final UTF8StringPointable stringp1 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp2 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final SequencePointable seq = (SequencePointable) SequencePointable.FACTORY.createPointable();
+ final GrowableArray ga = new GrowableArray();
+ final VXQueryUTF8StringBuilder sb = new VXQueryUTF8StringBuilder();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
@@ -90,16 +94,15 @@
out.write(ValueTag.XS_STRING_TAG);
// Default values for the length and update later
- out.write(0);
- out.write(0);
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
int seqLen = seq.getEntryCount();
if (seqLen != 0) {
for (int j = 0; j < seqLen; ++j) {
// Add separator if more than one value.
if (j > 0) {
- out.write(stringp2.getByteArray(), stringp2.getStartOffset() + 2,
- stringp2.getUTFLength());
+ sb.appendUtf8StringPointable(stringp2);
}
// Get string from sequence.
seq.getEntry(j, tvp);
@@ -107,13 +110,11 @@
throw new SystemException(ErrorCode.FORG0006);
}
tvp.getValue(stringp1);
- out.write(stringp1.getByteArray(), stringp1.getStartOffset() + 2, stringp1.getUTFLength());
+ sb.appendUtf8StringPointable(stringp1);
}
-
- // Update the full length string in the byte array.
- abvs.getByteArray()[1] = (byte) (((abvs.getLength() - 3) >>> 8) & 0xFF);
- abvs.getByteArray()[2] = (byte) (((abvs.getLength() - 3) >>> 0) & 0xFF);
}
+ sb.finish();
+ out.write(ga.getByteArray(), 0, ga.getLength());
result.set(abvs.getByteArray(), abvs.getStartOffset(), abvs.getLength());
} catch (IOException e) {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringLengthEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringLengthEvaluatorFactory.java
index 298b45c..363a73d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringLengthEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringLengthEvaluatorFactory.java
@@ -18,6 +18,13 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -28,14 +35,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnStringLengthEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringScalarEvaluatorFactory.java
index 27b5463..2eb927b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringScalarEvaluatorFactory.java
@@ -19,6 +19,13 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -30,14 +37,6 @@
import org.apache.vxquery.runtime.functions.cast.CastToStringOperation;
import org.apache.vxquery.runtime.functions.util.AtomizeHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnStringScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -47,7 +46,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
final CastToStringOperation castToString = new CastToStringOperation();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringToCodepointsEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringToCodepointsEvaluatorFactory.java
index f77d869..c95a7ec 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringToCodepointsEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringToCodepointsEvaluatorFactory.java
@@ -19,6 +19,13 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
@@ -30,14 +37,6 @@
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnStringToCodepointsEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -47,7 +46,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringCharacterIterator charIterator = new UTF8StringCharacterIterator(stringp);
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
@@ -75,7 +74,7 @@
throw new SystemException(ErrorCode.FORG0006);
}
tvp1.getValue(stringp);
- if (stringp.getLength() == 2) {
+ if (stringp.getUTF8Length() == 0) {
XDMConstants.setEmptySequence(result);
return;
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringAfterEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringAfterEvaluatorFactory.java
index f069152..ca4143d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringAfterEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringAfterEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnSubstringAfterEvaluatorFactory extends AbstractCharacterIteratorCopyingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp1 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp2 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp3 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringBeforeEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringBeforeEvaluatorFactory.java
index fb8e937..acc931e 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringBeforeEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringBeforeEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnSubstringBeforeEvaluatorFactory extends AbstractCharacterIteratorCopyingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp1 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp2 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp3 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringEvaluatorFactory.java
index 0691a80..d04bcfe 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringEvaluatorFactory.java
@@ -16,6 +16,14 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.primitive.DoublePointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,15 +32,6 @@
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.primitive.DoublePointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnSubstringEvaluatorFactory extends AbstractCharacterIteratorCopyingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -57,7 +56,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final DoublePointable doublep = (DoublePointable) DoublePointable.FACTORY.createPointable();
final LongPointable longp = (LongPointable) LongPointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnUpperCaseEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnUpperCaseEvaluatorFactory.java
index 08492ff..c80fb48 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnUpperCaseEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnUpperCaseEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnUpperCaseEvaluatorFactory extends AbstractCharacterIteratorCopyingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ICharacterIterator charIterator = new UpperCaseCharacterIterator(new UTF8StringCharacterIterator(stringp));
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/UTF8StringCharacterIterator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/UTF8StringCharacterIterator.java
index c170384..5b66bbf 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/UTF8StringCharacterIterator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/UTF8StringCharacterIterator.java
@@ -45,13 +45,7 @@
LOGGER.finer(" UTF8StringCharacterIterator char[" + byteOffset + "] = " + c);
}
// Increment cursor
- if ((c >= 0x0001) && (c <= 0x007F)) {
- ++byteOffset;
- } else if (c > 0x07FF) {
- byteOffset += 3;
- } else {
- byteOffset += 2;
- }
+ byteOffset += stringp.charSize(byteOffset);
}
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.finer(" END UTF8StringCharacterIterator char[" + byteOffset + "] = " + c);
@@ -61,7 +55,7 @@
@Override
public void reset() {
- byteOffset = 2;
+ byteOffset = stringp.getMetaDataLength();
}
public void setByteOffset(int byteOffset) {
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/trace/FnTraceScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/trace/FnTraceScalarEvaluatorFactory.java
index a202dc5..9159010 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/trace/FnTraceScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/trace/FnTraceScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.trace;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -39,7 +39,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/InstanceOfScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/InstanceOfScalarEvaluatorFactory.java
index d9c5796..fc8b478 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/InstanceOfScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/InstanceOfScalarEvaluatorFactory.java
@@ -16,17 +16,16 @@
*/
package org.apache.vxquery.runtime.functions.type;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.XDMConstants;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.types.SequenceType;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class InstanceOfScalarEvaluatorFactory extends AbstractTypeScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -36,7 +35,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTypeScalarEvaluator(args, ctx) {
private final SequenceTypeMatcher matcher = new SequenceTypeMatcher();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/PromoteScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/PromoteScalarEvaluatorFactory.java
index c1bb24e..f2088d7 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/PromoteScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/PromoteScalarEvaluatorFactory.java
@@ -18,6 +18,12 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -30,13 +36,6 @@
import org.apache.vxquery.types.BuiltinTypeRegistry;
import org.apache.vxquery.types.SequenceType;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class PromoteScalarEvaluatorFactory extends AbstractTypeScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -46,7 +45,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTypeScalarEvaluator(args, ctx) {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/TreatScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/TreatScalarEvaluatorFactory.java
index 4913c71..0863de2 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/TreatScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/TreatScalarEvaluatorFactory.java
@@ -16,17 +16,16 @@
*/
package org.apache.vxquery.runtime.functions.type;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.types.SequenceType;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-
public class TreatScalarEvaluatorFactory extends AbstractTypeScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -36,7 +35,7 @@
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTypeScalarEvaluator(args, ctx) {
private final SequenceTypeMatcher matcher = new SequenceTypeMatcher();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/unary/AbstractNumericUnaryScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/unary/AbstractNumericUnaryScalarEvaluatorFactory.java
index bd8c360..35b2d24 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/unary/AbstractNumericUnaryScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/unary/AbstractNumericUnaryScalarEvaluatorFactory.java
@@ -18,6 +18,13 @@
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -28,14 +35,6 @@
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
import org.apache.vxquery.types.BuiltinTypeRegistry;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public abstract class AbstractNumericUnaryScalarEvaluatorFactory extends
AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -46,7 +45,7 @@
@Override
protected AbstractTaggedValueArgumentScalarEvaluator createEvaluator(IHyracksTaskContext ctx,
- IScalarEvaluator[] args) throws AlgebricksException {
+ IScalarEvaluator[] args) throws HyracksDataException {
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
final AbstractNumericUnaryOperation aOp = createNumericUnaryOperation();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/AtomizeHelper.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/AtomizeHelper.java
index c31a5cf..a8e5652 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/AtomizeHelper.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/AtomizeHelper.java
@@ -19,6 +19,12 @@
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.vxquery.datamodel.accessors.PointablePool;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -29,27 +35,27 @@
import org.apache.vxquery.datamodel.accessors.nodes.PINodePointable;
import org.apache.vxquery.datamodel.accessors.nodes.TextOrCommentNodePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
-
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
public class AtomizeHelper {
- AttributeNodePointable anp = (AttributeNodePointable) AttributeNodePointable.FACTORY.createPointable();
- DocumentNodePointable dnp = (DocumentNodePointable) DocumentNodePointable.FACTORY.createPointable();
- ElementNodePointable enp = (ElementNodePointable) ElementNodePointable.FACTORY.createPointable();
- NodeTreePointable ntp = (NodeTreePointable) NodeTreePointable.FACTORY.createPointable();
- PINodePointable pnp = (PINodePointable) PINodePointable.FACTORY.createPointable();
- SequencePointable sp = (SequencePointable) SequencePointable.FACTORY.createPointable();
- TextOrCommentNodePointable tcnp = (TextOrCommentNodePointable) TextOrCommentNodePointable.FACTORY.createPointable();
- ArrayBackedValueStorage tempABVS = new ArrayBackedValueStorage();
- TaggedValuePointable tempTVP = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
- VoidPointable vp = (VoidPointable) VoidPointable.FACTORY.createPointable();
+ private static final int STRING_EXPECTED_LENGTH = 300;
+ private final GrowableArray ga = new GrowableArray();
+ private final UTF8StringBuilder sb = new UTF8StringBuilder();
+ private final AttributeNodePointable anp = (AttributeNodePointable) AttributeNodePointable.FACTORY
+ .createPointable();
+ private final DocumentNodePointable dnp = (DocumentNodePointable) DocumentNodePointable.FACTORY.createPointable();
+ private final ElementNodePointable enp = (ElementNodePointable) ElementNodePointable.FACTORY.createPointable();
+ private final NodeTreePointable ntp = (NodeTreePointable) NodeTreePointable.FACTORY.createPointable();
+ private final PINodePointable pnp = (PINodePointable) PINodePointable.FACTORY.createPointable();
+ private final SequencePointable sp = (SequencePointable) SequencePointable.FACTORY.createPointable();
+ private final TextOrCommentNodePointable tcnp = (TextOrCommentNodePointable) TextOrCommentNodePointable.FACTORY
+ .createPointable();
+ private final ArrayBackedValueStorage tempABVS = new ArrayBackedValueStorage();
+ private final TaggedValuePointable tempTVP = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+ private final VoidPointable vp = (VoidPointable) VoidPointable.FACTORY.createPointable();
- public void atomize(TaggedValuePointable tvp, PointablePool pp, IPointable result)
- throws SystemException, IOException {
+ public void atomize(TaggedValuePointable tvp, PointablePool pp, IPointable result) throws SystemException, IOException {
switch (tvp.getTag()) {
case ValueTag.NODE_TREE_TAG:
tvp.getValue(ntp);
@@ -114,7 +120,7 @@
}
}
- public static void buildConcatenationRec(SequencePointable sp, PointablePool pp, DataOutput out,
+ public static void buildConcatenationRec(SequencePointable sp, PointablePool pp, UTF8StringBuilder sb,
NodeTreePointable ntp) throws IOException {
TaggedValuePointable tempTVP2 = pp.takeOne(TaggedValuePointable.class);
int nItems = sp.getEntryCount();
@@ -123,13 +129,13 @@
switch (tempTVP2.getTag()) {
case ValueTag.TEXT_NODE_TAG: {
TextOrCommentNodePointable tcnp = pp.takeOne(TextOrCommentNodePointable.class);
- VoidPointable vp = pp.takeOne(VoidPointable.class);
+ UTF8StringPointable utf8sp = pp.takeOne(UTF8StringPointable.class);
try {
tempTVP2.getValue(tcnp);
- tcnp.getValue(ntp, vp);
- out.write(vp.getByteArray(), vp.getStartOffset() + 2, vp.getLength() - 2);
+ tcnp.getValue(ntp, utf8sp);
+ sb.appendUtf8StringPointable(utf8sp);
} finally {
- pp.giveBack(vp);
+ pp.giveBack(utf8sp);
pp.giveBack(tcnp);
}
break;
@@ -141,7 +147,7 @@
tempTVP2.getValue(enp);
if (enp.childrenChunkExists()) {
enp.getChildrenSequence(ntp, sp2);
- buildConcatenationRec(sp2, pp, out, ntp);
+ buildConcatenationRec(sp2, pp, sb, ntp);
}
} finally {
pp.giveBack(sp2);
@@ -153,20 +159,17 @@
pp.giveBack(tempTVP2);
}
- public static void buildStringConcatenation(SequencePointable sp, PointablePool pp,
- ArrayBackedValueStorage tempABVS, NodeTreePointable ntp) throws IOException {
+ public void buildStringConcatenation(SequencePointable sp, PointablePool pp, ArrayBackedValueStorage tempABVS,
+ NodeTreePointable ntp) throws IOException {
tempABVS.reset();
DataOutput out = tempABVS.getDataOutput();
out.write(ValueTag.XS_UNTYPED_ATOMIC_TAG);
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
// Leave room for the utf-8 length
- out.write(0);
- out.write(0);
- buildConcatenationRec(sp, pp, out, ntp);
- int utflen = tempABVS.getLength() - 3;
- byte[] bytes = tempABVS.getByteArray();
- // Patch utf-8 length at bytes 1 and 2
- bytes[1] = (byte) ((utflen >>> 8) & 0xFF);
- bytes[2] = (byte) ((utflen >>> 0) & 0xFF);
+ buildConcatenationRec(sp, pp, sb, ntp);
+ sb.finish();
+ out.write(ga.getByteArray(), 0, ga.getLength());
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/FunctionHelper.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/FunctionHelper.java
index 49e1271..7c3197a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/FunctionHelper.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/FunctionHelper.java
@@ -25,17 +25,18 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
import java.util.List;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.primitive.DoublePointable;
import org.apache.hyracks.data.std.primitive.LongPointable;
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.hyracks.dataflow.common.comm.util.ByteBufferInputStream;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -486,7 +487,7 @@
public static boolean compareTaggedValues(AbstractValueComparisonOperation aOp, TaggedValuePointable tvp1,
TaggedValuePointable tvp2, DynamicContext dCtx, TypedPointables tp1, TypedPointables tp2)
- throws SystemException {
+ throws SystemException {
int tid1 = getBaseTypeForComparisons(tvp1.getTag());
int tid2 = getBaseTypeForComparisons(tvp2.getTag());
@@ -1137,13 +1138,6 @@
return max;
}
- public static String getStringFromPointable(UTF8StringPointable stringp, ByteBufferInputStream bbis,
- DataInputStream di) throws IOException {
- bbis.setByteBuffer(ByteBuffer.wrap(Arrays.copyOfRange(stringp.getByteArray(), stringp.getStartOffset(),
- stringp.getLength() + stringp.getStartOffset())), 0);
- return di.readUTF();
- }
-
public static long getTimezone(ITimezone timezonep) {
return timezonep.getTimezoneHour() * DateTime.CHRONON_OF_HOUR
+ timezonep.getTimezoneMinute() * DateTime.CHRONON_OF_MINUTE;
@@ -1212,7 +1206,7 @@
}
public static void printUTF8String(UTF8StringPointable stringp) {
- System.err.println(" printUTF8String START length = " + stringp.getUTFLength());
+ System.err.println(" printUTF8String START length = " + stringp.getUTF8Length());
ICharacterIterator charIterator = new UTF8StringCharacterIterator(stringp);
charIterator.reset();
for (int c = charIterator.next(); c != ICharacterIterator.EOS_CHAR; c = charIterator.next()) {
@@ -1223,8 +1217,7 @@
public static void readInDocFromPointable(UTF8StringPointable stringp, ByteBufferInputStream bbis,
DataInputStream di, ArrayBackedValueStorage abvs, IParser parser) throws IOException {
- String fName = getStringFromPointable(stringp, bbis, di);
- readInDocFromString(fName, bbis, di, abvs, parser);
+ readInDocFromString(stringp.toString(), bbis, di, abvs, parser);
}
public static void readInDocFromString(String fName, ByteBufferInputStream bbis, DataInputStream di,
@@ -1262,7 +1255,7 @@
public static boolean transformThenCompareMinMaxTaggedValues(AbstractValueComparisonOperation aOp,
TaggedValuePointable tvp1, TaggedValuePointable tvp2, DynamicContext dCtx, TypedPointables tp1,
- TypedPointables tp2) throws SystemException {
+ TypedPointables tp2) throws HyracksDataException {
TaggedValuePointable tvp1new = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
TaggedValuePointable tvp2new = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
@@ -1308,46 +1301,61 @@
}
}
- public static void writeChar(char c, DataOutput dOut) {
- try {
- if ((c >= 0x0001) && (c <= 0x007F)) {
- dOut.write((byte) c);
- } else if (c > 0x07FF) {
- dOut.write((byte) (0xE0 | ((c >> 12) & 0x0F)));
- dOut.write((byte) (0x80 | ((c >> 6) & 0x3F)));
- dOut.write((byte) (0x80 | ((c >> 0) & 0x3F)));
- } else {
- dOut.write((byte) (0xC0 | ((c >> 6) & 0x1F)));
- dOut.write((byte) (0x80 | ((c >> 0) & 0x3F)));
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
+ public static void writeChar(char c, UTF8StringBuilder sb) throws IOException {
+ sb.appendChar(c);
}
- public static void writeCharSequence(CharSequence charSequence, DataOutput dOut) {
+ public static void stringToGrowableArray(String value, GrowableArray ga, UTF8StringBuilder sb, int expectedLength)
+ throws IOException {
+ ga.reset();
+ sb.reset(ga, expectedLength);
+ sb.appendString(value);
+ sb.finish();
+ }
+
+ public static void charSequenceToGrowableArray(CharSequence charSequence, GrowableArray ga, UTF8StringBuilder sb,
+ int expectedLength) throws IOException {
+ ga.reset();
+ sb.reset(ga, expectedLength);
for (int i = 0; i < charSequence.length(); ++i) {
- writeChar(charSequence.charAt(i), dOut);
+ sb.appendChar(charSequence.charAt(i));
}
+ sb.finish();
}
- public static void writeCharArray(char[] ch, int start, int length, DataOutput dOut) {
+ public static void charArrayToGrowableArray(char[] ch, int start, int length, GrowableArray ga,
+ UTF8StringBuilder sb, int expectedLength) throws IOException {
+ ga.reset();
+ sb.reset(ga, expectedLength);
for (int i = start; i < start + length; ++i) {
- writeChar(ch[i], dOut);
+ sb.appendChar(ch[i]);
+ }
+ sb.finish();
+ }
+
+ public static void writeCharSequence(CharSequence charSequence, UTF8StringBuilder sb) throws IOException {
+ for (int i = 0; i < charSequence.length(); ++i) {
+ sb.appendChar(charSequence.charAt(i));
}
}
- public static void writeDateAsString(IDate date, DataOutput dOut) {
+ public static void writeCharArray(char[] ch, int start, int length, UTF8StringBuilder sb) throws IOException {
+ for (int i = start; i < start + length; ++i) {
+ sb.appendChar(ch[i]);
+ }
+ }
+
+ public static void writeDateAsString(IDate date, UTF8StringBuilder sb) throws IOException {
// Year
- writeNumberWithPadding(date.getYear(), 4, dOut);
- writeChar('-', dOut);
+ writeNumberWithPadding(date.getYear(), 4, sb);
+ sb.appendChar('-');
// Month
- writeNumberWithPadding(date.getMonth(), 2, dOut);
- writeChar('-', dOut);
+ writeNumberWithPadding(date.getMonth(), 2, sb);
+ sb.appendChar('-');
// Day
- writeNumberWithPadding(date.getDay(), 2, dOut);
+ writeNumberWithPadding(date.getDay(), 2, sb);
}
/**
@@ -1359,66 +1367,66 @@
* padding
* @param dOut
* data output
+ * @throws IOException
*/
-
- public static void writeNumberWithPadding(long valueArg, int paddingArg, DataOutput dOut) {
+ public static void writeNumberWithPadding(long valueArg, int paddingArg, UTF8StringBuilder sb) throws IOException {
long value = valueArg;
int padding = paddingArg;
if (value < 0) {
- writeChar('-', dOut);
+ sb.appendChar('-');
value = Math.abs(value);
}
int nDigits = getNumberOfDigits(value);
// Add zero padding for set length numbers.
while (padding > nDigits) {
- writeChar('0', dOut);
+ sb.appendChar('0');
--padding;
}
// Write the actual number.
long pow10 = (long) Math.pow(10, nDigits - 1.0);
for (int i = nDigits - 1; i >= 0; --i) {
- writeChar((char) ('0' + (value / pow10)), dOut);
+ sb.appendChar((char) ('0' + (value / pow10)));
value %= pow10;
pow10 /= 10;
}
}
- public static void writeTimeAsString(ITime time, DataOutput dOut) {
+ public static void writeTimeAsString(ITime time, UTF8StringBuilder sb) throws IOException {
// Hours
- writeNumberWithPadding(time.getHour(), 2, dOut);
- writeChar(':', dOut);
+ writeNumberWithPadding(time.getHour(), 2, sb);
+ sb.appendChar(':');
// Minute
- writeNumberWithPadding(time.getMinute(), 2, dOut);
- writeChar(':', dOut);
+ writeNumberWithPadding(time.getMinute(), 2, sb);
+ sb.appendChar(':');
// Milliseconds
- writeNumberWithPadding(time.getMilliSecond() / DateTime.CHRONON_OF_SECOND, 2, dOut);
+ writeNumberWithPadding(time.getMilliSecond() / DateTime.CHRONON_OF_SECOND, 2, sb);
if (time.getMilliSecond() % DateTime.CHRONON_OF_SECOND != 0) {
- writeChar('.', dOut);
- writeNumberWithPadding(time.getMilliSecond() % DateTime.CHRONON_OF_SECOND, 3, dOut);
+ sb.appendChar('.');
+ writeNumberWithPadding(time.getMilliSecond() % DateTime.CHRONON_OF_SECOND, 3, sb);
}
}
- public static void writeTimezoneAsString(ITimezone timezone, DataOutput dOut) {
+ public static void writeTimezoneAsString(ITimezone timezone, UTF8StringBuilder sb) throws IOException {
long timezoneHour = timezone.getTimezoneHour();
long timezoneMinute = timezone.getTimezoneMinute();
if (timezoneHour != DateTime.TIMEZONE_HOUR_NULL && timezoneMinute != DateTime.TIMEZONE_MINUTE_NULL) {
if (timezoneHour == 0 && timezoneMinute == 0) {
- writeChar('Z', dOut);
+ sb.appendChar('Z');
} else {
if (timezoneHour >= 0 && timezoneMinute >= 0) {
- writeChar('+', dOut);
+ sb.appendChar('+');
} else {
- writeChar('-', dOut);
+ sb.appendChar('-');
timezoneHour = Math.abs(timezoneHour);
timezoneMinute = Math.abs(timezoneMinute);
}
- writeNumberWithPadding(timezoneHour, 2, dOut);
- writeChar(':', dOut);
- writeNumberWithPadding(timezoneMinute, 2, dOut);
+ writeNumberWithPadding(timezoneHour, 2, sb);
+ sb.appendChar(':');
+ writeNumberWithPadding(timezoneMinute, 2, sb);
}
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java b/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
index 984ab81..6e20ba1 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
@@ -20,6 +20,18 @@
import java.io.IOException;
import java.io.PrintStream;
+import org.apache.hyracks.algebricks.data.IPrinter;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.primitive.BooleanPointable;
+import org.apache.hyracks.data.std.primitive.BytePointable;
+import org.apache.hyracks.data.std.primitive.DoublePointable;
+import org.apache.hyracks.data.std.primitive.FloatPointable;
+import org.apache.hyracks.data.std.primitive.IntegerPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.ShortPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.PointablePool;
import org.apache.vxquery.datamodel.accessors.PointablePoolFactory;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
@@ -44,19 +56,6 @@
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.cast.CastToStringOperation;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.data.std.primitive.BooleanPointable;
-import org.apache.hyracks.data.std.primitive.BytePointable;
-import org.apache.hyracks.data.std.primitive.DoublePointable;
-import org.apache.hyracks.data.std.primitive.FloatPointable;
-import org.apache.hyracks.data.std.primitive.IntegerPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.primitive.ShortPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class XMLSerializer implements IPrinter {
private final PointablePool pp;
@@ -873,8 +872,8 @@
}
private void printString(PrintStream ps, UTF8StringPointable utf8sp) {
- int utfLen = utf8sp.getUTFLength();
- int offset = 2;
+ int utfLen = utf8sp.getUTF8Length();
+ int offset = utf8sp.getMetaDataLength();
while (utfLen > 0) {
char c = utf8sp.charAt(offset);
switch (c) {
@@ -902,7 +901,7 @@
ps.append(c);
break;
}
- int cLen = UTF8StringPointable.getModifiedUTF8Len(c);
+ int cLen = utf8sp.charSize(offset);
offset += cLen;
utfLen -= cLen;
}
@@ -941,7 +940,7 @@
}
@Override
- public void init() throws AlgebricksException {
+ public void init() throws HyracksDataException {
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/NameTest.java b/vxquery-core/src/main/java/org/apache/vxquery/types/NameTest.java
index fde6e07..a4b31bd 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/NameTest.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/NameTest.java
@@ -19,7 +19,7 @@
import java.io.Serializable;
import java.util.Arrays;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.util.string.UTF8StringUtil;
public final class NameTest implements Serializable {
private static final long serialVersionUID = 1L;
@@ -49,13 +49,13 @@
StringBuilder buffer = new StringBuilder();
buffer.append("NameTest({");
if (uri != null) {
- UTF8StringPointable.toString(buffer, uri, 0);
+ UTF8StringUtil.toString(buffer, uri, 0);
} else {
buffer.append('*');
}
buffer.append('}');
if (localName != null) {
- UTF8StringPointable.toString(buffer, localName, 0);
+ UTF8StringUtil.toString(buffer, localName, 0);
} else {
buffer.append('*');
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java
index c445ba7..d29242e 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java
@@ -18,7 +18,7 @@
import java.util.Arrays;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.util.string.UTF8StringUtil;
public final class ProcessingInstructionType extends AbstractNodeType {
private static final long serialVersionUID = 1L;
@@ -44,7 +44,7 @@
public String toString() {
StringBuilder sb = new StringBuilder("processing-instruction(");
if (target != null) {
- UTF8StringPointable.toString(sb, target, 0);
+ UTF8StringUtil.toString(sb, target, 0);
}
return sb.append(")").toString();
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java b/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java
index 846c27b..84c8ddf 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java
@@ -22,12 +22,13 @@
import org.apache.hyracks.api.comm.IFrameFieldAppender;
import org.apache.hyracks.api.comm.IFrameWriter;
import org.apache.hyracks.api.exceptions.HyracksDataException;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.hyracks.dataflow.common.comm.util.FrameUtils;
+import org.apache.hyracks.util.string.UTF8StringUtil;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.nodes.NodeTreePointable;
-import org.apache.vxquery.datamodel.builders.atomic.UTF8StringBuilder;
import org.apache.vxquery.datamodel.builders.nodes.AbstractNodeBuilder;
import org.apache.vxquery.datamodel.builders.nodes.AttributeNodeBuilder;
import org.apache.vxquery.datamodel.builders.nodes.CommentNodeBuilder;
@@ -37,6 +38,7 @@
import org.apache.vxquery.datamodel.builders.nodes.PINodeBuilder;
import org.apache.vxquery.datamodel.builders.nodes.TextNodeBuilder;
import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.runtime.functions.util.FunctionHelper;
import org.apache.vxquery.types.BuiltinTypeQNames;
import org.apache.vxquery.types.ElementType;
import org.apache.vxquery.types.NameTest;
@@ -50,6 +52,8 @@
import org.xml.sax.ext.LexicalHandler;
public class SAXContentHandler implements ContentHandler, LexicalHandler {
+ private static final int STRING_EXPECTED_LENGTH = 300;
+
// XML node builders
protected final AttributeNodeBuilder anb;
protected final CommentNodeBuilder cnb;
@@ -58,6 +62,7 @@
protected final PINodeBuilder pinb;
protected final TextNodeBuilder tnb;
protected final UTF8StringBuilder utf8b;
+ private final UTF8StringBuilder utf8bInternal;
protected final List<ElementNodeBuilder> enbStack;
protected final List<ElementNodeBuilder> freeENBList;
protected boolean isIndexHandler;
@@ -83,7 +88,8 @@
protected int nodeIdCounter;
protected final ITreeNodeIdProvider nodeIdProvider;
protected final ArrayBackedValueStorage tempABVS;
- private final ArrayBackedValueStorage textABVS;
+ private final GrowableArray textGA;
+ private final GrowableArray textGAInternal;
public SAXContentHandler(boolean attachTypes, ITreeNodeIdProvider nodeIdProvider, boolean isIndexHandler) {
// XML node builders
@@ -94,8 +100,9 @@
pinb = new PINodeBuilder();
tnb = new TextNodeBuilder();
utf8b = new UTF8StringBuilder();
- enbStack = new ArrayList<ElementNodeBuilder>();
- freeENBList = new ArrayList<ElementNodeBuilder>();
+ utf8bInternal = new UTF8StringBuilder();
+ enbStack = new ArrayList<>();
+ freeENBList = new ArrayList<>();
// Element writing and path step variables
skipping = true;
@@ -110,7 +117,8 @@
nodeIdCounter = 0;
this.nodeIdProvider = nodeIdProvider;
tempABVS = new ArrayBackedValueStorage();
- textABVS = new ArrayBackedValueStorage();
+ textGA = new GrowableArray();
+ textGAInternal = new GrowableArray();
this.isIndexHandler = isIndexHandler;
if (isIndexHandler) {
this.appender = null;
@@ -156,7 +164,7 @@
return;
}
try {
- utf8b.appendCharArray(ch, start, length);
+ appendCharArray(ch, start, length);
} catch (IOException e) {
e.printStackTrace();
throw new SAXException(e);
@@ -233,15 +241,11 @@
try {
flushText();
startChildInParent(pinb);
- tempABVS.reset();
- tempABVS.getDataOutput().writeUTF(target);
if (createNodeIds) {
pinb.setLocalNodeId(nodeIdCounter++);
}
- pinb.setTarget(tempABVS);
- tempABVS.reset();
- tempABVS.getDataOutput().writeUTF(data);
- pinb.setContent(tempABVS);
+ pinb.setTarget(stringToGrowableArray(target));
+ pinb.setContent(stringToGrowableArray(data));
endChildInParent(pinb);
} catch (IOException e) {
e.printStackTrace();
@@ -249,6 +253,11 @@
}
}
+ private GrowableArray stringToGrowableArray(String value) throws IOException {
+ FunctionHelper.stringToGrowableArray(value, textGAInternal, utf8bInternal, STRING_EXPECTED_LENGTH);
+ return textGAInternal;
+ }
+
@Override
public void setDocumentLocator(Locator locator) {
}
@@ -264,8 +273,8 @@
}
db.reset();
try {
- textABVS.reset();
- utf8b.reset(textABVS);
+ textGA.reset();
+ utf8b.reset(textGA, STRING_EXPECTED_LENGTH);
} catch (IOException e) {
throw new SAXException(e);
}
@@ -355,7 +364,8 @@
tempABVS.reset();
DataOutput tempOut = tempABVS.getDataOutput();
tempOut.write(ValueTag.XS_UNTYPED_ATOMIC_TAG);
- tempOut.writeUTF(aValue);
+ stringToGrowableArray(aValue);
+ tempOut.write(textGAInternal.getByteArray(), 0, textGAInternal.getLength());
enb.startAttribute(anb);
anb.setName(aUriCode, aLocalNameCode, aPrefixCode);
if (attachTypes) {
@@ -394,18 +404,24 @@
if (createNodeIds) {
cnb.setLocalNodeId(nodeIdCounter++);
}
- utf8b.appendCharArray(ch, start, length);
+ appendCharArray(ch, start, length);
utf8b.finish();
- cnb.setValue(textABVS);
+ cnb.setValue(textGA);
endChildInParent(cnb);
- textABVS.reset();
- utf8b.reset(textABVS);
+ textGA.reset();
+ utf8b.reset(textGA, STRING_EXPECTED_LENGTH);
} catch (IOException e) {
e.printStackTrace();
throw new SAXException(e);
}
}
+ private void appendCharArray(char[] ch, int start, int length) throws IOException {
+ for (int i = 0; i < length; ++i) {
+ utf8b.appendChar(ch[i + start]);
+ }
+ }
+
protected void flushText() throws IOException {
if (pendingText) {
peekENBStackTop().startChild(tnb);
@@ -413,10 +429,10 @@
tnb.setLocalNodeId(nodeIdCounter++);
}
utf8b.finish();
- tnb.setValue(textABVS);
+ tnb.setValue(textGA);
peekENBStackTop().endChild(tnb);
- textABVS.reset();
- utf8b.reset(textABVS);
+ textGA.reset();
+ utf8b.reset(textGA, STRING_EXPECTED_LENGTH);
pendingText = false;
}
}
@@ -559,7 +575,7 @@
return null;
}
StringBuilder sb = new StringBuilder();
- UTF8StringPointable.toString(sb, bytes, 0);
+ UTF8StringUtil.toString(sb, bytes, 0);
return sb.toString();
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/XMLParser.java b/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/XMLParser.java
index 2f9f8c5..a830b47 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/XMLParser.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/XMLParser.java
@@ -80,8 +80,7 @@
handler.writeDocument(abvs);
input.close();
} catch (Exception e) {
- HyracksDataException hde = new HyracksDataException(e);
- hde.setNodeId(nodeId);
+ HyracksDataException hde = new HyracksDataException(e, nodeId);
throw hde;
}
return 0;
@@ -100,16 +99,13 @@
parser.parse(in);
input.close();
} catch (FileNotFoundException e) {
- HyracksDataException hde = new VXQueryFileNotFoundException(e, file);
- hde.setNodeId(nodeId);
+ HyracksDataException hde = new VXQueryFileNotFoundException(e, file, nodeId);
throw hde;
} catch (SAXException e) {
- HyracksDataException hde = new VXQueryParseException(e, file);
- hde.setNodeId(nodeId);
+ HyracksDataException hde = new VXQueryParseException(e, file, nodeId);
throw hde;
} catch (IOException e) {
- HyracksDataException hde = new HyracksDataException(e);
- hde.setNodeId(nodeId);
+ HyracksDataException hde = new HyracksDataException(e, nodeId);
throw hde;
}
}
@@ -128,8 +124,7 @@
parser.parse(in);
input.close();
} catch (Exception e) {
- HyracksDataException hde = new HyracksDataException(e);
- hde.setNodeId(nodeId);
+ HyracksDataException hde = new HyracksDataException(e, nodeId);
throw hde;
}
}
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryCompilationListener.java b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryCompilationListener.java
index b3692b1..8690c94 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryCompilationListener.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryCompilationListener.java
@@ -14,18 +14,19 @@
*/
package org.apache.vxquery.xmlquery.query;
-import org.apache.vxquery.compiler.algebricks.prettyprint.VXQueryLogicalExpressionPrettyPrintVisitor;
-import org.apache.vxquery.xmlquery.ast.ModuleNode;
-import org.json.JSONException;
-
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.io.xml.DomDriver;
+import java.io.IOException;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.prettyprint.AlgebricksAppendable;
import org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor;
import org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter;
import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionVisitor;
import org.apache.hyracks.api.job.JobSpecification;
+import org.apache.vxquery.compiler.algebricks.prettyprint.VXQueryLogicalExpressionPrettyPrintVisitor;
+import org.apache.vxquery.xmlquery.ast.ModuleNode;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
public class VXQueryCompilationListener implements XQueryCompilationListener {
boolean showTET, showRP, showOET, showAST;
@@ -39,7 +40,7 @@
/**
* Outputs the query inputs, outputs and user constraints for each module as result of code generation.
- *
+ *
* @param module
*/
public void notifyCodegenResult(Module module) {
@@ -47,8 +48,8 @@
JobSpecification jobSpec = module.getHyracksJobSpecification();
try {
System.err.println("***Runtime Plan: ");
- System.err.println(jobSpec.toJSON().toString(2));
- } catch (JSONException e) {
+ System.err.println(jobSpec.toJSON().toString());
+ } catch (IOException e) {
e.printStackTrace();
System.err.println(jobSpec.toString());
}
@@ -58,7 +59,7 @@
/**
* Outputs the syntax translation tree for the module in the format: "-- logical operator(if exists) | execution mode |"
* where execution mode can be one of: UNPARTITIONED,PARTITIONED,LOCAL
- *
+ *
* @param module
*/
@Override
@@ -76,7 +77,7 @@
/**
* Outputs the optimized expression tree for the module in the format:
* "-- logical operator(if exists) | execution mode |" where execution mode can be one of: UNPARTITIONED,PARTITIONED,LOCAL
- *
+ *
* @param module
*/
@Override
@@ -90,7 +91,7 @@
/**
* Outputs the abstract syntax tree obtained from parsing by serializing the DomDriver object to a pretty-printed XML
* String.
- *
+ *
* @param moduleNode
*/
@Override
@@ -105,8 +106,10 @@
try {
ILogicalExpressionVisitor<String, Integer> ev = new VXQueryLogicalExpressionPrettyPrintVisitor(
module.getModuleContext());
- LogicalOperatorPrettyPrintVisitor v = new LogicalOperatorPrettyPrintVisitor(ev);
- PlanPrettyPrinter.printPlan(module.getBody(), sb, v, 0);
+ AlgebricksAppendable buffer = new AlgebricksAppendable();
+ LogicalOperatorPrettyPrintVisitor v = new LogicalOperatorPrettyPrintVisitor(buffer, ev);
+ PlanPrettyPrinter.printPlan(module.getBody(), v, 0);
+ sb.append(buffer.toString());
} catch (AlgebricksException e) {
e.printStackTrace();
}
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 fcc35ef..b7839d0 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
@@ -19,6 +19,7 @@
import java.util.List;
import java.util.Map;
+import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.common.exceptions.NotImplementedException;
import org.apache.hyracks.algebricks.common.utils.Pair;
@@ -33,12 +34,14 @@
import org.apache.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
import org.apache.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
import org.apache.hyracks.algebricks.core.algebra.expressions.IAlgebricksConstantValue;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IConflictingTypeResolver;
import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionEvalSizeComputer;
import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionTypeComputer;
import org.apache.hyracks.algebricks.core.algebra.expressions.IMergeAggregationExpressionFactory;
-import org.apache.hyracks.algebricks.core.algebra.expressions.INullableTypeComputer;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IMissableTypeComputer;
import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
+import org.apache.hyracks.algebricks.core.algebra.prettyprint.AlgebricksAppendable;
import org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor;
import org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController;
import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
@@ -57,11 +60,12 @@
import org.apache.vxquery.compiler.algebricks.VXQueryComparatorFactoryProvider;
import org.apache.vxquery.compiler.algebricks.VXQueryConstantValue;
import org.apache.vxquery.compiler.algebricks.VXQueryExpressionRuntimeProvider;
-import org.apache.vxquery.compiler.algebricks.VXQueryNullWriterFactory;
+import org.apache.vxquery.compiler.algebricks.VXQueryMissingWriterFactory;
import org.apache.vxquery.compiler.algebricks.VXQueryPrinterFactoryProvider;
import org.apache.vxquery.compiler.algebricks.prettyprint.VXQueryLogicalExpressionPrettyPrintVisitor;
import org.apache.vxquery.compiler.rewriter.RewriteRuleset;
import org.apache.vxquery.compiler.rewriter.VXQueryOptimizationContext;
+import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.metadata.VXQueryMetadataProvider;
import org.apache.vxquery.runtime.provider.VXQueryBinaryHashFunctionFactoryProvider;
import org.apache.vxquery.runtime.provider.VXQueryBinaryHashFunctionFamilyProvider;
@@ -115,25 +119,27 @@
public IOptimizationContext createOptimizationContext(int varCounter,
IExpressionEvalSizeComputer expressionEvalSizeComputer,
IMergeAggregationExpressionFactory mergeAggregationExpressionFactory,
- IExpressionTypeComputer expressionTypeComputer, INullableTypeComputer nullableTypeComputer,
- PhysicalOptimizationConfig physicalOptimizationConfig) {
+ IExpressionTypeComputer expressionTypeComputer, IMissableTypeComputer missableTypeComputer,
+ IConflictingTypeResolver conflictintTypeResolver,
+ PhysicalOptimizationConfig physicalOptimizationConfig,
+ AlgebricksPartitionConstraint clusterLocations) {
return new VXQueryOptimizationContext(varCounter, expressionEvalSizeComputer,
- mergeAggregationExpressionFactory, expressionTypeComputer, nullableTypeComputer,
- physicalOptimizationConfig, pprinter);
+ mergeAggregationExpressionFactory, expressionTypeComputer, missableTypeComputer,
+ conflictintTypeResolver, physicalOptimizationConfig, clusterLocations, pprinter);
}
});
builder.getPhysicalOptimizationConfig().setFrameSize(this.frameSize);
if (joinHashSize > 0) {
- builder.getPhysicalOptimizationConfig().setMaxFramesHybridHash((int) (joinHashSize / this.frameSize));
+ builder.getPhysicalOptimizationConfig().setMaxFramesForJoin((int) (joinHashSize / this.frameSize));
}
if (maximumDataSize > 0) {
builder.getPhysicalOptimizationConfig()
- .setMaxFramesLeftInputHybridHash((int) (maximumDataSize / this.frameSize));
+ .setMaxFramesForJoinLeftInput((int) (maximumDataSize / this.frameSize));
+ } else {
+ builder.getPhysicalOptimizationConfig()
+ .setMaxFramesForJoinLeftInput((int) (60L * 1024 * 1048576 / this.frameSize));
}
- builder.getPhysicalOptimizationConfig()
- .setMaxFramesLeftInputHybridHash((int) (60L * 1024 * 1048576 / this.frameSize));
-
builder.setLogicalRewrites(buildDefaultLogicalRewrites());
builder.setPhysicalRewrites(buildDefaultPhysicalRewrites());
builder.setSerializerDeserializerProvider(new ISerializerDeserializerProvider() {
@@ -172,9 +178,9 @@
return null;
}
});
- builder.setNullableTypeComputer(new INullableTypeComputer() {
+ builder.setMissableTypeComputer(new IMissableTypeComputer() {
@Override
- public Object makeNullableType(Object type) throws AlgebricksException {
+ public Object makeMissableType(Object type) throws AlgebricksException {
SequenceType st = (SequenceType) type;
if (st.getQuantifier().allowsEmptySequence()) {
return type;
@@ -185,7 +191,7 @@
}
@Override
- public boolean canBeNull(Object type) {
+ public boolean canBeMissing(Object type) {
return false;
}
@@ -194,7 +200,7 @@
throw new NotImplementedException("NullableTypeComputer is not implented (getNonOptionalType)");
}
});
- builder.setNullWriterFactory(new VXQueryNullWriterFactory());
+ builder.setMissingWriterFactory(new VXQueryMissingWriterFactory());
if (availableProcessors < 1) {
builder.setClusterLocations(VXQueryMetadataProvider.getClusterLocations(nodeList));
} else {
@@ -215,11 +221,11 @@
}
public void compile(String name, Reader query, CompilerControlBlock ccb, int optimizationLevel)
- throws AlgebricksException {
+ throws AlgebricksException, SystemException {
moduleNode = XMLQueryParser.parse(name, query);
listener.notifyParseResult(moduleNode);
module = new XMLQueryTranslator(ccb).translateModule(moduleNode);
- pprinter = new LogicalOperatorPrettyPrintVisitor(
+ pprinter = new LogicalOperatorPrettyPrintVisitor(new AlgebricksAppendable(),
new VXQueryLogicalExpressionPrettyPrintVisitor(module.getModuleContext()));
VXQueryMetadataProvider mdProvider = new VXQueryMetadataProvider(nodeList, ccb.getSourceFileMap(),
module.getModuleContext(), this.hdfsConf, nodeControllerInfos);
@@ -278,7 +284,7 @@
}
private static List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> buildDefaultPhysicalRewrites() {
- List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> defaultPhysicalRewrites = new ArrayList<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>>();
+ List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> defaultPhysicalRewrites = new ArrayList<>();
SequentialOnceRuleController seqOnceCtrlAllLevels = new SequentialOnceRuleController(true);
SequentialOnceRuleController seqOnceCtrlTopLevel = new SequentialOnceRuleController(false);
defaultPhysicalRewrites.add(new Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>(seqOnceCtrlAllLevels,
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 ff230d3..3d95cb1 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
@@ -2143,7 +2143,7 @@
private List<LogicalVariable> translateExpressionList(List<ASTNode> expressions, TranslationContext tCtx)
throws SystemException {
- List<LogicalVariable> result = new ArrayList<LogicalVariable>();
+ List<LogicalVariable> result = new ArrayList<>();
for (ASTNode e : expressions) {
result.add(translateExpression(e, tCtx));
}
@@ -2151,11 +2151,11 @@
}
private static Mutable<ILogicalExpression> mutable(ILogicalExpression expr) {
- return new MutableObject<ILogicalExpression>(expr);
+ return new MutableObject<>(expr);
}
private static Mutable<ILogicalOperator> mutable(ILogicalOperator op) {
- return new MutableObject<ILogicalOperator>(op);
+ return new MutableObject<>(op);
}
private LogicalVariable newLogicalVariable() {
diff --git a/vxquery-core/src/test/java/org/apache/vxquery/xmlquery/query/SimpleXQueryTest.java b/vxquery-core/src/test/java/org/apache/vxquery/xmlquery/query/SimpleXQueryTest.java
index 51e6091..7646f97 100644
--- a/vxquery-core/src/test/java/org/apache/vxquery/xmlquery/query/SimpleXQueryTest.java
+++ b/vxquery-core/src/test/java/org/apache/vxquery/xmlquery/query/SimpleXQueryTest.java
@@ -137,7 +137,7 @@
private static void runTestInternal(String testName, String query) throws Exception {
Map<String, NodeControllerInfo> nodeControllerInfos = new HashMap<String, NodeControllerInfo>();
- nodeControllerInfos.put("nc1", new NodeControllerInfo("nc1", null, new NetworkAddress("127.0.0.1", 0), null));
+ nodeControllerInfos.put("nc1", new NodeControllerInfo("nc1", null, new NetworkAddress("127.0.0.1", 0), null, null, 1));
XMLQueryCompiler compiler = new XMLQueryCompiler(null, nodeControllerInfos, 65536);
CompilerControlBlock ccb = new CompilerControlBlock(new StaticContextImpl(RootStaticContextImpl.INSTANCE),
diff --git a/vxquery-server/src/main/java/org/apache/vxquery/cli/VXQueryClusterShutdown.java b/vxquery-server/src/main/java/org/apache/vxquery/cli/VXQueryClusterShutdown.java
index ced608a..c93996d 100644
--- a/vxquery-server/src/main/java/org/apache/vxquery/cli/VXQueryClusterShutdown.java
+++ b/vxquery-server/src/main/java/org/apache/vxquery/cli/VXQueryClusterShutdown.java
@@ -17,17 +17,16 @@
import java.util.ArrayList;
import java.util.List;
+import org.apache.hyracks.api.client.HyracksConnection;
+import org.apache.hyracks.api.client.IHyracksClientConnection;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.Option;
-import org.apache.hyracks.api.client.HyracksConnection;
-import org.apache.hyracks.api.client.IHyracksClientConnection;
-
public class VXQueryClusterShutdown {
/**
* Main method to get command line options and execute query process.
- *
+ *
* @param args
* @throws Exception
*/
@@ -42,16 +41,16 @@
parser.printUsage(System.err);
return;
}
-
+
// give error message if missing arguments
if (opts.clientNetIpAddress == null) {
parser.printUsage(System.err);
return;
}
-
+
try {
IHyracksClientConnection hcc = new HyracksConnection(opts.clientNetIpAddress, opts.clientNetPort);
- hcc.stopCluster();
+ hcc.stopCluster(true);
} catch (Exception e) {
System.err.println("Unable to connect and shutdown the Hyracks cluster.");
System.err.println(e);
diff --git a/vxquery-xtest/pom.xml b/vxquery-xtest/pom.xml
index 27c2bf8..a00bec2 100644
--- a/vxquery-xtest/pom.xml
+++ b/vxquery-xtest/pom.xml
@@ -188,6 +188,27 @@
<artifactId>jetty</artifactId>
<scope>compile</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <version>2.7.0</version>
+ <classifier>tests</classifier>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs</artifactId>
+ <version>2.7.0</version>
+ <classifier>tests</classifier>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
<reporting>
diff --git a/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestRunner.java b/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestRunner.java
index 1cd2696..e4ba6eb 100644
--- a/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestRunner.java
+++ b/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestRunner.java
@@ -29,6 +29,7 @@
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameTupleAccessor;
import org.apache.hyracks.api.comm.VSizeFrame;
+import org.apache.hyracks.api.dataset.DatasetJobRecord;
import org.apache.hyracks.api.dataset.IHyracksDataset;
import org.apache.hyracks.api.dataset.IHyracksDatasetReader;
import org.apache.hyracks.api.dataset.ResultSetId;
@@ -36,7 +37,6 @@
import org.apache.hyracks.api.job.JobFlag;
import org.apache.hyracks.api.job.JobId;
import org.apache.hyracks.api.job.JobSpecification;
-import org.apache.hyracks.client.dataset.HyracksDataset;
import org.apache.hyracks.control.nc.resources.memory.FrameManager;
import org.apache.hyracks.dataflow.common.comm.io.ResultFrameTupleAccessor;
import org.apache.vxquery.compiler.CompilerControlBlock;
@@ -52,8 +52,7 @@
import org.apache.vxquery.xmlquery.query.XMLQueryCompiler;
public class TestRunner {
- private static final Pattern EMBEDDED_SYSERROR_PATTERN = Pattern
- .compile("org\\.apache\\.vxquery\\.exceptions\\.SystemException: (\\p{javaUpperCase}{4}\\d{4})");
+ private static final Pattern EMBEDDED_SYSERROR_PATTERN = Pattern.compile("(\\p{javaUpperCase}{4}\\d{4})");
private XTestOptions opts;
private IHyracksClientConnection hcc;
@@ -112,6 +111,10 @@
FrameManager resultDisplayFrameMgr = new FrameManager(spec.getFrameSize());
IFrame frame = new VSizeFrame(resultDisplayFrameMgr);
IHyracksDatasetReader reader = hds.createReader(jobId, ccb.getResultSetId());
+ // TODO(tillw) remove this loop once the IHyracksDatasetReader reliably returns the correct exception
+ while (reader.getResultStatus() == DatasetJobRecord.Status.RUNNING) {
+ Thread.sleep(1);
+ }
IFrameTupleAccessor frameTupleAccessor = new ResultFrameTupleAccessor();
res.result = "";
while (reader.read(frame) > 0) {
@@ -125,10 +128,13 @@
while (t.getCause() != null) {
t = t.getCause();
}
- Matcher m = EMBEDDED_SYSERROR_PATTERN.matcher(t.getMessage());
- if (m.find()) {
- String eCode = m.group(1);
- throw new SystemException(ErrorCode.valueOf(eCode), e);
+ final String message = t.getMessage();
+ if (message != null) {
+ Matcher m = EMBEDDED_SYSERROR_PATTERN.matcher(message);
+ if (m.find()) {
+ String eCode = m.group(1);
+ throw new SystemException(ErrorCode.valueOf(eCode), e);
+ }
}
throw e;
}
diff --git a/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java
index 96cc7cb..1e2dcf6 100644
--- a/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java
+++ b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java
@@ -117,15 +117,14 @@
public static void shutdown() throws IOException {
removeFS();
TestClusterUtil.stopCluster(cc, nc);
-
}
public static void removeFS() throws IOException {
+ dfs.shutdownHDFS();
File tmp = new File(TMP);
if (tmp.exists()) {
FileUtils.deleteDirectory(tmp);
}
- dfs.shutdownHDFS();
}
}
diff --git a/vxquery-xtest/src/test/resources/ExpectedTestResults/Simple/data_types.txt b/vxquery-xtest/src/test/resources/ExpectedTestResults/Simple/data_types.txt
new file mode 100644
index 0000000..7976dbd
--- /dev/null
+++ b/vxquery-xtest/src/test/resources/ExpectedTestResults/Simple/data_types.txt
@@ -0,0 +1,15 @@
+10.99
+http://www.example.com/catalog.xml
+true
+8
+1999-12-31
+1999-12-31T00:00:00
+2.3
+1.5
+0.4
+---30+10:30
+64
+32
+16
+string
+01:02:03
diff --git a/vxquery-xtest/src/test/resources/Queries/XQuery/Simple/data_types.xq b/vxquery-xtest/src/test/resources/Queries/XQuery/Simple/data_types.xq
new file mode 100644
index 0000000..67a24dc
--- /dev/null
+++ b/vxquery-xtest/src/test/resources/Queries/XQuery/Simple/data_types.xq
@@ -0,0 +1,32 @@
+(: 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. :)
+
+(xs:untypedAtomic("10.99"),
+xs:anyURI("http://www.example.com/catalog.xml"),
+xs:boolean("true"),
+xs:byte(8),
+xs:date("1999-12-31"),
+xs:dateTime("1999-12-31T24:00:00"),
+xs:decimal(2.3),
+xs:double(1.5),
+xs:float(0.4),
+xs:gDay("---30+10:30"),
+xs:int(64),
+xs:long(32),
+xs:short(16),
+xs:string("string"),
+xs:time("01:02:03"))
diff --git a/vxquery-xtest/src/test/resources/cat/SingleQuery.xml b/vxquery-xtest/src/test/resources/cat/SingleQuery.xml
index c9bd305..8800339 100644
--- a/vxquery-xtest/src/test/resources/cat/SingleQuery.xml
+++ b/vxquery-xtest/src/test/resources/cat/SingleQuery.xml
@@ -23,9 +23,19 @@
<query name="add" date="2014-08-18"/>
<output-file compare="Text">add.txt</output-file>
</test-case>
+ <test-case name="simple-data-types" FilePath="Simple/" Creator="Preston Carman">
+ <description>Adds two numbers.</description>
+ <query name="data_types" date="2017-04-17"/>
+ <output-file compare="Text">data_types.txt</output-file>
+ </test-case>
<test-case name="simple-fn-doc" FilePath="Simple/" Creator="Preston Carman">
<description>Adds two numbers.</description>
<query name="fn_doc" date="2014-08-18"/>
<output-file compare="Text">fn_doc.txt</output-file>
</test-case>
+ <test-case name="simple-list" FilePath="Simple/" Creator="Preston Carman">
+ <description>Adds two numbers.</description>
+ <query name="list" date="2017-04-17"/>
+ <output-file compare="Text">list.txt</output-file>
+ </test-case>
</test-group>