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();

Reply via email to