http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/FnZeroOrOneScalarEvaluatorFactory.java ---------------------------------------------------------------------- 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.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 FnZeroOrOneScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory { private static final long serialVersionUID = 1L; @@ -39,7 +38,7 @@ public class FnZeroOrOneScalarEvaluatorFactory extends AbstractTaggedValueArgume @Override protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) - throws AlgebricksException { + throws HyracksDataException { final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable(); return new AbstractTaggedValueArgumentScalarEvaluator(args) { @Override
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/IterateUnnestingEvaluatorFactory.java ---------------------------------------------------------------------- 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,18 +16,17 @@ */ package org.apache.vxquery.runtime.functions.sequence; -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.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; public class IterateUnnestingEvaluatorFactory extends AbstractTaggedValueArgumentUnnestingEvaluatorFactory { private static final long serialVersionUID = 1L; @@ -38,14 +37,14 @@ public class IterateUnnestingEvaluatorFactory extends AbstractTaggedValueArgumen @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) { http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/OpToScalarEvaluatorFactory.java ---------------------------------------------------------------------- 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 @@ package org.apache.vxquery.runtime.functions.sequence; 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.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.LongPointable; -import org.apache.hyracks.data.std.util.ArrayBackedValueStorage; - public class OpToScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory { private static final long serialVersionUID = 1L; @@ -45,7 +44,7 @@ public class OpToScalarEvaluatorFactory extends AbstractTaggedValueArgumentScala @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(); http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/SequenceAggregateEvaluatorFactory.java ---------------------------------------------------------------------- diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/SequenceAggregateEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/sequence/SequenceAggregateEvaluatorFactory.java index 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 @@ package org.apache.vxquery.runtime.functions.sequence; 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.AbstractTaggedValueArgumentAggr 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 @@ public class SequenceAggregateEvaluatorFactory extends AbstractTaggedValueArgume } @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 @@ public class SequenceAggregateEvaluatorFactory extends AbstractTaggedValueArgume 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); http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/serialize/FnSerializeScalarEvaluatorFactory.java ---------------------------------------------------------------------- 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.DataOutput; 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.runtime.functions.base.AbstractTaggedValueArgumentScal 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 @@ public class FnSerializeScalarEvaluatorFactory extends AbstractTaggedValueArgume @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); } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluatorFactory.java ---------------------------------------------------------------------- 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 @@ public class AttributePathStepScalarEvaluatorFactory extends AbstractTaggedValue @Override protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) - throws AlgebricksException { + throws HyracksDataException { return new AttributePathStepScalarEvaluator(args, ctx); } } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java ---------------------------------------------------------------------- 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 @@ package org.apache.vxquery.runtime.functions.step; 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 @@ public class ChildPathStepScalarEvaluator extends AbstractTaggedValueArgumentSca 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); http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluatorFactory.java ---------------------------------------------------------------------- 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 @@ public class ChildPathStepScalarEvaluatorFactory extends AbstractTaggedValueArgu @Override protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) - throws AlgebricksException { + throws HyracksDataException { return new ChildPathStepScalarEvaluator(args, ctx); } } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnesting.java ---------------------------------------------------------------------- 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 @@ package org.apache.vxquery.runtime.functions.step; 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.exceptions.SystemException; 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 @@ public class ChildPathStepUnnesting extends AbstractForwardAxisPathStep { 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 class ChildPathStepUnnesting extends AbstractForwardAxisPathStep { } } - 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 @@ public class ChildPathStepUnnesting extends AbstractForwardAxisPathStep { * 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 @@ public class ChildPathStepUnnesting extends AbstractForwardAxisPathStep { return true; } catch (IOException e) { String description = ErrorCode.SYSE0001 + ": " + ErrorCode.SYSE0001.getDescription(); - throw new AlgebricksException(description); + throw new HyracksDataException(description); } } ++indexSequence; http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluator.java ---------------------------------------------------------------------- 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 @@ public class ChildPathStepUnnestingEvaluator extends AbstractTaggedValueArgument 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); } } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java ---------------------------------------------------------------------- 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 @@ public class ChildPathStepUnnestingEvaluatorFactory extends AbstractTaggedValueA @Override protected IUnnestingEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) - throws AlgebricksException { + throws HyracksDataException { return new ChildPathStepUnnestingEvaluator(ctx, args); } } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepScalarEvaluator.java ---------------------------------------------------------------------- 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 @@ package org.apache.vxquery.runtime.functions.step; 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 @@ public class DescendantOrSelfPathStepScalarEvaluator extends AbstractDescendantP 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); http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepScalarEvaluatorFactory.java ---------------------------------------------------------------------- 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 @@ public class DescendantOrSelfPathStepScalarEvaluatorFactory extends AbstractTagg @Override protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) - throws AlgebricksException { + throws HyracksDataException { return new DescendantOrSelfPathStepScalarEvaluator(args, ctx); } } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnesting.java ---------------------------------------------------------------------- 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.io.IOException; 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.exceptions.SystemException; 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 class DescendantOrSelfPathStepUnnesting extends AbstractForwardAxisPathSt } } - 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 @@ public class DescendantOrSelfPathStepUnnesting extends AbstractForwardAxisPathSt 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 @@ public class DescendantOrSelfPathStepUnnesting extends AbstractForwardAxisPathSt } } 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 @@ public class DescendantOrSelfPathStepUnnesting extends AbstractForwardAxisPathSt * 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 @@ public class DescendantOrSelfPathStepUnnesting extends AbstractForwardAxisPathSt return false; } catch (IOException e) { String description = ErrorCode.SYSE0001 + ": " + ErrorCode.SYSE0001.getDescription(); - throw new AlgebricksException(description); + throw new HyracksDataException(description); } finally { pp.giveBack(seqItem); } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnestingEvaluator.java ---------------------------------------------------------------------- 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 @@ public class DescendantOrSelfPathStepUnnestingEvaluator extends AbstractTaggedVa 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); } } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnestingEvaluatorFactory.java ---------------------------------------------------------------------- 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 @@ public class DescendantOrSelfPathStepUnnestingEvaluatorFactory extends @Override protected IUnnestingEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) - throws AlgebricksException { + throws HyracksDataException { return new DescendantOrSelfPathStepUnnestingEvaluator(ctx, args); } } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepScalarEvaluator.java ---------------------------------------------------------------------- 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 @@ package org.apache.vxquery.runtime.functions.step; 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 @@ public class DescendantPathStepScalarEvaluator extends AbstractDescendantPathSte 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); http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepScalarEvaluatorFactory.java ---------------------------------------------------------------------- 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 @@ public class DescendantPathStepScalarEvaluatorFactory extends AbstractTaggedValu @Override protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) - throws AlgebricksException { + throws HyracksDataException { return new DescendantOrSelfPathStepScalarEvaluator(args, ctx); } } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepUnnestingEvaluator.java ---------------------------------------------------------------------- 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,14 +16,13 @@ */ 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.exceptions.SystemException; +import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentUnnestingEvaluator; public class DescendantPathStepUnnestingEvaluator extends AbstractTaggedValueArgumentUnnestingEvaluator { final DescendantOrSelfPathStepUnnesting descendantPathStep; @@ -33,7 +32,7 @@ public class DescendantPathStepUnnestingEvaluator extends AbstractTaggedValueArg descendantPathStep = new DescendantOrSelfPathStepUnnesting(ctx, ppool, false); } - public boolean step(IPointable result) throws AlgebricksException { + public boolean step(IPointable result) throws HyracksDataException { return descendantPathStep.step(result); } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantPathStepUnnestingEvaluatorFactory.java ---------------------------------------------------------------------- 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 @@ public class DescendantPathStepUnnestingEvaluatorFactory extends AbstractTaggedV @Override protected IUnnestingEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) - throws AlgebricksException { + throws HyracksDataException { return new DescendantPathStepUnnestingEvaluator(ctx, args); } } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/NodeTestFilter.java ---------------------------------------------------------------------- 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.NameTest; 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 @@ public class NodeTestFilter { 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 @@ public class NodeTestFilter { 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 @@ public class NodeTestFilter { } }; break; - + case ANY: default: filter = new INodeFilter() { http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/SelfPathStepScalarEvaluatorFactory.java ---------------------------------------------------------------------- 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 @@ public class SelfPathStepScalarEvaluatorFactory extends AbstractTaggedValueArgum @Override protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) - throws AlgebricksException { + throws HyracksDataException { return new SelfPathStepScalarEvaluator(args, ctx); } } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/AbstractCharacterIteratorCopyingEvaluator.java ---------------------------------------------------------------------- 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 @@ package org.apache.vxquery.runtime.functions.strings; 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.exceptions.SystemException; 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 @@ public abstract class AbstractCharacterIteratorCopyingEvaluator extends Abstract 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) { http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/AbstractTranscodingCharacterIterator.java ---------------------------------------------------------------------- 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 @@ public abstract class AbstractTranscodingCharacterIterator implements ICharacter 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(); } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCodepointEqualEvaluatorFactory.java ---------------------------------------------------------------------- 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.AbstractTaggedValueArgumentScal 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 @@ public class FnCodepointEqualEvaluatorFactory extends AbstractTaggedValueArgumen @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(); http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCodepointsToStringEvaluatorFactory.java ---------------------------------------------------------------------- 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 @@ package org.apache.vxquery.runtime.functions.strings; 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.AbstractTaggedValueArgumentScal 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 @@ public class FnCodepointsToStringEvaluatorFactory extends AbstractTaggedValueArg @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 @@ public class FnCodepointsToStringEvaluatorFactory extends AbstractTaggedValueArg 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) { http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnCompareEvaluatorFactory.java ---------------------------------------------------------------------- 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.AbstractTaggedValueArgumentScal 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 @@ public class FnCompareEvaluatorFactory extends AbstractTaggedValueArgumentScalar @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(); http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnConcatEvaluatorFactory.java ---------------------------------------------------------------------- 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 @@ package org.apache.vxquery.runtime.functions.strings; 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.base.AbstractTaggedValueArgumentScal 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 @@ public class FnConcatEvaluatorFactory extends AbstractTaggedValueArgumentScalarE @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 @@ public class FnConcatEvaluatorFactory extends AbstractTaggedValueArgumentScalarE 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 @@ public class FnConcatEvaluatorFactory extends AbstractTaggedValueArgumentScalarE throw new SystemException(ErrorCode.XPTY0004); } + // Remove tag. stringp.set(abvsInner.getByteArray(), abvsInner.getStartOffset() + 1, abvsInner.getLength() - 1); } catch (IOException e) { @@ -206,15 +206,16 @@ public class FnConcatEvaluatorFactory extends AbstractTaggedValueArgumentScalarE } // 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); http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnContainsEvaluatorFactory.java ---------------------------------------------------------------------- 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.AbstractTaggedValueArgumentScal 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 @@ public class FnContainsEvaluatorFactory extends AbstractTaggedValueArgumentScala @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 @@ public class FnContainsEvaluatorFactory extends AbstractTaggedValueArgumentScala // 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 @@ public class FnContainsEvaluatorFactory extends AbstractTaggedValueArgumentScala break; } } - } else if (stringp2.getLength() == 2) { + } else if (stringp2.getUTF8Length() == 0) { booleanResult[1] = 1; } http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnEndsWithEvaluatorFactory.java ---------------------------------------------------------------------- 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.AbstractTaggedValueArgumentScal 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 @@ public class FnEndsWithEvaluatorFactory extends AbstractTaggedValueArgumentScala @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();
