You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2017/05/01 04:35:00 UTC
[2/8] vxquery git commit: VXQUERY-240: Update Hyracks Dependency to
version 0.3.0.
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnLowerCaseEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnLowerCaseEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnLowerCaseEvaluatorFactory.java
index cf431cd..7a0914f 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnLowerCaseEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnLowerCaseEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@ import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnLowerCaseEvaluatorFactory extends AbstractCharacterIteratorCopyingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@ public class FnLowerCaseEvaluatorFactory extends AbstractCharacterIteratorCopyin
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ICharacterIterator charIterator = new LowerCaseCharacterIterator(new UTF8StringCharacterIterator(stringp));
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStartsWithEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStartsWithEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStartsWithEvaluatorFactory.java
index 7d0cb7a..db9404a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStartsWithEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStartsWithEvaluatorFactory.java
@@ -16,6 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -26,13 +32,6 @@ import org.apache.vxquery.runtime.functions.base.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 FnStartsWithEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -42,7 +41,7 @@ public class FnStartsWithEvaluatorFactory extends AbstractTaggedValueArgumentSca
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp1 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp2 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp3 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
@@ -105,7 +104,7 @@ public class FnStartsWithEvaluatorFactory extends AbstractTaggedValueArgumentSca
// TODO use the third value as collation
// Only need to run comparisons if they both have a non empty string.
- if (stringp1.getLength() > 2 && stringp2.getLength() > 2) {
+ if (stringp1.getUTF8Length() > 0 && stringp2.getUTF8Length() > 0) {
int c1;
int c2;
while (true) {
@@ -121,7 +120,7 @@ public class FnStartsWithEvaluatorFactory extends AbstractTaggedValueArgumentSca
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/FnStringJoinEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringJoinEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringJoinEvaluatorFactory.java
index 576b409..e2dbbee 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringJoinEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringJoinEvaluatorFactory.java
@@ -19,8 +19,17 @@ 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.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.builders.atomic.VXQueryUTF8StringBuilder;
import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
@@ -28,16 +37,9 @@ import org.apache.vxquery.runtime.functions.base.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;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnStringJoinEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
+ private static final int STRING_EXPECTED_LENGTH = 300;
public FnStringJoinEvaluatorFactory(IScalarEvaluatorFactory[] args) {
super(args);
@@ -45,12 +47,14 @@ public class FnStringJoinEvaluatorFactory extends AbstractTaggedValueArgumentSca
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final TaggedValuePointable tvp = new TaggedValuePointable();
final UTF8StringPointable stringp1 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringPointable stringp2 = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final SequencePointable seq = (SequencePointable) SequencePointable.FACTORY.createPointable();
+ final GrowableArray ga = new GrowableArray();
+ final VXQueryUTF8StringBuilder sb = new VXQueryUTF8StringBuilder();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
@@ -90,16 +94,15 @@ public class FnStringJoinEvaluatorFactory extends AbstractTaggedValueArgumentSca
out.write(ValueTag.XS_STRING_TAG);
// Default values for the length and update later
- out.write(0);
- out.write(0);
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
int seqLen = seq.getEntryCount();
if (seqLen != 0) {
for (int j = 0; j < seqLen; ++j) {
// Add separator if more than one value.
if (j > 0) {
- out.write(stringp2.getByteArray(), stringp2.getStartOffset() + 2,
- stringp2.getUTFLength());
+ sb.appendUtf8StringPointable(stringp2);
}
// Get string from sequence.
seq.getEntry(j, tvp);
@@ -107,13 +110,11 @@ public class FnStringJoinEvaluatorFactory extends AbstractTaggedValueArgumentSca
throw new SystemException(ErrorCode.FORG0006);
}
tvp.getValue(stringp1);
- out.write(stringp1.getByteArray(), stringp1.getStartOffset() + 2, stringp1.getUTFLength());
+ sb.appendUtf8StringPointable(stringp1);
}
-
- // Update the full length string in the byte array.
- abvs.getByteArray()[1] = (byte) (((abvs.getLength() - 3) >>> 8) & 0xFF);
- abvs.getByteArray()[2] = (byte) (((abvs.getLength() - 3) >>> 0) & 0xFF);
}
+ sb.finish();
+ out.write(ga.getByteArray(), 0, ga.getLength());
result.set(abvs.getByteArray(), abvs.getStartOffset(), abvs.getLength());
} catch (IOException e) {
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringLengthEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringLengthEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringLengthEvaluatorFactory.java
index 298b45c..363a73d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringLengthEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringLengthEvaluatorFactory.java
@@ -18,6 +18,13 @@ package org.apache.vxquery.runtime.functions.strings;
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -28,14 +35,6 @@ import org.apache.vxquery.runtime.functions.base.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;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnStringLengthEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -45,7 +44,7 @@ public class FnStringLengthEvaluatorFactory extends AbstractTaggedValueArgumentS
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringScalarEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringScalarEvaluatorFactory.java
index 27b5463..2eb927b 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringScalarEvaluatorFactory.java
@@ -19,6 +19,13 @@ 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.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -30,14 +37,6 @@ import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScal
import org.apache.vxquery.runtime.functions.cast.CastToStringOperation;
import org.apache.vxquery.runtime.functions.util.AtomizeHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnStringScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -47,7 +46,7 @@ public class FnStringScalarEvaluatorFactory extends AbstractTaggedValueArgumentS
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
final CastToStringOperation castToString = new CastToStringOperation();
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringToCodepointsEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringToCodepointsEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringToCodepointsEvaluatorFactory.java
index f77d869..c95a7ec 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringToCodepointsEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnStringToCodepointsEvaluatorFactory.java
@@ -19,6 +19,13 @@ 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.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
@@ -30,14 +37,6 @@ import org.apache.vxquery.runtime.functions.base.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;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class FnStringToCodepointsEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -47,7 +46,7 @@ public class FnStringToCodepointsEvaluatorFactory extends AbstractTaggedValueArg
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final UTF8StringCharacterIterator charIterator = new UTF8StringCharacterIterator(stringp);
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
@@ -75,7 +74,7 @@ public class FnStringToCodepointsEvaluatorFactory extends AbstractTaggedValueArg
throw new SystemException(ErrorCode.FORG0006);
}
tvp1.getValue(stringp);
- if (stringp.getLength() == 2) {
+ if (stringp.getUTF8Length() == 0) {
XDMConstants.setEmptySequence(result);
return;
}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringAfterEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringAfterEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringAfterEvaluatorFactory.java
index f069152..ca4143d 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringAfterEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringAfterEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@ import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnSubstringAfterEvaluatorFactory extends AbstractCharacterIteratorCopyingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@ public class FnSubstringAfterEvaluatorFactory extends AbstractCharacterIteratorC
@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/FnSubstringBeforeEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringBeforeEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringBeforeEvaluatorFactory.java
index fb8e937..acc931e 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringBeforeEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringBeforeEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@ import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnSubstringBeforeEvaluatorFactory extends AbstractCharacterIteratorCopyingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@ public class FnSubstringBeforeEvaluatorFactory extends AbstractCharacterIterator
@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/FnSubstringEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringEvaluatorFactory.java
index 0691a80..d04bcfe 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnSubstringEvaluatorFactory.java
@@ -16,22 +16,21 @@
*/
package org.apache.vxquery.runtime.functions.strings;
-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.datamodel.values.XDMConstants;
-import org.apache.vxquery.exceptions.ErrorCode;
-import org.apache.vxquery.exceptions.SystemException;
-import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.primitive.DoublePointable;
import org.apache.hyracks.data.std.primitive.LongPointable;
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.vxquery.datamodel.accessors.SequencePointable;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.datamodel.values.XDMConstants;
+import org.apache.vxquery.exceptions.ErrorCode;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.runtime.functions.util.FunctionHelper;
public class FnSubstringEvaluatorFactory extends AbstractCharacterIteratorCopyingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -57,7 +56,7 @@ public class FnSubstringEvaluatorFactory extends AbstractCharacterIteratorCopyin
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final DoublePointable doublep = (DoublePointable) DoublePointable.FACTORY.createPointable();
final LongPointable longp = (LongPointable) LongPointable.FACTORY.createPointable();
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnUpperCaseEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnUpperCaseEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnUpperCaseEvaluatorFactory.java
index 08492ff..c80fb48 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnUpperCaseEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/FnUpperCaseEvaluatorFactory.java
@@ -16,6 +16,11 @@
*/
package org.apache.vxquery.runtime.functions.strings;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -24,12 +29,6 @@ import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-
public class FnUpperCaseEvaluatorFactory extends AbstractCharacterIteratorCopyingEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -39,7 +38,7 @@ public class FnUpperCaseEvaluatorFactory extends AbstractCharacterIteratorCopyin
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
final UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
final ICharacterIterator charIterator = new UpperCaseCharacterIterator(new UTF8StringCharacterIterator(stringp));
final SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/UTF8StringCharacterIterator.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/UTF8StringCharacterIterator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/UTF8StringCharacterIterator.java
index c170384..5b66bbf 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/UTF8StringCharacterIterator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/strings/UTF8StringCharacterIterator.java
@@ -45,13 +45,7 @@ public class UTF8StringCharacterIterator implements ICharacterIterator {
LOGGER.finer(" UTF8StringCharacterIterator char[" + byteOffset + "] = " + c);
}
// Increment cursor
- if ((c >= 0x0001) && (c <= 0x007F)) {
- ++byteOffset;
- } else if (c > 0x07FF) {
- byteOffset += 3;
- } else {
- byteOffset += 2;
- }
+ byteOffset += stringp.charSize(byteOffset);
}
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.finer(" END UTF8StringCharacterIterator char[" + byteOffset + "] = " + c);
@@ -61,7 +55,7 @@ public class UTF8StringCharacterIterator implements ICharacterIterator {
@Override
public void reset() {
- byteOffset = 2;
+ byteOffset = stringp.getMetaDataLength();
}
public void setByteOffset(int byteOffset) {
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/trace/FnTraceScalarEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/trace/FnTraceScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/trace/FnTraceScalarEvaluatorFactory.java
index a202dc5..9159010 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/trace/FnTraceScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/trace/FnTraceScalarEvaluatorFactory.java
@@ -16,10 +16,10 @@
*/
package org.apache.vxquery.runtime.functions.trace;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -39,7 +39,7 @@ public class FnTraceScalarEvaluatorFactory extends AbstractTaggedValueArgumentSc
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
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/type/InstanceOfScalarEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/InstanceOfScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/InstanceOfScalarEvaluatorFactory.java
index d9c5796..fc8b478 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/InstanceOfScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/InstanceOfScalarEvaluatorFactory.java
@@ -16,16 +16,15 @@
*/
package org.apache.vxquery.runtime.functions.type;
-import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.datamodel.values.XDMConstants;
-import org.apache.vxquery.exceptions.SystemException;
-import org.apache.vxquery.types.SequenceType;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.values.XDMConstants;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.types.SequenceType;
public class InstanceOfScalarEvaluatorFactory extends AbstractTypeScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -36,7 +35,7 @@ public class InstanceOfScalarEvaluatorFactory extends AbstractTypeScalarEvaluato
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTypeScalarEvaluator(args, ctx) {
private final SequenceTypeMatcher matcher = new SequenceTypeMatcher();
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/PromoteScalarEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/PromoteScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/PromoteScalarEvaluatorFactory.java
index c1bb24e..f2088d7 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/PromoteScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/PromoteScalarEvaluatorFactory.java
@@ -18,6 +18,12 @@ package org.apache.vxquery.runtime.functions.type;
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -30,13 +36,6 @@ import org.apache.vxquery.runtime.functions.cast.CastToStringOperation;
import org.apache.vxquery.types.BuiltinTypeRegistry;
import org.apache.vxquery.types.SequenceType;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class PromoteScalarEvaluatorFactory extends AbstractTypeScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -46,7 +45,7 @@ public class PromoteScalarEvaluatorFactory extends AbstractTypeScalarEvaluatorFa
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTypeScalarEvaluator(args, ctx) {
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
final DataOutput dOut = abvs.getDataOutput();
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/TreatScalarEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/TreatScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/TreatScalarEvaluatorFactory.java
index 4913c71..0863de2 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/TreatScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/type/TreatScalarEvaluatorFactory.java
@@ -16,16 +16,15 @@
*/
package org.apache.vxquery.runtime.functions.type;
-import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
-import org.apache.vxquery.exceptions.ErrorCode;
-import org.apache.vxquery.exceptions.SystemException;
-import org.apache.vxquery.types.SequenceType;
-
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.exceptions.ErrorCode;
+import org.apache.vxquery.exceptions.SystemException;
+import org.apache.vxquery.types.SequenceType;
public class TreatScalarEvaluatorFactory extends AbstractTypeScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -36,7 +35,7 @@ public class TreatScalarEvaluatorFactory extends AbstractTypeScalarEvaluatorFact
@Override
protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
- throws AlgebricksException {
+ throws HyracksDataException {
return new AbstractTypeScalarEvaluator(args, ctx) {
private final SequenceTypeMatcher matcher = new SequenceTypeMatcher();
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/unary/AbstractNumericUnaryScalarEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/unary/AbstractNumericUnaryScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/unary/AbstractNumericUnaryScalarEvaluatorFactory.java
index bd8c360..35b2d24 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/unary/AbstractNumericUnaryScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/unary/AbstractNumericUnaryScalarEvaluatorFactory.java
@@ -18,6 +18,13 @@ package org.apache.vxquery.runtime.functions.unary;
import java.io.DataOutput;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.TypedPointables;
import org.apache.vxquery.datamodel.values.ValueTag;
@@ -28,14 +35,6 @@ import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScal
import org.apache.vxquery.runtime.functions.util.FunctionHelper;
import org.apache.vxquery.types.BuiltinTypeRegistry;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
-import org.apache.hyracks.api.context.IHyracksTaskContext;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public abstract class AbstractNumericUnaryScalarEvaluatorFactory extends
AbstractTaggedValueArgumentScalarEvaluatorFactory {
private static final long serialVersionUID = 1L;
@@ -46,7 +45,7 @@ public abstract class AbstractNumericUnaryScalarEvaluatorFactory extends
@Override
protected AbstractTaggedValueArgumentScalarEvaluator createEvaluator(IHyracksTaskContext ctx,
- IScalarEvaluator[] args) throws AlgebricksException {
+ IScalarEvaluator[] args) throws HyracksDataException {
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
final AbstractNumericUnaryOperation aOp = createNumericUnaryOperation();
final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/AtomizeHelper.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/AtomizeHelper.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/AtomizeHelper.java
index c31a5cf..a8e5652 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/AtomizeHelper.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/AtomizeHelper.java
@@ -19,6 +19,12 @@ package org.apache.vxquery.runtime.functions.util;
import java.io.DataOutput;
import java.io.IOException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.vxquery.datamodel.accessors.PointablePool;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -29,27 +35,27 @@ import org.apache.vxquery.datamodel.accessors.nodes.NodeTreePointable;
import org.apache.vxquery.datamodel.accessors.nodes.PINodePointable;
import org.apache.vxquery.datamodel.accessors.nodes.TextOrCommentNodePointable;
import org.apache.vxquery.datamodel.values.ValueTag;
-
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.exceptions.ErrorCode;
import org.apache.vxquery.exceptions.SystemException;
public class AtomizeHelper {
- AttributeNodePointable anp = (AttributeNodePointable) AttributeNodePointable.FACTORY.createPointable();
- DocumentNodePointable dnp = (DocumentNodePointable) DocumentNodePointable.FACTORY.createPointable();
- ElementNodePointable enp = (ElementNodePointable) ElementNodePointable.FACTORY.createPointable();
- NodeTreePointable ntp = (NodeTreePointable) NodeTreePointable.FACTORY.createPointable();
- PINodePointable pnp = (PINodePointable) PINodePointable.FACTORY.createPointable();
- SequencePointable sp = (SequencePointable) SequencePointable.FACTORY.createPointable();
- TextOrCommentNodePointable tcnp = (TextOrCommentNodePointable) TextOrCommentNodePointable.FACTORY.createPointable();
- ArrayBackedValueStorage tempABVS = new ArrayBackedValueStorage();
- TaggedValuePointable tempTVP = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
- VoidPointable vp = (VoidPointable) VoidPointable.FACTORY.createPointable();
+ private static final int STRING_EXPECTED_LENGTH = 300;
+ private final GrowableArray ga = new GrowableArray();
+ private final UTF8StringBuilder sb = new UTF8StringBuilder();
+ private final AttributeNodePointable anp = (AttributeNodePointable) AttributeNodePointable.FACTORY
+ .createPointable();
+ private final DocumentNodePointable dnp = (DocumentNodePointable) DocumentNodePointable.FACTORY.createPointable();
+ private final ElementNodePointable enp = (ElementNodePointable) ElementNodePointable.FACTORY.createPointable();
+ private final NodeTreePointable ntp = (NodeTreePointable) NodeTreePointable.FACTORY.createPointable();
+ private final PINodePointable pnp = (PINodePointable) PINodePointable.FACTORY.createPointable();
+ private final SequencePointable sp = (SequencePointable) SequencePointable.FACTORY.createPointable();
+ private final TextOrCommentNodePointable tcnp = (TextOrCommentNodePointable) TextOrCommentNodePointable.FACTORY
+ .createPointable();
+ private final ArrayBackedValueStorage tempABVS = new ArrayBackedValueStorage();
+ private final TaggedValuePointable tempTVP = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+ private final VoidPointable vp = (VoidPointable) VoidPointable.FACTORY.createPointable();
- public void atomize(TaggedValuePointable tvp, PointablePool pp, IPointable result)
- throws SystemException, IOException {
+ public void atomize(TaggedValuePointable tvp, PointablePool pp, IPointable result) throws SystemException, IOException {
switch (tvp.getTag()) {
case ValueTag.NODE_TREE_TAG:
tvp.getValue(ntp);
@@ -114,7 +120,7 @@ public class AtomizeHelper {
}
}
- public static void buildConcatenationRec(SequencePointable sp, PointablePool pp, DataOutput out,
+ public static void buildConcatenationRec(SequencePointable sp, PointablePool pp, UTF8StringBuilder sb,
NodeTreePointable ntp) throws IOException {
TaggedValuePointable tempTVP2 = pp.takeOne(TaggedValuePointable.class);
int nItems = sp.getEntryCount();
@@ -123,13 +129,13 @@ public class AtomizeHelper {
switch (tempTVP2.getTag()) {
case ValueTag.TEXT_NODE_TAG: {
TextOrCommentNodePointable tcnp = pp.takeOne(TextOrCommentNodePointable.class);
- VoidPointable vp = pp.takeOne(VoidPointable.class);
+ UTF8StringPointable utf8sp = pp.takeOne(UTF8StringPointable.class);
try {
tempTVP2.getValue(tcnp);
- tcnp.getValue(ntp, vp);
- out.write(vp.getByteArray(), vp.getStartOffset() + 2, vp.getLength() - 2);
+ tcnp.getValue(ntp, utf8sp);
+ sb.appendUtf8StringPointable(utf8sp);
} finally {
- pp.giveBack(vp);
+ pp.giveBack(utf8sp);
pp.giveBack(tcnp);
}
break;
@@ -141,7 +147,7 @@ public class AtomizeHelper {
tempTVP2.getValue(enp);
if (enp.childrenChunkExists()) {
enp.getChildrenSequence(ntp, sp2);
- buildConcatenationRec(sp2, pp, out, ntp);
+ buildConcatenationRec(sp2, pp, sb, ntp);
}
} finally {
pp.giveBack(sp2);
@@ -153,20 +159,17 @@ public class AtomizeHelper {
pp.giveBack(tempTVP2);
}
- public static void buildStringConcatenation(SequencePointable sp, PointablePool pp,
- ArrayBackedValueStorage tempABVS, NodeTreePointable ntp) throws IOException {
+ public void buildStringConcatenation(SequencePointable sp, PointablePool pp, ArrayBackedValueStorage tempABVS,
+ NodeTreePointable ntp) throws IOException {
tempABVS.reset();
DataOutput out = tempABVS.getDataOutput();
out.write(ValueTag.XS_UNTYPED_ATOMIC_TAG);
+ ga.reset();
+ sb.reset(ga, STRING_EXPECTED_LENGTH);
// Leave room for the utf-8 length
- out.write(0);
- out.write(0);
- buildConcatenationRec(sp, pp, out, ntp);
- int utflen = tempABVS.getLength() - 3;
- byte[] bytes = tempABVS.getByteArray();
- // Patch utf-8 length at bytes 1 and 2
- bytes[1] = (byte) ((utflen >>> 8) & 0xFF);
- bytes[2] = (byte) ((utflen >>> 0) & 0xFF);
+ buildConcatenationRec(sp, pp, sb, ntp);
+ sb.finish();
+ out.write(ga.getByteArray(), 0, ga.getLength());
}
}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/FunctionHelper.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/FunctionHelper.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/FunctionHelper.java
index 49e1271..7c3197a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/FunctionHelper.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/util/FunctionHelper.java
@@ -25,17 +25,18 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
import java.util.List;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.primitive.DoublePointable;
import org.apache.hyracks.data.std.primitive.LongPointable;
import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.hyracks.dataflow.common.comm.util.ByteBufferInputStream;
import org.apache.vxquery.context.DynamicContext;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
@@ -486,7 +487,7 @@ public class FunctionHelper {
public static boolean compareTaggedValues(AbstractValueComparisonOperation aOp, TaggedValuePointable tvp1,
TaggedValuePointable tvp2, DynamicContext dCtx, TypedPointables tp1, TypedPointables tp2)
- throws SystemException {
+ throws SystemException {
int tid1 = getBaseTypeForComparisons(tvp1.getTag());
int tid2 = getBaseTypeForComparisons(tvp2.getTag());
@@ -1137,13 +1138,6 @@ public class FunctionHelper {
return max;
}
- public static String getStringFromPointable(UTF8StringPointable stringp, ByteBufferInputStream bbis,
- DataInputStream di) throws IOException {
- bbis.setByteBuffer(ByteBuffer.wrap(Arrays.copyOfRange(stringp.getByteArray(), stringp.getStartOffset(),
- stringp.getLength() + stringp.getStartOffset())), 0);
- return di.readUTF();
- }
-
public static long getTimezone(ITimezone timezonep) {
return timezonep.getTimezoneHour() * DateTime.CHRONON_OF_HOUR
+ timezonep.getTimezoneMinute() * DateTime.CHRONON_OF_MINUTE;
@@ -1212,7 +1206,7 @@ public class FunctionHelper {
}
public static void printUTF8String(UTF8StringPointable stringp) {
- System.err.println(" printUTF8String START length = " + stringp.getUTFLength());
+ System.err.println(" printUTF8String START length = " + stringp.getUTF8Length());
ICharacterIterator charIterator = new UTF8StringCharacterIterator(stringp);
charIterator.reset();
for (int c = charIterator.next(); c != ICharacterIterator.EOS_CHAR; c = charIterator.next()) {
@@ -1223,8 +1217,7 @@ public class FunctionHelper {
public static void readInDocFromPointable(UTF8StringPointable stringp, ByteBufferInputStream bbis,
DataInputStream di, ArrayBackedValueStorage abvs, IParser parser) throws IOException {
- String fName = getStringFromPointable(stringp, bbis, di);
- readInDocFromString(fName, bbis, di, abvs, parser);
+ readInDocFromString(stringp.toString(), bbis, di, abvs, parser);
}
public static void readInDocFromString(String fName, ByteBufferInputStream bbis, DataInputStream di,
@@ -1262,7 +1255,7 @@ public class FunctionHelper {
public static boolean transformThenCompareMinMaxTaggedValues(AbstractValueComparisonOperation aOp,
TaggedValuePointable tvp1, TaggedValuePointable tvp2, DynamicContext dCtx, TypedPointables tp1,
- TypedPointables tp2) throws SystemException {
+ TypedPointables tp2) throws HyracksDataException {
TaggedValuePointable tvp1new = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
TaggedValuePointable tvp2new = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
@@ -1308,46 +1301,61 @@ public class FunctionHelper {
}
}
- public static void writeChar(char c, DataOutput dOut) {
- try {
- if ((c >= 0x0001) && (c <= 0x007F)) {
- dOut.write((byte) c);
- } else if (c > 0x07FF) {
- dOut.write((byte) (0xE0 | ((c >> 12) & 0x0F)));
- dOut.write((byte) (0x80 | ((c >> 6) & 0x3F)));
- dOut.write((byte) (0x80 | ((c >> 0) & 0x3F)));
- } else {
- dOut.write((byte) (0xC0 | ((c >> 6) & 0x1F)));
- dOut.write((byte) (0x80 | ((c >> 0) & 0x3F)));
- }
- } catch (IOException e) {
- e.printStackTrace();
+ public static void writeChar(char c, UTF8StringBuilder sb) throws IOException {
+ sb.appendChar(c);
+ }
+
+ public static void stringToGrowableArray(String value, GrowableArray ga, UTF8StringBuilder sb, int expectedLength)
+ throws IOException {
+ ga.reset();
+ sb.reset(ga, expectedLength);
+ sb.appendString(value);
+ sb.finish();
+ }
+
+ public static void charSequenceToGrowableArray(CharSequence charSequence, GrowableArray ga, UTF8StringBuilder sb,
+ int expectedLength) throws IOException {
+ ga.reset();
+ sb.reset(ga, expectedLength);
+ for (int i = 0; i < charSequence.length(); ++i) {
+ sb.appendChar(charSequence.charAt(i));
+ }
+ sb.finish();
+ }
+
+ public static void charArrayToGrowableArray(char[] ch, int start, int length, GrowableArray ga,
+ UTF8StringBuilder sb, int expectedLength) throws IOException {
+ ga.reset();
+ sb.reset(ga, expectedLength);
+ for (int i = start; i < start + length; ++i) {
+ sb.appendChar(ch[i]);
}
+ sb.finish();
}
- public static void writeCharSequence(CharSequence charSequence, DataOutput dOut) {
+ public static void writeCharSequence(CharSequence charSequence, UTF8StringBuilder sb) throws IOException {
for (int i = 0; i < charSequence.length(); ++i) {
- writeChar(charSequence.charAt(i), dOut);
+ sb.appendChar(charSequence.charAt(i));
}
}
- public static void writeCharArray(char[] ch, int start, int length, DataOutput dOut) {
+ public static void writeCharArray(char[] ch, int start, int length, UTF8StringBuilder sb) throws IOException {
for (int i = start; i < start + length; ++i) {
- writeChar(ch[i], dOut);
+ sb.appendChar(ch[i]);
}
}
- public static void writeDateAsString(IDate date, DataOutput dOut) {
+ public static void writeDateAsString(IDate date, UTF8StringBuilder sb) throws IOException {
// Year
- writeNumberWithPadding(date.getYear(), 4, dOut);
- writeChar('-', dOut);
+ writeNumberWithPadding(date.getYear(), 4, sb);
+ sb.appendChar('-');
// Month
- writeNumberWithPadding(date.getMonth(), 2, dOut);
- writeChar('-', dOut);
+ writeNumberWithPadding(date.getMonth(), 2, sb);
+ sb.appendChar('-');
// Day
- writeNumberWithPadding(date.getDay(), 2, dOut);
+ writeNumberWithPadding(date.getDay(), 2, sb);
}
/**
@@ -1359,66 +1367,66 @@ public class FunctionHelper {
* padding
* @param dOut
* data output
+ * @throws IOException
*/
-
- public static void writeNumberWithPadding(long valueArg, int paddingArg, DataOutput dOut) {
+ public static void writeNumberWithPadding(long valueArg, int paddingArg, UTF8StringBuilder sb) throws IOException {
long value = valueArg;
int padding = paddingArg;
if (value < 0) {
- writeChar('-', dOut);
+ sb.appendChar('-');
value = Math.abs(value);
}
int nDigits = getNumberOfDigits(value);
// Add zero padding for set length numbers.
while (padding > nDigits) {
- writeChar('0', dOut);
+ sb.appendChar('0');
--padding;
}
// Write the actual number.
long pow10 = (long) Math.pow(10, nDigits - 1.0);
for (int i = nDigits - 1; i >= 0; --i) {
- writeChar((char) ('0' + (value / pow10)), dOut);
+ sb.appendChar((char) ('0' + (value / pow10)));
value %= pow10;
pow10 /= 10;
}
}
- public static void writeTimeAsString(ITime time, DataOutput dOut) {
+ public static void writeTimeAsString(ITime time, UTF8StringBuilder sb) throws IOException {
// Hours
- writeNumberWithPadding(time.getHour(), 2, dOut);
- writeChar(':', dOut);
+ writeNumberWithPadding(time.getHour(), 2, sb);
+ sb.appendChar(':');
// Minute
- writeNumberWithPadding(time.getMinute(), 2, dOut);
- writeChar(':', dOut);
+ writeNumberWithPadding(time.getMinute(), 2, sb);
+ sb.appendChar(':');
// Milliseconds
- writeNumberWithPadding(time.getMilliSecond() / DateTime.CHRONON_OF_SECOND, 2, dOut);
+ writeNumberWithPadding(time.getMilliSecond() / DateTime.CHRONON_OF_SECOND, 2, sb);
if (time.getMilliSecond() % DateTime.CHRONON_OF_SECOND != 0) {
- writeChar('.', dOut);
- writeNumberWithPadding(time.getMilliSecond() % DateTime.CHRONON_OF_SECOND, 3, dOut);
+ sb.appendChar('.');
+ writeNumberWithPadding(time.getMilliSecond() % DateTime.CHRONON_OF_SECOND, 3, sb);
}
}
- public static void writeTimezoneAsString(ITimezone timezone, DataOutput dOut) {
+ public static void writeTimezoneAsString(ITimezone timezone, UTF8StringBuilder sb) throws IOException {
long timezoneHour = timezone.getTimezoneHour();
long timezoneMinute = timezone.getTimezoneMinute();
if (timezoneHour != DateTime.TIMEZONE_HOUR_NULL && timezoneMinute != DateTime.TIMEZONE_MINUTE_NULL) {
if (timezoneHour == 0 && timezoneMinute == 0) {
- writeChar('Z', dOut);
+ sb.appendChar('Z');
} else {
if (timezoneHour >= 0 && timezoneMinute >= 0) {
- writeChar('+', dOut);
+ sb.appendChar('+');
} else {
- writeChar('-', dOut);
+ sb.appendChar('-');
timezoneHour = Math.abs(timezoneHour);
timezoneMinute = Math.abs(timezoneMinute);
}
- writeNumberWithPadding(timezoneHour, 2, dOut);
- writeChar(':', dOut);
- writeNumberWithPadding(timezoneMinute, 2, dOut);
+ writeNumberWithPadding(timezoneHour, 2, sb);
+ sb.appendChar(':');
+ writeNumberWithPadding(timezoneMinute, 2, sb);
}
}
}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java b/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
index 984ab81..6e20ba1 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
@@ -20,6 +20,18 @@ import java.io.DataOutput;
import java.io.IOException;
import java.io.PrintStream;
+import org.apache.hyracks.algebricks.data.IPrinter;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.primitive.BooleanPointable;
+import org.apache.hyracks.data.std.primitive.BytePointable;
+import org.apache.hyracks.data.std.primitive.DoublePointable;
+import org.apache.hyracks.data.std.primitive.FloatPointable;
+import org.apache.hyracks.data.std.primitive.IntegerPointable;
+import org.apache.hyracks.data.std.primitive.LongPointable;
+import org.apache.hyracks.data.std.primitive.ShortPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.vxquery.datamodel.accessors.PointablePool;
import org.apache.vxquery.datamodel.accessors.PointablePoolFactory;
import org.apache.vxquery.datamodel.accessors.SequencePointable;
@@ -44,19 +56,6 @@ import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.cast.CastToStringOperation;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.data.std.primitive.BooleanPointable;
-import org.apache.hyracks.data.std.primitive.BytePointable;
-import org.apache.hyracks.data.std.primitive.DoublePointable;
-import org.apache.hyracks.data.std.primitive.FloatPointable;
-import org.apache.hyracks.data.std.primitive.IntegerPointable;
-import org.apache.hyracks.data.std.primitive.LongPointable;
-import org.apache.hyracks.data.std.primitive.ShortPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-
public class XMLSerializer implements IPrinter {
private final PointablePool pp;
@@ -873,8 +872,8 @@ public class XMLSerializer implements IPrinter {
}
private void printString(PrintStream ps, UTF8StringPointable utf8sp) {
- int utfLen = utf8sp.getUTFLength();
- int offset = 2;
+ int utfLen = utf8sp.getUTF8Length();
+ int offset = utf8sp.getMetaDataLength();
while (utfLen > 0) {
char c = utf8sp.charAt(offset);
switch (c) {
@@ -902,7 +901,7 @@ public class XMLSerializer implements IPrinter {
ps.append(c);
break;
}
- int cLen = UTF8StringPointable.getModifiedUTF8Len(c);
+ int cLen = utf8sp.charSize(offset);
offset += cLen;
utfLen -= cLen;
}
@@ -941,7 +940,7 @@ public class XMLSerializer implements IPrinter {
}
@Override
- public void init() throws AlgebricksException {
+ public void init() throws HyracksDataException {
}
}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/types/NameTest.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/NameTest.java b/vxquery-core/src/main/java/org/apache/vxquery/types/NameTest.java
index fde6e07..a4b31bd 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/NameTest.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/NameTest.java
@@ -19,7 +19,7 @@ package org.apache.vxquery.types;
import java.io.Serializable;
import java.util.Arrays;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.util.string.UTF8StringUtil;
public final class NameTest implements Serializable {
private static final long serialVersionUID = 1L;
@@ -49,13 +49,13 @@ public final class NameTest implements Serializable {
StringBuilder buffer = new StringBuilder();
buffer.append("NameTest({");
if (uri != null) {
- UTF8StringPointable.toString(buffer, uri, 0);
+ UTF8StringUtil.toString(buffer, uri, 0);
} else {
buffer.append('*');
}
buffer.append('}');
if (localName != null) {
- UTF8StringPointable.toString(buffer, localName, 0);
+ UTF8StringUtil.toString(buffer, localName, 0);
} else {
buffer.append('*');
}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java b/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java
index c445ba7..d29242e 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/types/ProcessingInstructionType.java
@@ -18,7 +18,7 @@ package org.apache.vxquery.types;
import java.util.Arrays;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.util.string.UTF8StringUtil;
public final class ProcessingInstructionType extends AbstractNodeType {
private static final long serialVersionUID = 1L;
@@ -44,7 +44,7 @@ public final class ProcessingInstructionType extends AbstractNodeType {
public String toString() {
StringBuilder sb = new StringBuilder("processing-instruction(");
if (target != null) {
- UTF8StringPointable.toString(sb, target, 0);
+ UTF8StringUtil.toString(sb, target, 0);
}
return sb.append(")").toString();
}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java b/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java
index 846c27b..84c8ddf 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/SAXContentHandler.java
@@ -22,12 +22,13 @@ import java.util.List;
import org.apache.hyracks.api.comm.IFrameFieldAppender;
import org.apache.hyracks.api.comm.IFrameWriter;
import org.apache.hyracks.api.exceptions.HyracksDataException;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.data.std.util.GrowableArray;
+import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.hyracks.dataflow.common.comm.util.FrameUtils;
+import org.apache.hyracks.util.string.UTF8StringUtil;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.nodes.NodeTreePointable;
-import org.apache.vxquery.datamodel.builders.atomic.UTF8StringBuilder;
import org.apache.vxquery.datamodel.builders.nodes.AbstractNodeBuilder;
import org.apache.vxquery.datamodel.builders.nodes.AttributeNodeBuilder;
import org.apache.vxquery.datamodel.builders.nodes.CommentNodeBuilder;
@@ -37,6 +38,7 @@ import org.apache.vxquery.datamodel.builders.nodes.ElementNodeBuilder;
import org.apache.vxquery.datamodel.builders.nodes.PINodeBuilder;
import org.apache.vxquery.datamodel.builders.nodes.TextNodeBuilder;
import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.runtime.functions.util.FunctionHelper;
import org.apache.vxquery.types.BuiltinTypeQNames;
import org.apache.vxquery.types.ElementType;
import org.apache.vxquery.types.NameTest;
@@ -50,6 +52,8 @@ import org.xml.sax.SAXException;
import org.xml.sax.ext.LexicalHandler;
public class SAXContentHandler implements ContentHandler, LexicalHandler {
+ private static final int STRING_EXPECTED_LENGTH = 300;
+
// XML node builders
protected final AttributeNodeBuilder anb;
protected final CommentNodeBuilder cnb;
@@ -58,6 +62,7 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
protected final PINodeBuilder pinb;
protected final TextNodeBuilder tnb;
protected final UTF8StringBuilder utf8b;
+ private final UTF8StringBuilder utf8bInternal;
protected final List<ElementNodeBuilder> enbStack;
protected final List<ElementNodeBuilder> freeENBList;
protected boolean isIndexHandler;
@@ -83,7 +88,8 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
protected int nodeIdCounter;
protected final ITreeNodeIdProvider nodeIdProvider;
protected final ArrayBackedValueStorage tempABVS;
- private final ArrayBackedValueStorage textABVS;
+ private final GrowableArray textGA;
+ private final GrowableArray textGAInternal;
public SAXContentHandler(boolean attachTypes, ITreeNodeIdProvider nodeIdProvider, boolean isIndexHandler) {
// XML node builders
@@ -94,8 +100,9 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
pinb = new PINodeBuilder();
tnb = new TextNodeBuilder();
utf8b = new UTF8StringBuilder();
- enbStack = new ArrayList<ElementNodeBuilder>();
- freeENBList = new ArrayList<ElementNodeBuilder>();
+ utf8bInternal = new UTF8StringBuilder();
+ enbStack = new ArrayList<>();
+ freeENBList = new ArrayList<>();
// Element writing and path step variables
skipping = true;
@@ -110,7 +117,8 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
nodeIdCounter = 0;
this.nodeIdProvider = nodeIdProvider;
tempABVS = new ArrayBackedValueStorage();
- textABVS = new ArrayBackedValueStorage();
+ textGA = new GrowableArray();
+ textGAInternal = new GrowableArray();
this.isIndexHandler = isIndexHandler;
if (isIndexHandler) {
this.appender = null;
@@ -156,7 +164,7 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
return;
}
try {
- utf8b.appendCharArray(ch, start, length);
+ appendCharArray(ch, start, length);
} catch (IOException e) {
e.printStackTrace();
throw new SAXException(e);
@@ -233,15 +241,11 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
try {
flushText();
startChildInParent(pinb);
- tempABVS.reset();
- tempABVS.getDataOutput().writeUTF(target);
if (createNodeIds) {
pinb.setLocalNodeId(nodeIdCounter++);
}
- pinb.setTarget(tempABVS);
- tempABVS.reset();
- tempABVS.getDataOutput().writeUTF(data);
- pinb.setContent(tempABVS);
+ pinb.setTarget(stringToGrowableArray(target));
+ pinb.setContent(stringToGrowableArray(data));
endChildInParent(pinb);
} catch (IOException e) {
e.printStackTrace();
@@ -249,6 +253,11 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
}
}
+ private GrowableArray stringToGrowableArray(String value) throws IOException {
+ FunctionHelper.stringToGrowableArray(value, textGAInternal, utf8bInternal, STRING_EXPECTED_LENGTH);
+ return textGAInternal;
+ }
+
@Override
public void setDocumentLocator(Locator locator) {
}
@@ -264,8 +273,8 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
}
db.reset();
try {
- textABVS.reset();
- utf8b.reset(textABVS);
+ textGA.reset();
+ utf8b.reset(textGA, STRING_EXPECTED_LENGTH);
} catch (IOException e) {
throw new SAXException(e);
}
@@ -355,7 +364,8 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
tempABVS.reset();
DataOutput tempOut = tempABVS.getDataOutput();
tempOut.write(ValueTag.XS_UNTYPED_ATOMIC_TAG);
- tempOut.writeUTF(aValue);
+ stringToGrowableArray(aValue);
+ tempOut.write(textGAInternal.getByteArray(), 0, textGAInternal.getLength());
enb.startAttribute(anb);
anb.setName(aUriCode, aLocalNameCode, aPrefixCode);
if (attachTypes) {
@@ -394,18 +404,24 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
if (createNodeIds) {
cnb.setLocalNodeId(nodeIdCounter++);
}
- utf8b.appendCharArray(ch, start, length);
+ appendCharArray(ch, start, length);
utf8b.finish();
- cnb.setValue(textABVS);
+ cnb.setValue(textGA);
endChildInParent(cnb);
- textABVS.reset();
- utf8b.reset(textABVS);
+ textGA.reset();
+ utf8b.reset(textGA, STRING_EXPECTED_LENGTH);
} catch (IOException e) {
e.printStackTrace();
throw new SAXException(e);
}
}
+ private void appendCharArray(char[] ch, int start, int length) throws IOException {
+ for (int i = 0; i < length; ++i) {
+ utf8b.appendChar(ch[i + start]);
+ }
+ }
+
protected void flushText() throws IOException {
if (pendingText) {
peekENBStackTop().startChild(tnb);
@@ -413,10 +429,10 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
tnb.setLocalNodeId(nodeIdCounter++);
}
utf8b.finish();
- tnb.setValue(textABVS);
+ tnb.setValue(textGA);
peekENBStackTop().endChild(tnb);
- textABVS.reset();
- utf8b.reset(textABVS);
+ textGA.reset();
+ utf8b.reset(textGA, STRING_EXPECTED_LENGTH);
pendingText = false;
}
}
@@ -559,7 +575,7 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
return null;
}
StringBuilder sb = new StringBuilder();
- UTF8StringPointable.toString(sb, bytes, 0);
+ UTF8StringUtil.toString(sb, bytes, 0);
return sb.toString();
}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/XMLParser.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/XMLParser.java b/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/XMLParser.java
index 2f9f8c5..a830b47 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/XMLParser.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlparser/XMLParser.java
@@ -80,8 +80,7 @@ public class XMLParser implements IParser {
handler.writeDocument(abvs);
input.close();
} catch (Exception e) {
- HyracksDataException hde = new HyracksDataException(e);
- hde.setNodeId(nodeId);
+ HyracksDataException hde = new HyracksDataException(e, nodeId);
throw hde;
}
return 0;
@@ -100,16 +99,13 @@ public class XMLParser implements IParser {
parser.parse(in);
input.close();
} catch (FileNotFoundException e) {
- HyracksDataException hde = new VXQueryFileNotFoundException(e, file);
- hde.setNodeId(nodeId);
+ HyracksDataException hde = new VXQueryFileNotFoundException(e, file, nodeId);
throw hde;
} catch (SAXException e) {
- HyracksDataException hde = new VXQueryParseException(e, file);
- hde.setNodeId(nodeId);
+ HyracksDataException hde = new VXQueryParseException(e, file, nodeId);
throw hde;
} catch (IOException e) {
- HyracksDataException hde = new HyracksDataException(e);
- hde.setNodeId(nodeId);
+ HyracksDataException hde = new HyracksDataException(e, nodeId);
throw hde;
}
}
@@ -128,8 +124,7 @@ public class XMLParser implements IParser {
parser.parse(in);
input.close();
} catch (Exception e) {
- HyracksDataException hde = new HyracksDataException(e);
- hde.setNodeId(nodeId);
+ HyracksDataException hde = new HyracksDataException(e, nodeId);
throw hde;
}
}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/2c881020/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryCompilationListener.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryCompilationListener.java b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryCompilationListener.java
index b3692b1..8690c94 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryCompilationListener.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/VXQueryCompilationListener.java
@@ -14,18 +14,19 @@
*/
package org.apache.vxquery.xmlquery.query;
-import org.apache.vxquery.compiler.algebricks.prettyprint.VXQueryLogicalExpressionPrettyPrintVisitor;
-import org.apache.vxquery.xmlquery.ast.ModuleNode;
-import org.json.JSONException;
-
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.io.xml.DomDriver;
+import java.io.IOException;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.core.algebra.prettyprint.AlgebricksAppendable;
import org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor;
import org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter;
import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionVisitor;
import org.apache.hyracks.api.job.JobSpecification;
+import org.apache.vxquery.compiler.algebricks.prettyprint.VXQueryLogicalExpressionPrettyPrintVisitor;
+import org.apache.vxquery.xmlquery.ast.ModuleNode;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
public class VXQueryCompilationListener implements XQueryCompilationListener {
boolean showTET, showRP, showOET, showAST;
@@ -39,7 +40,7 @@ public class VXQueryCompilationListener implements XQueryCompilationListener {
/**
* Outputs the query inputs, outputs and user constraints for each module as result of code generation.
- *
+ *
* @param module
*/
public void notifyCodegenResult(Module module) {
@@ -47,8 +48,8 @@ public class VXQueryCompilationListener implements XQueryCompilationListener {
JobSpecification jobSpec = module.getHyracksJobSpecification();
try {
System.err.println("***Runtime Plan: ");
- System.err.println(jobSpec.toJSON().toString(2));
- } catch (JSONException e) {
+ System.err.println(jobSpec.toJSON().toString());
+ } catch (IOException e) {
e.printStackTrace();
System.err.println(jobSpec.toString());
}
@@ -58,7 +59,7 @@ public class VXQueryCompilationListener implements XQueryCompilationListener {
/**
* Outputs the syntax translation tree for the module in the format: "-- logical operator(if exists) | execution mode |"
* where execution mode can be one of: UNPARTITIONED,PARTITIONED,LOCAL
- *
+ *
* @param module
*/
@Override
@@ -76,7 +77,7 @@ public class VXQueryCompilationListener implements XQueryCompilationListener {
/**
* Outputs the optimized expression tree for the module in the format:
* "-- logical operator(if exists) | execution mode |" where execution mode can be one of: UNPARTITIONED,PARTITIONED,LOCAL
- *
+ *
* @param module
*/
@Override
@@ -90,7 +91,7 @@ public class VXQueryCompilationListener implements XQueryCompilationListener {
/**
* Outputs the abstract syntax tree obtained from parsing by serializing the DomDriver object to a pretty-printed XML
* String.
- *
+ *
* @param moduleNode
*/
@Override
@@ -105,8 +106,10 @@ public class VXQueryCompilationListener implements XQueryCompilationListener {
try {
ILogicalExpressionVisitor<String, Integer> ev = new VXQueryLogicalExpressionPrettyPrintVisitor(
module.getModuleContext());
- LogicalOperatorPrettyPrintVisitor v = new LogicalOperatorPrettyPrintVisitor(ev);
- PlanPrettyPrinter.printPlan(module.getBody(), sb, v, 0);
+ AlgebricksAppendable buffer = new AlgebricksAppendable();
+ LogicalOperatorPrettyPrintVisitor v = new LogicalOperatorPrettyPrintVisitor(buffer, ev);
+ PlanPrettyPrinter.printPlan(module.getBody(), v, 0);
+ sb.append(buffer.toString());
} catch (AlgebricksException e) {
e.printStackTrace();
}