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 2015/08/11 01:32:09 UTC
vxquery git commit: Shivani's changes for different issues I have
been working on (Q14, Q19 and desc-self).
Repository: vxquery
Updated Branches:
refs/heads/master d94c51f41 -> 3e40e5a71
Shivani's changes for different issues I have been working on (Q14, Q19 and desc-self).
Project: http://git-wip-us.apache.org/repos/asf/vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/vxquery/commit/3e40e5a7
Tree: http://git-wip-us.apache.org/repos/asf/vxquery/tree/3e40e5a7
Diff: http://git-wip-us.apache.org/repos/asf/vxquery/diff/3e40e5a7
Branch: refs/heads/master
Commit: 3e40e5a712e1edfb244d1f9b67961f947fcbe8c6
Parents: d94c51f
Author: Preston Carman <pr...@apache.org>
Authored: Mon Aug 10 16:13:21 2015 -0700
Committer: Preston Carman <pr...@apache.org>
Committed: Mon Aug 10 16:13:21 2015 -0700
----------------------------------------------------------------------
.../compiler/rewriter/RewriteRuleset.java | 3 +
.../rules/ConsolidateDescandantChild.java | 104 +++++++++++++++++++
.../vxquery/context/StaticContextImpl.java | 5 +-
.../step/DescendantOrSelfPathStepUnnesting.java | 33 ++++--
.../strings/FnStringScalarEvaluatorFactory.java | 14 ++-
.../vxquery/xmlparser/SAXContentHandler.java | 20 +++-
.../xmlquery/translator/XMLQueryTranslator.java | 17 ++-
.../XQuery/XMark/Original/simple_query1.xq | 22 ----
.../XQuery/XMark/Original/simple_query2.xq | 22 ----
.../src/test/resources/XMarkCatalog.xml | 13 ---
.../test/resources/cat/XMarkOriginalQueries.xml | 10 --
11 files changed, 180 insertions(+), 83 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/vxquery/blob/3e40e5a7/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
index 687164e..7b55856 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
@@ -19,6 +19,7 @@ package org.apache.vxquery.compiler.rewriter;
import java.util.LinkedList;
import java.util.List;
+import org.apache.vxquery.compiler.rewriter.rules.ConsolidateDescandantChild;
import org.apache.vxquery.compiler.rewriter.rules.ConsolidateAssignAggregateRule;
import org.apache.vxquery.compiler.rewriter.rules.ConvertAssignToUnnestRule;
import org.apache.vxquery.compiler.rewriter.rules.ReplaceSourceMapInDocExpression;
@@ -118,6 +119,8 @@ public class RewriteRuleset {
normalization.add(new IntroduceCollectionRule());
normalization.add(new RemoveUnusedAssignAndAggregateRule());
+ normalization.add(new ConsolidateDescandantChild());
+
normalization.add(new ReplaceSourceMapInDocExpression());
// Adds child steps to the data source scan.
// TODO Replace consolidate with a new child function that takes multiple paths.
http://git-wip-us.apache.org/repos/asf/vxquery/blob/3e40e5a7/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/ConsolidateDescandantChild.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/ConsolidateDescandantChild.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/ConsolidateDescandantChild.java
new file mode 100644
index 0000000..a83b952
--- /dev/null
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/ConsolidateDescandantChild.java
@@ -0,0 +1,104 @@
+package org.apache.vxquery.compiler.rewriter.rules;
+
+import java.util.List;
+
+import org.apache.commons.lang3.mutable.Mutable;
+import org.apache.vxquery.compiler.rewriter.rules.util.ExpressionToolbox;
+import org.apache.vxquery.compiler.rewriter.rules.util.OperatorToolbox;
+import org.apache.vxquery.functions.BuiltinOperators;
+
+import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
+import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalExpression;
+import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import edu.uci.ics.hyracks.algebricks.core.algebra.base.IOptimizationContext;
+import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
+import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
+import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
+import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
+import edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.AbstractUnnestOperator;
+import edu.uci.ics.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
+
+/**
+ * The rule searches for assign operator with an aggregate function expression
+ * immediately following an aggregate operator with a sequence expression.
+ * XQuery aggregate functions are implemented in both scalar (one XDM Instance
+ * input as a sequence) and iterative (a stream of XDM Instances each one is
+ * single object).
+ *
+ * <pre>
+ * Before
+ *
+ * plan__parent
+ * UNNEST( $v3 : fn:child( args[$v1], args[$filter] ) )
+ * UNNEST( $v1 : fn:descandant( args[$v0] ) )
+ * plan__child
+ *
+ * After
+ *
+ * plan__parent
+ * UNNEST( $v3 : fn:descandant( args[$v0], args[$filter] ) )
+ * plan__child
+ *
+ *
+ * </pre>
+ *
+ * @author shivanimall
+ */
+
+public class ConsolidateDescandantChild implements IAlgebraicRewriteRule {
+
+ @Override
+ public boolean rewritePre(Mutable<ILogicalOperator> opRef, IOptimizationContext context) throws AlgebricksException {
+ return false;
+ }
+
+ @Override
+ public boolean rewritePost(Mutable<ILogicalOperator> opRef, IOptimizationContext context)
+ throws AlgebricksException {
+
+ ILogicalOperator lo = opRef.getValue();
+ if (!(lo.getOperatorTag().equals(LogicalOperatorTag.UNNEST))) {
+ return false;
+ }
+ AbstractUnnestOperator auo = (AbstractUnnestOperator) lo;
+ Mutable<ILogicalExpression> childExpression = ExpressionToolbox.findFirstFunctionExpression(
+ auo.getExpressionRef(), BuiltinOperators.CHILD.getFunctionIdentifier());
+ if (childExpression == null) {
+ return false;
+ }
+ AbstractFunctionCallExpression childFnCall = (AbstractFunctionCallExpression) childExpression.getValue();
+ List<Mutable<ILogicalExpression>> list = (List<Mutable<ILogicalExpression>>) childFnCall.getArguments();
+ Mutable<ILogicalExpression> mle = (Mutable<ILogicalExpression>) (list).get(0);
+ ILogicalExpression le = mle.getValue();
+ if (!(le.getExpressionTag().equals(LogicalExpressionTag.VARIABLE))) {
+ return false;
+ }
+ VariableReferenceExpression varLogicalExpression = (VariableReferenceExpression) le;
+ Mutable<ILogicalOperator> lop = OperatorToolbox.findProducerOf(opRef,
+ varLogicalExpression.getVariableReference());
+ ILogicalOperator lop1 = lop.getValue();
+ if (!(lop1.getOperatorTag().equals(LogicalOperatorTag.UNNEST))) {
+ return false;
+ }
+ if (OperatorToolbox.getExpressionOf(lop, varLogicalExpression.getVariableReference()) == null) {
+ return false;
+ }
+ ILogicalExpression variableLogicalExpression = (ILogicalExpression) OperatorToolbox.getExpressionOf(lop,
+ varLogicalExpression.getVariableReference()).getValue();
+ if (!(variableLogicalExpression.getExpressionTag().equals(LogicalExpressionTag.FUNCTION_CALL))) {
+ return false;
+ }
+ AbstractFunctionCallExpression afce = (AbstractFunctionCallExpression) variableLogicalExpression;
+ if (!(afce.getFunctionIdentifier().equals(BuiltinOperators.DESCENDANT_OR_SELF.getFunctionIdentifier()))) {
+ return false;
+ }
+ //All conditions have been met.
+ childFnCall.setFunctionInfo(BuiltinOperators.DESCENDANT_OR_SELF);
+ childFnCall.getArguments().get(0).setValue(afce.getArguments().get(0).getValue());
+ ILogicalOperator lo1 = opRef.getValue();
+ Mutable<ILogicalOperator> mlistOfLo = lo1.getInputs().get(0).getValue().getInputs().get(0);
+ ILogicalOperator ilo = (ILogicalOperator) mlistOfLo.getValue();
+ lo.getInputs().get(0).setValue((ILogicalOperator) ilo);
+ return true;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/vxquery/blob/3e40e5a7/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContextImpl.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContextImpl.java b/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContextImpl.java
index d244595..09cfaff 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContextImpl.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/context/StaticContextImpl.java
@@ -379,10 +379,7 @@ public class StaticContextImpl implements StaticContext {
sequenceTypeList.add(type);
return code;
}
- if (sequenceTypeMap.containsKey(type)) {
- return sequenceTypeMap.get(type);
- }
- return -1;
+ return code;
}
List<SequenceType> getSequenceTypeList() {
http://git-wip-us.apache.org/repos/asf/vxquery/blob/3e40e5a7/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnesting.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnesting.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnesting.java
index 090655b..d03e441 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnesting.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/DescendantOrSelfPathStepUnnesting.java
@@ -26,10 +26,13 @@ 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.step.NodeTestFilter.INodeFilter;
+import org.apache.vxquery.types.SequenceType;
import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
import edu.uci.ics.hyracks.data.std.api.IPointable;
+import edu.uci.ics.hyracks.data.std.primitive.IntegerPointable;
public class DescendantOrSelfPathStepUnnesting extends AbstractForwardAxisPathStep {
private boolean testSelf;
@@ -39,10 +42,14 @@ public class DescendantOrSelfPathStepUnnesting extends AbstractForwardAxisPathSt
private List<Integer> indexSequence = new ArrayList<Integer>();
private List<Integer> returnSequence = new ArrayList<Integer>();
+ private final IntegerPointable ip = (IntegerPointable) IntegerPointable.FACTORY.createPointable();
private final SequencePointable seqNtp = (SequencePointable) SequencePointable.FACTORY.createPointable();
private final TaggedValuePointable tvpItem = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
private final TaggedValuePointable tvpNtp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
private final TaggedValuePointable tvpStep = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+ private INodeFilter filter;
+ private int filterLookupID = -1;
+ private boolean isfilter = false;
public DescendantOrSelfPathStepUnnesting(IHyracksTaskContext ctx, PointablePool pp, boolean testSelf) {
super(ctx, pp);
@@ -55,6 +62,18 @@ public class DescendantOrSelfPathStepUnnesting extends AbstractForwardAxisPathSt
indexSequence.add(0);
returnSequence.add(0);
+ if (args.length > 1) {
+ isfilter = true;
+ if (args[1].getTag() != ValueTag.XS_INT_TAG) {
+ throw new IllegalArgumentException("Expected int value tag, got: " + args[1].getTag());
+ }
+ args[1].getValue(ip);
+ if (ip.getInteger() != filterLookupID) {
+ filterLookupID = ip.getInteger();
+ SequenceType sType = dCtx.getStaticContext().lookupSequenceType(ip.getInteger());
+ filter = NodeTestFilter.getNodeTestFilter(sType);
+ }
+ }
// Check the argument passed in as sequence or node tree.
if (args[0].getTag() == ValueTag.SEQUENCE_TAG) {
args[0].getValue(seqNtp);
@@ -99,14 +118,15 @@ public class DescendantOrSelfPathStepUnnesting extends AbstractForwardAxisPathSt
returnSelf = false;
tvpItem.set(rootTVP);
try {
- setNodeToResult(tvpItem, result);
- return true;
+ if (!isfilter || (isfilter && filter.accept(ntp, tvpItem))) {
+ setNodeToResult(tvpItem, result);
+ return true;
+ }
} catch (IOException e) {
String description = ErrorCode.SYSE0001 + ": " + ErrorCode.SYSE0001.getDescription();
throw new AlgebricksException(description);
}
}
-
// Solve for descendants.
return stepNodeTree(rootTVP, 0, result);
}
@@ -132,12 +152,13 @@ public class DescendantOrSelfPathStepUnnesting extends AbstractForwardAxisPathSt
while (indexSequence.get(level) < seqLength) {
// Get the next item
seqItem.getEntry(indexSequence.get(level), tvpItem);
-
// Check current node
if (indexSequence.get(level) == returnSequence.get(level)) {
returnSequence.set(level, returnSequence.get(level) + 1);
- setNodeToResult(tvpItem, result);
- return true;
+ if (!isfilter || (isfilter && filter.accept(ntp, tvpItem))) {
+ setNodeToResult(tvpItem, result);
+ return true;
+ }
}
// Check children nodes
if (level + 1 <= indexSequence.size()) {
http://git-wip-us.apache.org/repos/asf/vxquery/blob/3e40e5a7/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 d248502..fa929da 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
@@ -28,12 +28,14 @@ import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
import org.apache.vxquery.runtime.functions.cast.CastToStringOperation;
+import org.apache.vxquery.runtime.functions.util.AtomizeHelper;
import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
import edu.uci.ics.hyracks.algebricks.runtime.base.IScalarEvaluator;
import edu.uci.ics.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
import edu.uci.ics.hyracks.data.std.api.IPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
public class FnStringScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
@@ -50,6 +52,9 @@ public class FnStringScalarEvaluatorFactory extends AbstractTaggedValueArgumentS
final DataOutput dOut = abvs.getDataOutput();
final CastToStringOperation castToString = new CastToStringOperation();
final TypedPointables tp = new TypedPointables();
+ final AtomizeHelper ah = new AtomizeHelper();
+ final UTF8StringPointable stringNode = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
+ final TaggedValuePointable tvpNode = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
return new AbstractTaggedValueArgumentScalarEvaluator(args) {
@Override
@@ -57,6 +62,7 @@ public class FnStringScalarEvaluatorFactory extends AbstractTaggedValueArgumentS
TaggedValuePointable tvp1 = args[0];
try {
abvs.reset();
+
switch (tvp1.getTag()) {
case ValueTag.XS_ANY_URI_TAG:
tvp1.getValue(tp.utf8sp);
@@ -182,11 +188,15 @@ public class FnStringScalarEvaluatorFactory extends AbstractTaggedValueArgumentS
XDMConstants.setEmptyString(result);
return;
}
- // Pass through if not empty sequence.
+ case ValueTag.NODE_TREE_TAG:
+ ah.atomize(tvp1, ppool, tvpNode);
+ tvpNode.getValue(stringNode);
+ castToString.convertUntypedAtomic(stringNode, dOut);
+ break;
+ // Pass through if not empty sequence.
default:
throw new SystemException(ErrorCode.XPDY0002);
}
-
result.set(abvs);
} catch (IOException e) {
throw new SystemException(ErrorCode.SYSE0001, e);
http://git-wip-us.apache.org/repos/asf/vxquery/blob/3e40e5a7/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 296d062..323b608 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
@@ -282,12 +282,23 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
}
}
+ /**
+ * The filter settings here are similar to one in the class linked below.
+ *
+ * @see org.apache.vxquery.runtime.functions.step.NodeTestFilter.java
+ */
private boolean startElementChildPathStep(String uri, String localName) {
if (subElement != null && depth <= subElement.length) {
// Check path step if it exists.
- if (uri.compareTo(childUri[depth - 1]) == 0) {
- if (localName.compareTo(childLocalName[depth - 1]) == 0) {
- subElement[depth - 1] = true;
+ subElement[depth - 1] = true;
+ if (uri != null) {
+ if (childUri[depth - 1] != null && uri.compareTo(childUri[depth - 1]) != 0) {
+ subElement[depth - 1] = false;
+ }
+ }
+ if (localName != null) {
+ if (childLocalName[depth - 1] != null && localName.compareTo(childLocalName[depth - 1]) != 0) {
+ subElement[depth - 1] = false;
}
}
}
@@ -535,6 +546,9 @@ public class SAXContentHandler implements ContentHandler, LexicalHandler {
}
private String getStringFromBytes(byte[] bytes) {
+ if (bytes == null) {
+ return null;
+ }
StringBuilder sb = new StringBuilder();
UTF8StringPointable.toString(sb, bytes, 0);
return sb.toString();
http://git-wip-us.apache.org/repos/asf/vxquery/blob/3e40e5a7/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java
index a8ffade..2507d6c 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/translator/XMLQueryTranslator.java
@@ -161,7 +161,6 @@ import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalOperator;
import edu.uci.ics.hyracks.algebricks.core.algebra.base.ILogicalPlan;
import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalExpressionTag;
import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AbstractLogicalExpression;
import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
@@ -1446,8 +1445,23 @@ public class XMLQueryTranslator {
for (RelativePathExprNode rpen : pe.getPaths()) {
boolean asc = true;
if (PathType.SLASH_SLASH.equals(rpen.getPathType())) {
+ tCtx = tCtx.pushContext();
+ tCtx.pushVariableScope();
+ iterateOver(ctxExpr, tCtx);
+ ctxExpr = vre(tCtx.varScope.lookupVariable(XMLQueryCompilerConstants.DOT_VAR_NAME)
+ .getLogicalVariable());
ctxExpr = sfce(BuiltinOperators.DESCENDANT_OR_SELF,
treat(ctxExpr, SequenceType.create(AnyNodeType.INSTANCE, Quantifier.QUANT_STAR)));
+ List<LogicalVariable> vars = new ArrayList<LogicalVariable>();
+ List<Mutable<ILogicalExpression>> exprs = new ArrayList<Mutable<ILogicalExpression>>();
+ LogicalVariable var = newLogicalVariable();
+ vars.add(var);
+ exprs.add(mutable(afce(BuiltinOperators.SEQUENCE, false, ctxExpr)));
+ AggregateOperator aop = new AggregateOperator(vars, exprs);
+ aop.getInputs().add(mutable(tCtx.op));
+ tCtx.op = aop;
+ tCtx = tCtx.popContext();
+ ctxExpr = vre(var);
}
boolean popScope = false;
if (ctxExpr != null) {
@@ -1484,6 +1498,7 @@ public class XMLQueryTranslator {
throw new IllegalStateException("Unknown path node: " + pathNode.getTag());
}
if (predicates != null && !predicates.isEmpty()) {
+ ctxExpr = vre(createAssignment(ctxExpr, tCtx));
ctxExpr = sfce(asc ? BuiltinOperators.SORT_DISTINCT_NODES_ASC_OR_ATOMICS
: BuiltinOperators.SORT_DISTINCT_NODES_DESC_OR_ATOMICS, ctxExpr);
for (ASTNode pn : predicates) {
http://git-wip-us.apache.org/repos/asf/vxquery/blob/3e40e5a7/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Original/simple_query1.xq
----------------------------------------------------------------------
diff --git a/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Original/simple_query1.xq b/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Original/simple_query1.xq
deleted file mode 100644
index 4938f64..0000000
--- a/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Original/simple_query1.xq
+++ /dev/null
@@ -1,22 +0,0 @@
-(: Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License. :)
-
-(: XMark Query see README.md for full details. :)
-
-let $test := "auction_data"
-for $x in ($test)
-return $x
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/vxquery/blob/3e40e5a7/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Original/simple_query2.xq
----------------------------------------------------------------------
diff --git a/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Original/simple_query2.xq b/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Original/simple_query2.xq
deleted file mode 100644
index 4bd3ab8..0000000
--- a/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Original/simple_query2.xq
+++ /dev/null
@@ -1,22 +0,0 @@
-(: Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License. :)
-
-(: XMark Query see README.md for full details. :)
-
-let $test := "auction_data"
-for $b in doc($test)/site/catgraph
-return $b
http://git-wip-us.apache.org/repos/asf/vxquery/blob/3e40e5a7/vxquery-xtest/src/test/resources/XMarkCatalog.xml
----------------------------------------------------------------------
diff --git a/vxquery-xtest/src/test/resources/XMarkCatalog.xml b/vxquery-xtest/src/test/resources/XMarkCatalog.xml
index c3829a0..11e9a92 100644
--- a/vxquery-xtest/src/test/resources/XMarkCatalog.xml
+++ b/vxquery-xtest/src/test/resources/XMarkCatalog.xml
@@ -45,19 +45,6 @@
<source ID="auction_data" FileName="TestSources/XMark/SingleFile/auction.xml" Creator="Shivani Mall">
<description last-mod="2015-03-25">Collection of files</description>
</source>
- <test-group name="SingleQuery" featureOwner="Preston Carman">
- <GroupInfo>
- <title>Single Query</title>
- <description/>
- </GroupInfo>
- <test-group name="SingleTest" featureOwner="Preston Carman">
- <GroupInfo>
- <title>Single Test</title>
- <description/>
- </GroupInfo>
- &SingleQuery;
- </test-group>
- </test-group>
<test-group name="XMarkQueries" featureOwner="Shivani Mall">
<GroupInfo>
<title>XMark Queries</title>
http://git-wip-us.apache.org/repos/asf/vxquery/blob/3e40e5a7/vxquery-xtest/src/test/resources/cat/XMarkOriginalQueries.xml
----------------------------------------------------------------------
diff --git a/vxquery-xtest/src/test/resources/cat/XMarkOriginalQueries.xml b/vxquery-xtest/src/test/resources/cat/XMarkOriginalQueries.xml
index 87a57d1..8fdcf51 100644
--- a/vxquery-xtest/src/test/resources/cat/XMarkOriginalQueries.xml
+++ b/vxquery-xtest/src/test/resources/cat/XMarkOriginalQueries.xml
@@ -120,14 +120,4 @@
<query name="q20" date="2015-03-25"/>
<output-file compare="Text">q20.txt</output-file>
</test-case>
- <test-case name="Simple-Query-1" FilePath="XMark/Original/" Creator="Shivani Mall">
- <description>Simple Query 1</description>
- <query name="simple_query1" date="2015-03-25"/>
- <output-file compare="Text">simple_query1.txt</output-file>
- </test-case>
- <test-case name="Simple-Query-2" FilePath="XMark/Original/" Creator="Shivani Mall">
- <description>Simple Query 2</description>
- <query name="simple_query2" date="2015-03-25"/>
- <output-file compare="Text">simple_query2.txt</output-file>
- </test-case>
</test-group>
\ No newline at end of file