Repository: vxquery Updated Branches: refs/heads/master ef8efbc26 -> dae8391e4
VXQUERY-64 issue resolved-fn:trace is supported Project: http://git-wip-us.apache.org/repos/asf/vxquery/repo Commit: http://git-wip-us.apache.org/repos/asf/vxquery/commit/dae8391e Tree: http://git-wip-us.apache.org/repos/asf/vxquery/tree/dae8391e Diff: http://git-wip-us.apache.org/repos/asf/vxquery/diff/dae8391e Branch: refs/heads/master Commit: dae8391e45b63b5f87240dc5fecd8fef4827234a Parents: ef8efbc Author: Christina Pavlopoulou <[email protected]> Authored: Mon Jul 25 12:21:05 2016 -0700 Committer: Preston Carman <[email protected]> Committed: Mon Jul 25 14:15:00 2016 -0700 ---------------------------------------------------------------------- .../vxquery/functions/builtin-functions.xml | 1 + .../error/FnErrorScalarEvaluatorFactory.java | 18 +++-- .../trace/FnTraceScalarEvaluatorFactory.java | 60 ++++++++++++++++ .../runtime/functions/util/FunctionHelper.java | 69 +++++++------------ vxquery-xtest/results/xqts.txt | 72 ++++++++++---------- .../ExpectedTestResults/Json/Trace/trace.txt | 1 + .../Queries/XQuery/Json/Trace/trace.xq | 18 +++++ .../src/test/resources/VXQueryCatalog.xml | 15 ++++ .../src/test/resources/cat/TraceQuery.xml | 28 ++++++++ 9 files changed, 198 insertions(+), 84 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/vxquery/blob/dae8391e/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-functions.xml ---------------------------------------------------------------------- diff --git a/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-functions.xml b/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-functions.xml index 0e64d46..27f0768 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-functions.xml +++ b/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-functions.xml @@ -1106,6 +1106,7 @@ <property type="UniqueNodes" class="org.apache.vxquery.compiler.rewriter.rules.propagationpolicies.InputPropertyPropagationPolicy"> <argument value="0"/> </property> + <runtime type="scalar" class="org.apache.vxquery.runtime.functions.trace.FnTraceScalarEvaluatorFactory"/> </function> <!-- fn:translate($arg as xs:string?, $mapString as xs:string, $transString as xs:string) as xs:string --> http://git-wip-us.apache.org/repos/asf/vxquery/blob/dae8391e/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/error/FnErrorScalarEvaluatorFactory.java ---------------------------------------------------------------------- diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/error/FnErrorScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/error/FnErrorScalarEvaluatorFactory.java index 0588820..e728953 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/error/FnErrorScalarEvaluatorFactory.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/error/FnErrorScalarEvaluatorFactory.java @@ -17,6 +17,7 @@ package org.apache.vxquery.runtime.functions.error; import java.io.DataInputStream; +import java.io.IOException; import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator; @@ -76,9 +77,13 @@ public class FnErrorScalarEvaluatorFactory extends AbstractTaggedValueArgumentSc tvp1.getValue(qnamep); qnamep.getUri(urip); qnamep.getLocalName(localnamep); - namespaceURI = FunctionHelper.getStringFromPointable(urip, bbis, di); - localPart = FunctionHelper.getStringFromPointable(localnamep, bbis, di); + try { + namespaceURI = FunctionHelper.getStringFromPointable(urip, bbis, di); + localPart = FunctionHelper.getStringFromPointable(localnamep, bbis, di); + } catch (IOException e) { + throw new SystemException(ErrorCode.FOER0000); + } // TODO Update to dynamic error. throw new SystemException(ErrorCode.FOER0000); } @@ -98,8 +103,13 @@ public class FnErrorScalarEvaluatorFactory extends AbstractTaggedValueArgumentSc tvp1.getValue(qnamep); qnamep.getUri(urip); qnamep.getLocalName(localnamep); - namespaceURI = FunctionHelper.getStringFromPointable(urip, bbis, di); - localPart = FunctionHelper.getStringFromPointable(localnamep, bbis, di); + try { + namespaceURI = FunctionHelper.getStringFromPointable(urip, bbis, di); + + localPart = FunctionHelper.getStringFromPointable(localnamep, bbis, di); + } catch (IOException e) { + throw new SystemException(ErrorCode.FORG0006); + } } else { throw new SystemException(ErrorCode.FORG0006); } http://git-wip-us.apache.org/repos/asf/vxquery/blob/dae8391e/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 new file mode 100644 index 0000000..a202dc5 --- /dev/null +++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/trace/FnTraceScalarEvaluatorFactory.java @@ -0,0 +1,60 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.vxquery.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.data.std.api.IPointable; +import org.apache.vxquery.datamodel.accessors.TaggedValuePointable; +import org.apache.vxquery.datamodel.values.ValueTag; +import org.apache.vxquery.exceptions.ErrorCode; +import org.apache.vxquery.exceptions.SystemException; +import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator; +import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory; +import org.apache.vxquery.serializer.XMLSerializer; + +public class FnTraceScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory { + + private static final long serialVersionUID = 1L; + + public FnTraceScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) { + super(args); + } + + @Override + protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args) + throws AlgebricksException { + return new AbstractTaggedValueArgumentScalarEvaluator(args) { + + @Override + protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException { + TaggedValuePointable tvpValue = args[0]; + TaggedValuePointable tvpLabel = args[1]; + if (tvpLabel.getTag() != ValueTag.XS_STRING_TAG) { + throw new SystemException(ErrorCode.FORG0006); + } + result.set(tvpValue); + XMLSerializer printer = new XMLSerializer(); + printer.printTaggedValuePointable(System.err, tvpLabel); + printer.printTaggedValuePointable(System.err, tvpValue); + } + }; + } + +} http://git-wip-us.apache.org/repos/asf/vxquery/blob/dae8391e/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 6d280f2..60c80ea 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 @@ -21,6 +21,7 @@ import java.io.DataInputStream; import java.io.DataOutput; import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -1134,14 +1135,10 @@ public class FunctionHelper { } public static String getStringFromPointable(UTF8StringPointable stringp, ByteBufferInputStream bbis, - DataInputStream di) throws SystemException { - try { - bbis.setByteBuffer(ByteBuffer.wrap(Arrays.copyOfRange(stringp.getByteArray(), stringp.getStartOffset(), - stringp.getLength() + stringp.getStartOffset())), 0); - return di.readUTF(); - } catch (IOException e) { - throw new SystemException(ErrorCode.SYSE0001, e); - } + 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) { @@ -1222,56 +1219,40 @@ public class FunctionHelper { } public static void readInDocFromPointable(UTF8StringPointable stringp, ByteBufferInputStream bbis, - DataInputStream di, ArrayBackedValueStorage abvs, IParser parser) - throws NumberFormatException, JsonParseException, IOException { - String fName; - try { - fName = getStringFromPointable(stringp, bbis, di); - } catch (SystemException e) { - throw new HyracksDataException(e); - } + DataInputStream di, ArrayBackedValueStorage abvs, IParser parser) throws IOException { + String fName = getStringFromPointable(stringp, bbis, di); readInDocFromString(fName, bbis, di, abvs, parser); } public static void readInDocFromString(String fName, ByteBufferInputStream bbis, DataInputStream di, - ArrayBackedValueStorage abvs, IParser parser) - throws NumberFormatException, JsonParseException, IOException { - int bufferSize = Integer.parseInt(System.getProperty("vxquery.buffer_size", "-1")); + ArrayBackedValueStorage abvs, IParser parser) throws IOException { Reader input; if (!fName.contains("hdfs:/")) { File file = new File(fName); - if (file.exists()) { - if (bufferSize > 0) { - input = new BufferedReader(new InputStreamReader(new FileInputStream(file)), bufferSize); - } else { - input = new InputStreamReader(new FileInputStream(file)); - } + input = new InputStreamReader(new FileInputStream(file)); parser.parse(input, abvs); + } else { + throw new FileNotFoundException(file.getAbsolutePath()); } - } - //else check in HDFS file system - else { + } else { + // else check in HDFS file system HDFSFunctions hdfs = new HDFSFunctions(null, null); FileSystem fs = hdfs.getFileSystem(); if (fs != null) { - try { - String fHdfsName = fName.replaceAll("hdfs:/", ""); - Path xmlDocument = new Path(fHdfsName); - if (fs.exists(xmlDocument)) { - InputStream in = fs.open(xmlDocument).getWrappedStream(); - if (bufferSize > 0) { - input = new BufferedReader(new InputStreamReader(in), bufferSize); - } else { - input = new InputStreamReader(in); - } - parser.parse(input, abvs); - in.close(); - } - fs.close(); - } catch (IOException e) { - throw new HyracksDataException(e); + String fHdfsName = fName.replaceAll("hdfs:/", ""); + Path xmlDocument = new Path(fHdfsName); + if (fs.exists(xmlDocument)) { + InputStream in = fs.open(xmlDocument).getWrappedStream(); + input = new InputStreamReader(in); + parser.parse(input, abvs); + in.close(); + } else { + throw new FileNotFoundException(xmlDocument.getName()); } + fs.close(); + } else { + throw new IOException(); } } } http://git-wip-us.apache.org/repos/asf/vxquery/blob/dae8391e/vxquery-xtest/results/xqts.txt ---------------------------------------------------------------------- diff --git a/vxquery-xtest/results/xqts.txt b/vxquery-xtest/results/xqts.txt index 3e5a114..1d9fc6d 100644 --- a/vxquery-xtest/results/xqts.txt +++ b/vxquery-xtest/results/xqts.txt @@ -10366,7 +10366,7 @@ Expressions/SeqExpr/FilterExpr//K-FilterExpr-36, EXPECTED_RESULT_GOT_SAME_RESULT Expressions/SeqExpr/FilterExpr//K-FilterExpr-37, EXPECTED_RESULT_GOT_ERROR Expressions/SeqExpr/FilterExpr//K-FilterExpr-38, EXPECTED_ERROR_GOT_RESULT Expressions/SeqExpr/FilterExpr//K-FilterExpr-39, EXPECTED_RESULT_GOT_ERROR -Expressions/SeqExpr/FilterExpr//K-FilterExpr-4, EXPECTED_ERROR_GOT_SAME_ERROR +Expressions/SeqExpr/FilterExpr//K-FilterExpr-4, EXPECTED_ERROR_GOT_RESULT Expressions/SeqExpr/FilterExpr//K-FilterExpr-40, EXPECTED_ERROR_GOT_RESULT Expressions/SeqExpr/FilterExpr//K-FilterExpr-41, EXPECTED_RESULT_GOT_SAME_RESULT Expressions/SeqExpr/FilterExpr//K-FilterExpr-42, EXPECTED_RESULT_GOT_DIFFERENT_RESULT @@ -10377,7 +10377,7 @@ Expressions/SeqExpr/FilterExpr//K-FilterExpr-46, EXPECTED_RESULT_GOT_DIFFERENT_R Expressions/SeqExpr/FilterExpr//K-FilterExpr-47, EXPECTED_RESULT_GOT_SAME_RESULT Expressions/SeqExpr/FilterExpr//K-FilterExpr-48, EXPECTED_RESULT_GOT_DIFFERENT_RESULT Expressions/SeqExpr/FilterExpr//K-FilterExpr-49, EXPECTED_ERROR_GOT_RESULT -Expressions/SeqExpr/FilterExpr//K-FilterExpr-5, EXPECTED_ERROR_GOT_SAME_ERROR +Expressions/SeqExpr/FilterExpr//K-FilterExpr-5, EXPECTED_ERROR_GOT_RESULT Expressions/SeqExpr/FilterExpr//K-FilterExpr-50, EXPECTED_RESULT_GOT_ERROR Expressions/SeqExpr/FilterExpr//K-FilterExpr-51, EXPECTED_ERROR_GOT_RESULT Expressions/SeqExpr/FilterExpr//K-FilterExpr-52, EXPECTED_ERROR_GOT_RESULT @@ -13117,7 +13117,7 @@ Functions/ContextFunc/ContextCurrentDatetimeFunc//fn-current-dateTime-19, EXPECT Functions/ContextFunc/ContextCurrentDatetimeFunc//fn-current-dateTime-2, EXPECTED_RESULT_GOT_DIFFERENT_RESULT Functions/ContextFunc/ContextCurrentDatetimeFunc//fn-current-dateTime-20, EXPECTED_RESULT_GOT_SAME_RESULT Functions/ContextFunc/ContextCurrentDatetimeFunc//fn-current-dateTime-21, EXPECTED_RESULT_GOT_DIFFERENT_RESULT -Functions/ContextFunc/ContextCurrentDatetimeFunc//fn-current-dateTime-22, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/ContextFunc/ContextCurrentDatetimeFunc//fn-current-dateTime-22, EXPECTED_RESULT_GOT_SAME_RESULT Functions/ContextFunc/ContextCurrentDatetimeFunc//fn-current-dateTime-23, EXPECTED_RESULT_GOT_DIFFERENT_RESULT Functions/ContextFunc/ContextCurrentDatetimeFunc//fn-current-dateTime-24, EXPECTED_RESULT_GOT_DIFFERENT_RESULT Functions/ContextFunc/ContextCurrentDatetimeFunc//fn-current-dateTime-3, EXPECTED_RESULT_GOT_DIFFERENT_RESULT @@ -14370,18 +14370,18 @@ Functions/NodeFunc/NodeRootFunc//K2-NodeRootFunc-6, EXPECTED_RESULT_GOT_ERROR Functions/NodeFunc/NodeRootFunc//K2-NodeRootFunc-7, EXPECTED_RESULT_GOT_ERROR Functions/NodeFunc/NodeRootFunc//K2-NodeRootFunc-8, EXPECTED_RESULT_GOT_ERROR Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-1, EXPECTED_ERROR_GOT_SAME_ERROR -Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-10, EXPECTED_RESULT_GOT_ERROR -Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-10d, EXPECTED_RESULT_GOT_FAILURE -Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-2, EXPECTED_ERROR_GOT_FAILURE -Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-3, EXPECTED_ERROR_GOT_FAILURE +Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-10, EXPECTED_RESULT_GOT_FAILURE +Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-10d, EXPECTED_RESULT_GOT_ERROR +Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-2, EXPECTED_ERROR_GOT_RESULT +Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-3, EXPECTED_ERROR_GOT_RESULT Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-4, EXPECTED_RESULT_GOT_ERROR Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-4d, EXPECTED_RESULT_GOT_ERROR Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-5, EXPECTED_RESULT_GOT_ERROR Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-5d, EXPECTED_RESULT_GOT_ERROR -Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-6, EXPECTED_RESULT_GOT_ERROR -Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-7, EXPECTED_ERROR_GOT_DIFFERENT_ERROR -Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-8, EXPECTED_RESULT_GOT_ERROR -Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-9, EXPECTED_RESULT_GOT_FAILURE +Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-6, EXPECTED_RESULT_GOT_FAILURE +Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-7, EXPECTED_ERROR_GOT_FAILURE +Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-8, EXPECTED_RESULT_GOT_FAILURE +Functions/NodeSeqFunc/SeqCollectionFunc//fn-collection-9, EXPECTED_RESULT_GOT_ERROR Functions/NodeSeqFunc/SeqDocAvailableFunc//fn-doc-available-1, EXPECTED_ERROR_GOT_SAME_ERROR Functions/NodeSeqFunc/SeqDocAvailableFunc//fn-doc-available-2, EXPECTED_ERROR_GOT_RESULT Functions/NodeSeqFunc/SeqDocAvailableFunc//fn-doc-available-3, EXPECTED_RESULT_GOT_FAILURE @@ -16862,8 +16862,8 @@ Functions/SeqFunc/HeadTailFunc//tail-003, EXPECTED_ERROR_GOT_DIFFERENT_ERROR Functions/SeqFunc/HeadTailFunc//tail-004, EXPECTED_ERROR_GOT_DIFFERENT_ERROR Functions/SeqFunc/HeadTailFunc//tail-005, EXPECTED_ERROR_GOT_DIFFERENT_ERROR Functions/SeqFunc/HeadTailFunc//tail-006, EXPECTED_ERROR_GOT_DIFFERENT_ERROR -Functions/SeqFunc/NodeSeqFunc/SeqCollectionFunc//K2-SeqCollectionFunc-1, EXPECTED_ERROR_GOT_FAILURE -Functions/SeqFunc/NodeSeqFunc/SeqCollectionFunc//K2-SeqCollectionFunc-2, EXPECTED_ERROR_GOT_FAILURE +Functions/SeqFunc/NodeSeqFunc/SeqCollectionFunc//K2-SeqCollectionFunc-1, EXPECTED_ERROR_GOT_RESULT +Functions/SeqFunc/NodeSeqFunc/SeqCollectionFunc//K2-SeqCollectionFunc-2, EXPECTED_ERROR_GOT_RESULT Functions/SeqFunc/NodeSeqFunc/SeqDocFunc//K2-SeqDocFunc-1, EXPECTED_RESULT_GOT_SAME_RESULT Functions/SeqFunc/NodeSeqFunc/SeqDocFunc//K2-SeqDocFunc-10, EXPECTED_ERROR_GOT_DIFFERENT_ERROR Functions/SeqFunc/NodeSeqFunc/SeqDocFunc//K2-SeqDocFunc-11, EXPECTED_ERROR_GOT_DIFFERENT_ERROR @@ -17083,32 +17083,32 @@ Functions/SeqFunc/SeqDeepEqualFunc//K2-SeqDeepEqualFunc-7, EXPECTED_RESULT_GOT_E Functions/SeqFunc/SeqDeepEqualFunc//K2-SeqDeepEqualFunc-8, EXPECTED_ERROR_GOT_SAME_ERROR Functions/SeqFunc/SeqDeepEqualFunc//K2-SeqDeepEqualFunc-9, EXPECTED_ERROR_GOT_SAME_ERROR Functions/TraceFunc//fn-trace-1, EXPECTED_ERROR_GOT_SAME_ERROR -Functions/TraceFunc//fn-trace-10, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-11, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-12, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-13, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-14, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-15, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-16, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-17, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-18, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-19, EXPECTED_ERROR_GOT_DIFFERENT_ERROR -Functions/TraceFunc//fn-trace-2, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-20, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-21, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-3, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-4, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-5, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-6, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-7, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-8, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//fn-trace-9, EXPECTED_RESULT_GOT_ERROR +Functions/TraceFunc//fn-trace-10, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/TraceFunc//fn-trace-11, EXPECTED_RESULT_GOT_FAILURE +Functions/TraceFunc//fn-trace-12, EXPECTED_RESULT_GOT_FAILURE +Functions/TraceFunc//fn-trace-13, EXPECTED_RESULT_GOT_SAME_RESULT +Functions/TraceFunc//fn-trace-14, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/TraceFunc//fn-trace-15, EXPECTED_RESULT_GOT_SAME_RESULT +Functions/TraceFunc//fn-trace-16, EXPECTED_RESULT_GOT_SAME_RESULT +Functions/TraceFunc//fn-trace-17, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/TraceFunc//fn-trace-18, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/TraceFunc//fn-trace-19, EXPECTED_ERROR_GOT_RESULT +Functions/TraceFunc//fn-trace-2, EXPECTED_RESULT_GOT_SAME_RESULT +Functions/TraceFunc//fn-trace-20, EXPECTED_RESULT_GOT_SAME_RESULT +Functions/TraceFunc//fn-trace-21, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/TraceFunc//fn-trace-3, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/TraceFunc//fn-trace-4, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/TraceFunc//fn-trace-5, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/TraceFunc//fn-trace-6, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/TraceFunc//fn-trace-7, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/TraceFunc//fn-trace-8, EXPECTED_RESULT_GOT_DIFFERENT_RESULT +Functions/TraceFunc//fn-trace-9, EXPECTED_RESULT_GOT_DIFFERENT_RESULT Functions/TraceFunc//K-TraceFunc-1, EXPECTED_ERROR_GOT_SAME_ERROR Functions/TraceFunc//K-TraceFunc-2, EXPECTED_ERROR_GOT_SAME_ERROR Functions/TraceFunc//K-TraceFunc-3, EXPECTED_ERROR_GOT_SAME_ERROR -Functions/TraceFunc//K-TraceFunc-4, EXPECTED_RESULT_GOT_ERROR -Functions/TraceFunc//K-TraceFunc-5, EXPECTED_ERROR_GOT_DIFFERENT_ERROR -Functions/TraceFunc//K-TraceFunc-6, EXPECTED_ERROR_GOT_DIFFERENT_ERROR +Functions/TraceFunc//K-TraceFunc-4, EXPECTED_RESULT_GOT_SAME_RESULT +Functions/TraceFunc//K-TraceFunc-5, EXPECTED_ERROR_GOT_RESULT +Functions/TraceFunc//K-TraceFunc-6, EXPECTED_ERROR_GOT_SAME_ERROR Functions/URIFunc/ResolveURIFunc//fn-resolve-uri-1, EXPECTED_RESULT_GOT_ERROR Functions/URIFunc/ResolveURIFunc//fn-resolve-uri-10, EXPECTED_RESULT_GOT_ERROR Functions/URIFunc/ResolveURIFunc//fn-resolve-uri-11, EXPECTED_RESULT_GOT_ERROR http://git-wip-us.apache.org/repos/asf/vxquery/blob/dae8391e/vxquery-xtest/src/test/resources/ExpectedTestResults/Json/Trace/trace.txt ---------------------------------------------------------------------- diff --git a/vxquery-xtest/src/test/resources/ExpectedTestResults/Json/Trace/trace.txt b/vxquery-xtest/src/test/resources/ExpectedTestResults/Json/Trace/trace.txt new file mode 100644 index 0000000..6ed63af --- /dev/null +++ b/vxquery-xtest/src/test/resources/ExpectedTestResults/Json/Trace/trace.txt @@ -0,0 +1 @@ +[1,2] http://git-wip-us.apache.org/repos/asf/vxquery/blob/dae8391e/vxquery-xtest/src/test/resources/Queries/XQuery/Json/Trace/trace.xq ---------------------------------------------------------------------- diff --git a/vxquery-xtest/src/test/resources/Queries/XQuery/Json/Trace/trace.xq b/vxquery-xtest/src/test/resources/Queries/XQuery/Json/Trace/trace.xq new file mode 100644 index 0000000..5345918 --- /dev/null +++ b/vxquery-xtest/src/test/resources/Queries/XQuery/Json/Trace/trace.xq @@ -0,0 +1,18 @@ +(: Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. :) + +fn:trace(([1,2]),"the value is ") http://git-wip-us.apache.org/repos/asf/vxquery/blob/dae8391e/vxquery-xtest/src/test/resources/VXQueryCatalog.xml ---------------------------------------------------------------------- diff --git a/vxquery-xtest/src/test/resources/VXQueryCatalog.xml b/vxquery-xtest/src/test/resources/VXQueryCatalog.xml index f678fba..0ac46f4 100644 --- a/vxquery-xtest/src/test/resources/VXQueryCatalog.xml +++ b/vxquery-xtest/src/test/resources/VXQueryCatalog.xml @@ -51,6 +51,8 @@ <!ENTITY JsonArrayNavigationQueries SYSTEM "cat/JsonArrayNavigationQueries.xml"> <!ENTITY JsonParserQueries SYSTEM "cat/JsonParserQueries.xml"> +<!ENTITY TraceQuery SYSTEM "cat/TraceQuery.xml"> + ]> <test-suite xmlns="http://www.w3.org/2005/02/query-test-XQTSCatalog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" @@ -328,4 +330,17 @@ &JsonParserQueries; </test-group> </test-group> + <test-group name="TraceQuery" featureOwner="Christina Pavlopoulou"> + <GroupInfo> + <title>Trace Function Queries</title> + <description/> + </GroupInfo> + <test-group name="TraceTesting" featureOwner="Christina Pavlopoulou"> + <GroupInfo> + <title>Trace Function Tests</title> + <description/> + </GroupInfo> + &TraceQuery; + </test-group> + </test-group> </test-suite> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/vxquery/blob/dae8391e/vxquery-xtest/src/test/resources/cat/TraceQuery.xml ---------------------------------------------------------------------- diff --git a/vxquery-xtest/src/test/resources/cat/TraceQuery.xml b/vxquery-xtest/src/test/resources/cat/TraceQuery.xml new file mode 100644 index 0000000..741b970 --- /dev/null +++ b/vxquery-xtest/src/test/resources/cat/TraceQuery.xml @@ -0,0 +1,28 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<test-group xmlns="http://www.w3.org/2005/02/query-test-XQTSCatalog" name="JsonArrayNavigationQueries" featureOwner="VXQuery"> + <GroupInfo> + <title>Trace Function</title> + <description/> + </GroupInfo> + <test-case name="trace" FilePath="Json/Trace" Creator="Christina Pavlopoulou"> + <description>Using trace function.</description> + <query name="trace" date="2016-07-20"/> + <output-file compare="Text">trace.txt</output-file> + </test-case> +</test-group>
