You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by ti...@apache.org on 2014/03/14 23:09:39 UTC

[18/25] git commit: Addressing all the code review changes.

Addressing all the code review changes.


Project: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/commit/d88a64e1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/tree/d88a64e1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/diff/d88a64e1

Branch: refs/heads/westmann/prettyprint
Commit: d88a64e17ff6aff2e5ee11597d5c5de8f30145ca
Parents: 8a00d1b
Author: Preston Carman <pr...@apache.org>
Authored: Mon Feb 17 13:34:53 2014 -0800
Committer: Preston Carman <pr...@apache.org>
Committed: Mon Feb 17 13:34:53 2014 -0800

----------------------------------------------------------------------
 .../java/org/apache/vxquery/cli/VXQuery.java    |  6 +++---
 ...tractRemoveRedundantTypeExpressionsRule.java |  8 ++++----
 .../RemoveRedundantCastExpressionsRule.java     |  2 +-
 .../RemoveRedundantDataExpressionsRule.java     |  2 +-
 .../RemoveRedundantPromoteExpressionsRule.java  |  2 +-
 .../RemoveRedundantTreatExpressionsRule.java    |  3 +--
 .../rewriter/rules/util/ExpressionToolbox.java  |  5 +++--
 ...GeneralComparisonScalarEvaluatorFactory.java | 18 ++++++++----------
 .../misc/FnDataScalarEvaluatorFactory.java      |  3 +--
 .../org/apache/vxquery/xmlparser/XMLParser.java | 20 --------------------
 10 files changed, 23 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/d88a64e1/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
----------------------------------------------------------------------
diff --git a/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java b/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
index 06deac5..da6f40b 100644
--- a/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
+++ b/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
@@ -117,9 +117,9 @@ public class VXQuery {
         }
         VXQuery vxq = new VXQuery(opts);
         vxq.execute();
-        Date end = new Date();
         // if -timing argument passed, show the starting and ending times
         if (opts.timing) {
+            Date end = new Date();
             message = "Execution time: " + (end.getTime() - start.getTime()) + "ms";
             System.out.println(message);
             timing.add(message);
@@ -254,9 +254,9 @@ public class VXQuery {
             CompilerControlBlock ccb = new CompilerControlBlock(new StaticContextImpl(RootStaticContextImpl.INSTANCE),
                     resultSetId);
             compiler.compile(query, new StringReader(qStr), ccb, opts.optimizationLevel);
-            end = new Date();
             // if -timing argument passed, show the starting and ending times
             if (opts.timing) {
+                end = new Date();
                 message = "Compile time: " + (end.getTime() - start.getTime()) + "ms";
                 System.out.println(message);
                 timing.add(message);
@@ -276,9 +276,9 @@ public class VXQuery {
             for (int i = 0; i < opts.repeatExec; ++i) {
                 start = new Date();
                 runJob(js, writer);
-                end = new Date();
                 // if -timing argument passed, show the starting and ending times
                 if (opts.timing) {
+                    end = new Date();
                     if ((i + 1) > 3) {
                         totalTiming += end.getTime() - start.getTime();
                     }

http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/d88a64e1/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractRemoveRedundantTypeExpressionsRule.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractRemoveRedundantTypeExpressionsRule.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractRemoveRedundantTypeExpressionsRule.java
index 752e107..5298f2a 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractRemoveRedundantTypeExpressionsRule.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractRemoveRedundantTypeExpressionsRule.java
@@ -73,14 +73,14 @@ public abstract class AbstractRemoveRedundantTypeExpressionsRule implements IAlg
             // Find the input return type.
             inputSequenceType = ExpressionToolbox.getOutputSequenceType(opRef, argFirstM, dCtx);
 
-            // Find the treat type.
+            // Find the argument type.
             SequenceType sTypeArg = null;
             if (hasTypeArgument()) {
-                sTypeArg = ExpressionToolbox.getTypeExpressionTypeArguement(searchM, dCtx);
+                sTypeArg = ExpressionToolbox.getTypeExpressionTypeArgument(searchM, dCtx);
             }
 
             // remove
-            if (safeToReplace(sTypeArg, inputSequenceType)) {
+            if (matchesAllInstancesOf(sTypeArg, inputSequenceType)) {
                 searchM.setValue(argFirstM.getValue());
                 modified = true;
             }
@@ -88,7 +88,7 @@ public abstract class AbstractRemoveRedundantTypeExpressionsRule implements IAlg
         return modified;
     }
 
-    public abstract boolean safeToReplace(SequenceType sTypeArg, SequenceType sTypeOutput);
+    public abstract boolean matchesAllInstancesOf(SequenceType sTypeArg, SequenceType sTypeOutput);
 
     public boolean hasTypeArgument() {
         return true;

http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/d88a64e1/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantCastExpressionsRule.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantCastExpressionsRule.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantCastExpressionsRule.java
index bf06b00..339feea 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantCastExpressionsRule.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantCastExpressionsRule.java
@@ -51,7 +51,7 @@ public class RemoveRedundantCastExpressionsRule extends AbstractRemoveRedundantT
     }
 
     @Override
-    public boolean safeToReplace(SequenceType sTypeArg, SequenceType sTypeOutput) {
+    public boolean matchesAllInstancesOf(SequenceType sTypeArg, SequenceType sTypeOutput) {
         if (sTypeArg != null && sTypeOutput != null && sTypeOutput.equals(sTypeArg)) {
             // Same type.
             return true;

http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/d88a64e1/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantDataExpressionsRule.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantDataExpressionsRule.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantDataExpressionsRule.java
index fb05e4d..97f98f5 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantDataExpressionsRule.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantDataExpressionsRule.java
@@ -53,7 +53,7 @@ public class RemoveRedundantDataExpressionsRule extends AbstractRemoveRedundantT
         return false;
     }
 
-    public boolean safeToReplace(SequenceType sTypeArg, SequenceType sTypeOutput) {
+    public boolean matchesAllInstancesOf(SequenceType sTypeArg, SequenceType sTypeOutput) {
         if (sTypeOutput != null && sTypeOutput.getItemType().isAtomicType()) {
             return true;
         }

http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/d88a64e1/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantPromoteExpressionsRule.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantPromoteExpressionsRule.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantPromoteExpressionsRule.java
index 589618d..12865e0 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantPromoteExpressionsRule.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantPromoteExpressionsRule.java
@@ -56,7 +56,7 @@ public class RemoveRedundantPromoteExpressionsRule extends AbstractRemoveRedunda
     }
 
     @Override
-    public boolean safeToReplace(SequenceType sTypeArg, SequenceType sTypeOutput) {
+    public boolean matchesAllInstancesOf(SequenceType sTypeArg, SequenceType sTypeOutput) {
         if (sTypeArg != null) {
             if (sTypeArg.getItemType() != BuiltinTypeRegistry.XS_DOUBLE
                     && sTypeArg.getItemType() != BuiltinTypeRegistry.XS_FLOAT

http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/d88a64e1/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantTreatExpressionsRule.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantTreatExpressionsRule.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantTreatExpressionsRule.java
index 63ad06f..ef23f30 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantTreatExpressionsRule.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/RemoveRedundantTreatExpressionsRule.java
@@ -54,11 +54,10 @@ public class RemoveRedundantTreatExpressionsRule extends AbstractRemoveRedundant
     }
 
     @Override
-    public boolean safeToReplace(SequenceType sTypeArg, SequenceType sTypeOutput) {
+    public boolean matchesAllInstancesOf(SequenceType sTypeArg, SequenceType sTypeOutput) {
         if (sTypeArg != null) {
             stm.setSequenceType(sTypeArg);
             if (sTypeOutput != null && stm.isSubType(sTypeOutput)) {
-                // Same type.
                 return true;
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/d88a64e1/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/util/ExpressionToolbox.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/util/ExpressionToolbox.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/util/ExpressionToolbox.java
index 7d54068..7794ed0 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/util/ExpressionToolbox.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/util/ExpressionToolbox.java
@@ -171,7 +171,7 @@ public class ExpressionToolbox {
         return pTypeCode.getInteger();
     }
 
-    public static SequenceType getTypeExpressionTypeArguement(Mutable<ILogicalExpression> searchM,
+    public static SequenceType getTypeExpressionTypeArgument(Mutable<ILogicalExpression> searchM,
             StaticContextImpl dCtx) {
         int typeId = getTypeExpressionTypeArgument(searchM);
         if (typeId > 0) {
@@ -192,7 +192,7 @@ public class ExpressionToolbox {
                     return null;
                 } else if (function.getFunctionIdentifier().equals(BuiltinOperators.CAST.getFunctionIdentifier())) {
                     // Special case since case has multiple type outputs.
-                    return ExpressionToolbox.getTypeExpressionTypeArguement(argFirstM, dCtx);
+                    return ExpressionToolbox.getTypeExpressionTypeArgument(argFirstM, dCtx);
                 } else {
                     return function.getSignature().getReturnType();
                 }
@@ -212,6 +212,7 @@ public class ExpressionToolbox {
                 if (variableOp.getOperatorTag() == LogicalOperatorTag.DATASOURCESCAN) {
                     return SequenceType.create(AnyNodeType.INSTANCE, Quantifier.QUANT_ONE);
                 }
+                // TODO Consider support for other operators. i.e. Assign.
         }
         return null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/d88a64e1/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java
index 1bcd1ce..a7b79e8 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java
@@ -101,6 +101,12 @@ public abstract class AbstractGeneralComparisonScalarEvaluatorFactory extends
         final VoidPointable p2 = (VoidPointable) VoidPointable.FACTORY.createPointable();
         final TaggedValuePointable tvpSeq1 = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
         final TaggedValuePointable tvpSeq2 = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+        final TaggedValuePointable tvpTransform1 = (TaggedValuePointable) TaggedValuePointable.FACTORY
+                .createPointable();
+        final TaggedValuePointable tvpTransform2 = (TaggedValuePointable) TaggedValuePointable.FACTORY
+                .createPointable();
+        final TaggedValuePointable tvpCompare1 = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+        final TaggedValuePointable tvpCompare2 = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
 
         return new AbstractTaggedValueArgumentScalarEvaluator(args) {
             AbstractCastToOperation aCastToOp = new CastToStringOperation();
@@ -188,20 +194,12 @@ public abstract class AbstractGeneralComparisonScalarEvaluatorFactory extends
                 boolean tagTransformed1 = false, tagTransformed2 = false;
                 abvsInner1.reset();
                 abvsInner2.reset();
-                TaggedValuePointable tvpTransform1 = (TaggedValuePointable) TaggedValuePointable.FACTORY
-                        .createPointable();
-                TaggedValuePointable tvpTransform2 = (TaggedValuePointable) TaggedValuePointable.FACTORY
-                        .createPointable();
                 tvpTransform1.set(tvpArg1);
                 tvpTransform2.set(tvpArg2);
                 int tid1 = FunctionHelper.getBaseTypeForGeneralComparisons(tvpTransform1.getTag());
                 int tid2 = FunctionHelper.getBaseTypeForGeneralComparisons(tvpTransform2.getTag());
 
                 // Converted tags
-                TaggedValuePointable tvpCompare1 = (TaggedValuePointable) TaggedValuePointable.FACTORY
-                        .createPointable();
-                TaggedValuePointable tvpCompare2 = (TaggedValuePointable) TaggedValuePointable.FACTORY
-                        .createPointable();
                 try {
                     // Converts node tree's into untyped atomic values that can then be compared as atomic items.
                     if (tid1 == ValueTag.NODE_TREE_TAG && tid2 == ValueTag.NODE_TREE_TAG) {
@@ -239,7 +237,7 @@ public abstract class AbstractGeneralComparisonScalarEvaluatorFactory extends
                     }
                     // Copy over the values not changed and upgrade numeric values to double.
                     if (!tagTransformed1) {
-                        tvpCompare1 = tvpTransform1;
+                        tvpCompare1.set(tvpTransform1);
                         if (FunctionHelper.isDerivedFromDouble(tvpCompare1.getTag())) {
                             FunctionHelper.getDoublePointable(tvpTransform1, dOutInner1);
                             tvpCompare1.set(abvsInner1.getByteArray(), abvsInner1.getStartOffset(),
@@ -248,7 +246,7 @@ public abstract class AbstractGeneralComparisonScalarEvaluatorFactory extends
                         }
                     }
                     if (!tagTransformed2) {
-                        tvpCompare2 = tvpTransform2;
+                        tvpCompare2.set(tvpTransform2);
                         if (FunctionHelper.isDerivedFromDouble(tvpCompare2.getTag())) {
                             FunctionHelper.getDoublePointable(tvpTransform2, dOutInner2);
                             tvpCompare2.set(abvsInner2.getByteArray(), abvsInner2.getStartOffset(),

http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/d88a64e1/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/FnDataScalarEvaluatorFactory.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/FnDataScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/FnDataScalarEvaluatorFactory.java
index cd4dbb3..7aed0b4 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/FnDataScalarEvaluatorFactory.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/misc/FnDataScalarEvaluatorFactory.java
@@ -27,7 +27,6 @@ import org.apache.vxquery.exceptions.SystemException;
 import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
 import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluatorFactory;
 import org.apache.vxquery.runtime.functions.util.AtomizeHelper;
-import org.apache.vxquery.runtime.functions.util.FunctionHelper;
 
 import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
 import edu.uci.ics.hyracks.algebricks.runtime.base.IScalarEvaluator;
@@ -49,7 +48,7 @@ public class FnDataScalarEvaluatorFactory extends AbstractTaggedValueArgumentSca
         return new FnDataScalarEvaluator(args);
     }
 
-    private class FnDataScalarEvaluator extends AbstractTaggedValueArgumentScalarEvaluator {
+    private static class FnDataScalarEvaluator extends AbstractTaggedValueArgumentScalarEvaluator {
         final AtomizeHelper ah = new AtomizeHelper();
         final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
         final SequenceBuilder sb = new SequenceBuilder();

http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/d88a64e1/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 c2ada24..d73dd12 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
@@ -14,8 +14,6 @@
  */
 package org.apache.vxquery.xmlparser;
 
-import org.apache.vxquery.exceptions.ErrorCode;
-import org.apache.vxquery.exceptions.SystemException;
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
 import org.xml.sax.helpers.XMLReaderFactory;
@@ -46,22 +44,4 @@ public class XMLParser {
             throw new HyracksDataException(e.toString());
         }
     }
-
-    public void reset() throws SystemException {
-    }
-
-    public static void parseInputSource(InputSource in, ArrayBackedValueStorage abvs, boolean attachTypes,
-            ITreeNodeIdProvider idProvider) throws SystemException {
-        XMLReader parser;
-        try {
-            parser = XMLReaderFactory.createXMLReader();
-            SAXContentHandler handler = new SAXContentHandler(attachTypes, idProvider);
-            parser.setContentHandler(handler);
-            parser.setProperty("http://xml.org/sax/properties/lexical-handler", handler);
-            parser.parse(in);
-            handler.write(abvs);
-        } catch (Exception e) {
-            throw new SystemException(ErrorCode.FODC0002, e, in.getSystemId());
-        }
-    }
 }
\ No newline at end of file