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 2012/08/25 03:06:49 UTC
svn commit: r1377174 - in
/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery:
functions/ runtime/functions/comparison/general/
Author: prestonc
Date: Sat Aug 25 01:06:48 2012
New Revision: 1377174
URL: http://svn.apache.org/viewvc?rev=1377174&view=rev
Log:
The initial pass at getting the general comparisons up and running. Seems to work for many of the use cases. Still need to add sequence type support.
Added:
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralEqComparisonScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGeComparisonScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGtComparisonScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLeComparisonScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLtComparisonScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralNeComparisonScalarEvaluatorFactory.java (with props)
Modified:
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml
Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml?rev=1377174&r1=1377173&r2=1377174&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-operators.xml Sat Aug 25 01:06:48 2012
@@ -561,6 +561,7 @@
<param name="arg1" type="item()*"/>
<param name="arg2" type="item()*"/>
<return type="xs:boolean"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.comparison.general.GeneralEqComparisonScalarEvaluatorFactory"/>
</operator>
<!-- opext:general-ne($arg1 as item()*, $arg2 as item()*) as xs:boolean -->
@@ -568,6 +569,7 @@
<param name="arg1" type="item()*"/>
<param name="arg2" type="item()*"/>
<return type="xs:boolean"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.comparison.general.GeneralNeComparisonScalarEvaluatorFactory"/>
</operator>
<!-- opext:general-lt($arg1 as item()*, $arg2 as item()*) as xs:boolean -->
@@ -575,6 +577,7 @@
<param name="arg1" type="item()*"/>
<param name="arg2" type="item()*"/>
<return type="xs:boolean"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.comparison.general.GeneralLtComparisonScalarEvaluatorFactory"/>
</operator>
<!-- opext:general-le($arg1 as item()*, $arg2 as item()*) as xs:boolean -->
@@ -582,6 +585,7 @@
<param name="arg1" type="item()*"/>
<param name="arg2" type="item()*"/>
<return type="xs:boolean"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.comparison.general.GeneralLeComparisonScalarEvaluatorFactory"/>
</operator>
<!-- opext:general-gt($arg1 as item()*, $arg2 as item()*) as xs:boolean -->
@@ -589,6 +593,7 @@
<param name="arg1" type="item()*"/>
<param name="arg2" type="item()*"/>
<return type="xs:boolean"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.comparison.general.GeneralGtComparisonScalarEvaluatorFactory"/>
</operator>
<!-- opext:general-ge($arg1 as item()*, $arg2 as item()*) as xs:boolean -->
@@ -596,6 +601,7 @@
<param name="arg1" type="item()*"/>
<param name="arg2" type="item()*"/>
<return type="xs:boolean"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.comparison.general.GeneralGeComparisonScalarEvaluatorFactory"/>
</operator>
<!-- opext:add($arg1 as xs:anyAtomicType?, $arg2 as xs:anyAtomicType?) as xs:anyAtomicType? -->
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java?rev=1377174&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java Sat Aug 25 01:06:48 2012
@@ -0,0 +1,664 @@
+/*
+* 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.comparison.general;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.context.DynamicContext;
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSBinaryPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDecimalPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSQNamePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSTimePointable;
+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.runtime.functions.cast.AbstractCastToOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToAnyURIOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToBase64BinaryOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToBooleanOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToByteOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToDTDurationOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToDateOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToDateTimeOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToDecimalOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToDoubleOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToDurationOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToFloatOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToGDayOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToGMonthDayOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToGMonthOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToGYearMonthOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToGYearOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToHexBinaryOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToIntOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToIntegerOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToLongOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToNegativeIntegerOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToNonNegativeIntegerOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToNonPositiveIntegerOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToPositiveIntegerOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToQNameOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToShortOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToStringOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToTimeOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToUnsignedByteOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToUnsignedIntOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToUnsignedLongOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToUnsignedShortOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToUntypedAtomicOperation;
+import org.apache.vxquery.runtime.functions.cast.CastToYMDurationOperation;
+import org.apache.vxquery.runtime.functions.comparison.AbstractValueComparisonOperation;
+import org.apache.vxquery.types.BuiltinTypeRegistry;
+
+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.BooleanPointable;
+import edu.uci.ics.hyracks.data.std.primitive.BytePointable;
+import edu.uci.ics.hyracks.data.std.primitive.DoublePointable;
+import edu.uci.ics.hyracks.data.std.primitive.FloatPointable;
+import edu.uci.ics.hyracks.data.std.primitive.IntegerPointable;
+import edu.uci.ics.hyracks.data.std.primitive.LongPointable;
+import edu.uci.ics.hyracks.data.std.primitive.ShortPointable;
+import edu.uci.ics.hyracks.data.std.primitive.UTF8StringPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public abstract class AbstractGeneralComparisonScalarEvaluatorFactory extends
+ AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public AbstractGeneralComparisonScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final AbstractValueComparisonOperation aOp = createValueComparisonOperation();
+ final ArrayBackedValueStorage abvsInner1 = new ArrayBackedValueStorage();
+ final DataOutput dOutInner1 = abvsInner1.getDataOutput();
+ final ArrayBackedValueStorage abvsInner2 = new ArrayBackedValueStorage();
+ final DataOutput dOutInner2 = abvsInner2.getDataOutput();
+ final TypedPointables tp = new TypedPointables();
+ final TypedPointables tp1 = new TypedPointables();
+ final TypedPointables tp2 = new TypedPointables();
+ final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ AbstractCastToOperation aCastToOp = new CastToStringOperation();
+
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ boolean booleanResult = false;
+ boolean tagTransformed1 = false, tagTransformed2 = false;
+ TaggedValuePointable tvpArg1 = args[0];
+ TaggedValuePointable tvpArg2 = args[1];
+ int tid1 = getBaseTypeForComparisons(tvpArg1.getTag());
+ int tid2 = getBaseTypeForComparisons(tvpArg2.getTag());
+ abvsInner1.reset();
+ abvsInner2.reset();
+ // Converted tags
+ TaggedValuePointable tvp1 = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+ TaggedValuePointable tvp2 = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+ try {
+ // Set up value comparison tagged value pointables.
+ if (tid1 == ValueTag.XS_UNTYPED_ATOMIC_TAG && tid2 == ValueTag.XS_UNTYPED_ATOMIC_TAG) {
+ // Only need to change tag since the storage is the same for untyped atomic and string.
+ tid1 = ValueTag.XS_STRING_TAG;
+ tid2 = ValueTag.XS_STRING_TAG;
+ } else if (tid1 == ValueTag.XS_UNTYPED_ATOMIC_TAG) {
+ tid1 = tid2;
+ getCastToOperator(tid2);
+ tvpArg1.getValue(tp1.utf8sp);
+ aCastToOp.convertUntypedAtomic(tp1.utf8sp, dOutInner1);
+ tvp1.set(abvsInner1.getByteArray(), abvsInner1.getStartOffset(), abvsInner1.getLength());
+ tagTransformed1 = true;
+ } else if (tid2 == ValueTag.XS_UNTYPED_ATOMIC_TAG) {
+ tid2 = tid1;
+ getCastToOperator(tid1);
+ tvpArg2.getValue(tp2.utf8sp);
+ aCastToOp.convertUntypedAtomic(tp2.utf8sp, dOutInner2);
+ tvp2.set(abvsInner2.getByteArray(), abvsInner2.getStartOffset(), abvsInner2.getLength());
+ tagTransformed2 = true;
+ }
+ // Copy over the values not changed and upgrade numeric values to double.
+ if (!tagTransformed1) {
+ tvp1 = tvpArg1;
+ switch (tvp1.getTag()) {
+ case ValueTag.XS_DECIMAL_TAG:
+ case ValueTag.XS_DOUBLE_TAG:
+ case ValueTag.XS_FLOAT_TAG:
+ case ValueTag.XS_INTEGER_TAG:
+ case ValueTag.XS_NON_POSITIVE_INTEGER_TAG:
+ case ValueTag.XS_NEGATIVE_INTEGER_TAG:
+ case ValueTag.XS_LONG_TAG:
+ case ValueTag.XS_NON_NEGATIVE_INTEGER_TAG:
+ case ValueTag.XS_UNSIGNED_LONG_TAG:
+ case ValueTag.XS_POSITIVE_INTEGER_TAG:
+ case ValueTag.XS_INT_TAG:
+ case ValueTag.XS_UNSIGNED_INT_TAG:
+ case ValueTag.XS_SHORT_TAG:
+ case ValueTag.XS_UNSIGNED_SHORT_TAG:
+ case ValueTag.XS_BYTE_TAG:
+ case ValueTag.XS_UNSIGNED_BYTE_TAG:
+ getDoublePointable(tvpArg1, dOutInner1);
+ tvp1.set(abvsInner1.getByteArray(), abvsInner1.getStartOffset(),
+ DoublePointable.TYPE_TRAITS.getFixedLength() + 1);
+ tagTransformed1 = true;
+ }
+ }
+ if (!tagTransformed2) {
+ tvp2 = tvpArg2;
+ switch (tvp2.getTag()) {
+ case ValueTag.XS_DECIMAL_TAG:
+ case ValueTag.XS_DOUBLE_TAG:
+ case ValueTag.XS_FLOAT_TAG:
+ case ValueTag.XS_INTEGER_TAG:
+ case ValueTag.XS_NON_POSITIVE_INTEGER_TAG:
+ case ValueTag.XS_NEGATIVE_INTEGER_TAG:
+ case ValueTag.XS_LONG_TAG:
+ case ValueTag.XS_NON_NEGATIVE_INTEGER_TAG:
+ case ValueTag.XS_UNSIGNED_LONG_TAG:
+ case ValueTag.XS_POSITIVE_INTEGER_TAG:
+ case ValueTag.XS_INT_TAG:
+ case ValueTag.XS_UNSIGNED_INT_TAG:
+ case ValueTag.XS_SHORT_TAG:
+ case ValueTag.XS_UNSIGNED_SHORT_TAG:
+ case ValueTag.XS_BYTE_TAG:
+ case ValueTag.XS_UNSIGNED_BYTE_TAG:
+ getDoublePointable(tvpArg1, dOutInner2);
+ tvp2.set(abvsInner1.getByteArray(), abvsInner1.getStartOffset(),
+ DoublePointable.TYPE_TRAITS.getFixedLength() + 1);
+ tagTransformed2 = true;
+ }
+ }
+
+ // Run the value comparison.
+ switch (tid1) {
+
+ case ValueTag.XS_DOUBLE_TAG:
+ tvp1.getValue(tp1.doublep);
+ switch (tid2) {
+ case ValueTag.XS_DOUBLE_TAG:
+ tvp2.getValue(tp2.doublep);
+ booleanResult = aOp.operateDoubleDouble(tp1.doublep, tp2.doublep);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_BOOLEAN_TAG:
+ tvp1.getValue(tp1.boolp);
+ switch (tid2) {
+ case ValueTag.XS_BOOLEAN_TAG:
+ tvp2.getValue(tp2.boolp);
+ booleanResult = aOp.operateBooleanBoolean(tp1.boolp, tp2.boolp);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_STRING_TAG:
+ tvp1.getValue(tp1.utf8sp);
+ switch (tid2) {
+ case ValueTag.XS_STRING_TAG:
+ tvp2.getValue(tp2.utf8sp);
+ booleanResult = aOp.operateStringString(tp1.utf8sp, tp2.utf8sp);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_DATE_TAG:
+ tvp1.getValue(tp1.datep);
+ switch (tid2) {
+ case ValueTag.XS_DATE_TAG:
+ tvp2.getValue(tp2.datep);
+ booleanResult = aOp.operateDateDate(tp1.datep, tp2.datep, dCtx);
+ break;
+ default:
+ // Cross comparisons between DateTime, Date and Time are not supported.
+ throw new SystemException(ErrorCode.XPTY0004);
+ }
+ break;
+
+ case ValueTag.XS_DATETIME_TAG:
+ tvp1.getValue(tp1.datetimep);
+ switch (tid2) {
+ case ValueTag.XS_DATETIME_TAG:
+ tvp2.getValue(tp2.datetimep);
+ booleanResult = aOp.operateDatetimeDatetime(tp1.datetimep, tp2.datetimep, dCtx);
+ break;
+ default:
+ // Cross comparisons between DateTime, Date and Time are not supported.
+ throw new SystemException(ErrorCode.XPTY0004);
+ }
+ break;
+
+ case ValueTag.XS_TIME_TAG:
+ tvp1.getValue(tp1.timep);
+ switch (tid2) {
+ case ValueTag.XS_TIME_TAG:
+ tvp2.getValue(tp2.timep);
+ booleanResult = aOp.operateTimeTime(tp1.timep, tp2.timep, dCtx);
+ break;
+ default:
+ // Cross comparisons between DateTime, Date and Time are not supported.
+ throw new SystemException(ErrorCode.XPTY0004);
+ }
+ break;
+
+ case ValueTag.XS_DURATION_TAG:
+ tvp1.getValue(tp1.durationp);
+ switch (tid2) {
+ case ValueTag.XS_DAY_TIME_DURATION_TAG:
+ tvp2.getValue(tp2.longp);
+ booleanResult = aOp.operateDurationDTDuration(tp1.durationp, tp2.longp);
+ break;
+ case ValueTag.XS_DURATION_TAG:
+ tvp2.getValue(tp2.durationp);
+ booleanResult = aOp.operateDurationDuration(tp1.durationp, tp2.durationp);
+ break;
+ case ValueTag.XS_YEAR_MONTH_DURATION_TAG:
+ tvp2.getValue(tp2.intp);
+ booleanResult = aOp.operateDurationYMDuration(tp1.durationp, tp2.intp);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_DAY_TIME_DURATION_TAG:
+ tvp1.getValue(tp1.longp);
+ switch (tid2) {
+ case ValueTag.XS_DAY_TIME_DURATION_TAG:
+ tvp2.getValue(tp2.longp);
+ booleanResult = aOp.operateDTDurationDTDuration(tp1.longp, tp2.longp);
+ break;
+ case ValueTag.XS_DURATION_TAG:
+ tvp2.getValue(tp2.durationp);
+ booleanResult = aOp.operateDTDurationDuration(tp1.longp, tp2.durationp);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_YEAR_MONTH_DURATION_TAG:
+ tvp1.getValue(tp1.intp);
+ switch (tid2) {
+ case ValueTag.XS_DURATION_TAG:
+ tvp2.getValue(tp2.durationp);
+ booleanResult = aOp.operateYMDurationDuration(tp1.intp, tp2.durationp);
+ break;
+ case ValueTag.XS_YEAR_MONTH_DURATION_TAG:
+ tvp2.getValue(tp2.intp);
+ booleanResult = aOp.operateYMDurationYMDuration(tp1.intp, tp2.intp);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_G_DAY_TAG:
+ tvp1.getValue(tp1.datep);
+ switch (tid2) {
+ case ValueTag.XS_G_DAY_TAG:
+ tvp2.getValue(tp2.datep);
+ booleanResult = aOp.operateGDayGDay(tp1.datep, tp2.datep, dCtx);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_G_MONTH_DAY_TAG:
+ tvp1.getValue(tp1.datep);
+ switch (tid2) {
+ case ValueTag.XS_G_MONTH_DAY_TAG:
+ tvp2.getValue(tp2.datep);
+ booleanResult = aOp.operateGMonthDayGMonthDay(tp1.datep, tp2.datep, dCtx);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_G_MONTH_TAG:
+ tvp1.getValue(tp1.datep);
+ switch (tid2) {
+ case ValueTag.XS_G_MONTH_TAG:
+ tvp2.getValue(tp2.datep);
+ booleanResult = aOp.operateGMonthGMonth(tp1.datep, tp2.datep, dCtx);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_G_YEAR_MONTH_TAG:
+ tvp1.getValue(tp1.datep);
+ switch (tid2) {
+ case ValueTag.XS_G_YEAR_MONTH_TAG:
+ tvp2.getValue(tp2.datep);
+ booleanResult = aOp.operateGYearMonthGYearMonth(tp1.datep, tp2.datep, dCtx);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_G_YEAR_TAG:
+ tvp1.getValue(tp1.datep);
+ switch (tid2) {
+ case ValueTag.XS_G_YEAR_TAG:
+ tvp2.getValue(tp2.datep);
+ booleanResult = aOp.operateGYearGYear(tp1.datep, tp2.datep, dCtx);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_HEX_BINARY_TAG:
+ tvp1.getValue(tp1.binaryp);
+ switch (tid2) {
+ case ValueTag.XS_HEX_BINARY_TAG:
+ tvp2.getValue(tp2.binaryp);
+ booleanResult = aOp.operateHexBinaryHexBinary(tp1.binaryp, tp2.binaryp);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_BASE64_BINARY_TAG:
+ tvp1.getValue(tp1.binaryp);
+ switch (tid2) {
+ case ValueTag.XS_BASE64_BINARY_TAG:
+ tvp2.getValue(tp2.binaryp);
+ booleanResult = aOp.operateBase64BinaryBase64Binary(tp1.binaryp, tp2.binaryp);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_ANY_URI_TAG:
+ tvp1.getValue(tp1.utf8sp);
+ switch (tid2) {
+ case ValueTag.XS_ANY_URI_TAG:
+ tvp2.getValue(tp2.utf8sp);
+ booleanResult = aOp.operateAnyURIAnyURI(tp1.utf8sp, tp2.utf8sp);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_QNAME_TAG:
+ tvp1.getValue(tp1.qnamep);
+ switch (tid2) {
+ case ValueTag.XS_QNAME_TAG:
+ tvp2.getValue(tp2.qnamep);
+ booleanResult = aOp.operateQNameQName(tp1.qnamep, tp2.qnamep);
+ break;
+ }
+ break;
+
+ case ValueTag.XS_NOTATION_TAG:
+ tvp1.getValue(tp1.utf8sp);
+ switch (tid2) {
+ case ValueTag.XS_NOTATION_TAG:
+ tvp2.getValue(tp2.utf8sp);
+ booleanResult = aOp.operateNotationNotation(tp1.utf8sp, tp2.utf8sp);
+ break;
+ }
+ break;
+ }
+
+ byte[] byteResult = new byte[2];
+ byteResult[0] = ValueTag.XS_BOOLEAN_TAG;
+ byteResult[1] = (byte) (booleanResult ? 1 : 0);
+ result.set(byteResult, 0, 2);
+ } catch (SystemException se) {
+ throw se;
+ } catch (Exception e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+
+ private void getDoublePointable(TaggedValuePointable tvp, DataOutput dOut) throws SystemException,
+ IOException {
+ double value;
+ switch (tvp.getTag()) {
+ case ValueTag.XS_DECIMAL_TAG:
+ tvp.getValue(tp.decp);
+ value = tp.decp.doubleValue();
+ break;
+
+ case ValueTag.XS_DOUBLE_TAG:
+ tvp.getValue(tp.doublep);
+ value = tp.doublep.doubleValue();
+ break;
+
+ case ValueTag.XS_FLOAT_TAG:
+ tvp.getValue(tp.floatp);
+ value = tp.floatp.doubleValue();
+ break;
+
+ case ValueTag.XS_INTEGER_TAG:
+ case ValueTag.XS_LONG_TAG:
+ case ValueTag.XS_NEGATIVE_INTEGER_TAG:
+ case ValueTag.XS_NON_POSITIVE_INTEGER_TAG:
+ case ValueTag.XS_NON_NEGATIVE_INTEGER_TAG:
+ case ValueTag.XS_POSITIVE_INTEGER_TAG:
+ case ValueTag.XS_UNSIGNED_INT_TAG:
+ case ValueTag.XS_UNSIGNED_LONG_TAG:
+ tvp.getValue(tp.longp);
+ value = tp.longp.doubleValue();
+ break;
+
+ case ValueTag.XS_INT_TAG:
+ case ValueTag.XS_UNSIGNED_SHORT_TAG:
+ tvp.getValue(tp.intp);
+ value = tp.intp.doubleValue();
+ break;
+
+ case ValueTag.XS_SHORT_TAG:
+ case ValueTag.XS_UNSIGNED_BYTE_TAG:
+ tvp.getValue(tp.shortp);
+ value = tp.shortp.doubleValue();
+ break;
+
+ case ValueTag.XS_BYTE_TAG:
+ tvp.getValue(tp.bytep);
+ value = tp.bytep.doubleValue();
+ break;
+
+ default:
+ value = 0;
+ }
+ dOut.write(ValueTag.XS_DOUBLE_TAG);
+ dOut.writeDouble(value);
+ }
+
+ private int getBaseTypeForComparisons(int tid) throws SystemException {
+ while (true) {
+ switch (tid) {
+ case ValueTag.XS_ANY_URI_TAG:
+ case ValueTag.XS_BASE64_BINARY_TAG:
+ case ValueTag.XS_BOOLEAN_TAG:
+ case ValueTag.XS_DATE_TAG:
+ case ValueTag.XS_DATETIME_TAG:
+ case ValueTag.XS_DAY_TIME_DURATION_TAG:
+ case ValueTag.XS_DURATION_TAG:
+ case ValueTag.XS_HEX_BINARY_TAG:
+ case ValueTag.XS_G_DAY_TAG:
+ case ValueTag.XS_G_MONTH_DAY_TAG:
+ case ValueTag.XS_G_MONTH_TAG:
+ case ValueTag.XS_G_YEAR_MONTH_TAG:
+ case ValueTag.XS_G_YEAR_TAG:
+ case ValueTag.XS_QNAME_TAG:
+ case ValueTag.XS_STRING_TAG:
+ case ValueTag.XS_TIME_TAG:
+ case ValueTag.XS_UNTYPED_ATOMIC_TAG:
+ case ValueTag.XS_YEAR_MONTH_DURATION_TAG:
+ return tid;
+ case ValueTag.XS_DECIMAL_TAG:
+ case ValueTag.XS_DOUBLE_TAG:
+ case ValueTag.XS_FLOAT_TAG:
+ case ValueTag.XS_INTEGER_TAG:
+ case ValueTag.XS_NON_POSITIVE_INTEGER_TAG:
+ case ValueTag.XS_NEGATIVE_INTEGER_TAG:
+ case ValueTag.XS_LONG_TAG:
+ case ValueTag.XS_NON_NEGATIVE_INTEGER_TAG:
+ case ValueTag.XS_UNSIGNED_LONG_TAG:
+ case ValueTag.XS_POSITIVE_INTEGER_TAG:
+ case ValueTag.XS_INT_TAG:
+ case ValueTag.XS_UNSIGNED_INT_TAG:
+ case ValueTag.XS_SHORT_TAG:
+ case ValueTag.XS_UNSIGNED_SHORT_TAG:
+ case ValueTag.XS_BYTE_TAG:
+ case ValueTag.XS_UNSIGNED_BYTE_TAG:
+ return ValueTag.XS_DOUBLE_TAG;
+
+ case ValueTag.XS_ANY_ATOMIC_TAG:
+ throw new SystemException(ErrorCode.XPTY0004);
+
+ default:
+ tid = BuiltinTypeRegistry.INSTANCE.getSchemaTypeById(tid).getBaseType().getTypeId();
+ }
+ }
+ }
+
+ private void getCastToOperator(int tid) {
+ switch (tid) {
+ case ValueTag.XS_ANY_URI_TAG:
+ aCastToOp = new CastToAnyURIOperation();
+ break;
+ case ValueTag.XS_BASE64_BINARY_TAG:
+ aCastToOp = new CastToBase64BinaryOperation();
+ break;
+ case ValueTag.XS_BOOLEAN_TAG:
+ aCastToOp = new CastToBooleanOperation();
+ break;
+ case ValueTag.XS_DATE_TAG:
+ aCastToOp = new CastToDateOperation();
+ break;
+ case ValueTag.XS_DATETIME_TAG:
+ aCastToOp = new CastToDateTimeOperation();
+ break;
+ case ValueTag.XS_DAY_TIME_DURATION_TAG:
+ aCastToOp = new CastToDTDurationOperation();
+ break;
+ case ValueTag.XS_DURATION_TAG:
+ aCastToOp = new CastToDurationOperation();
+ break;
+ case ValueTag.XS_HEX_BINARY_TAG:
+ aCastToOp = new CastToHexBinaryOperation();
+ break;
+ case ValueTag.XS_G_DAY_TAG:
+ aCastToOp = new CastToGDayOperation();
+ break;
+ case ValueTag.XS_G_MONTH_DAY_TAG:
+ aCastToOp = new CastToGMonthDayOperation();
+ break;
+ case ValueTag.XS_G_MONTH_TAG:
+ aCastToOp = new CastToGMonthOperation();
+ break;
+ case ValueTag.XS_G_YEAR_MONTH_TAG:
+ aCastToOp = new CastToGYearMonthOperation();
+ break;
+ case ValueTag.XS_G_YEAR_TAG:
+ aCastToOp = new CastToGYearOperation();
+ break;
+ case ValueTag.XS_QNAME_TAG:
+ aCastToOp = new CastToQNameOperation();
+ break;
+ case ValueTag.XS_STRING_TAG:
+ aCastToOp = new CastToStringOperation();
+ break;
+ case ValueTag.XS_TIME_TAG:
+ aCastToOp = new CastToTimeOperation();
+ break;
+ case ValueTag.XS_UNTYPED_ATOMIC_TAG:
+ aCastToOp = new CastToUntypedAtomicOperation();
+ break;
+ case ValueTag.XS_YEAR_MONTH_DURATION_TAG:
+ aCastToOp = new CastToYMDurationOperation();
+ break;
+ case ValueTag.XS_DECIMAL_TAG:
+ aCastToOp = new CastToDecimalOperation();
+ break;
+ case ValueTag.XS_DOUBLE_TAG:
+ aCastToOp = new CastToDoubleOperation();
+ break;
+ case ValueTag.XS_FLOAT_TAG:
+ aCastToOp = new CastToFloatOperation();
+ break;
+ case ValueTag.XS_INTEGER_TAG:
+ aCastToOp = new CastToIntegerOperation();
+ break;
+ case ValueTag.XS_NON_POSITIVE_INTEGER_TAG:
+ aCastToOp = new CastToNonPositiveIntegerOperation();
+ break;
+ case ValueTag.XS_NEGATIVE_INTEGER_TAG:
+ aCastToOp = new CastToNegativeIntegerOperation();
+ break;
+ case ValueTag.XS_LONG_TAG:
+ aCastToOp = new CastToLongOperation();
+ break;
+ case ValueTag.XS_NON_NEGATIVE_INTEGER_TAG:
+ aCastToOp = new CastToNonNegativeIntegerOperation();
+ break;
+ case ValueTag.XS_UNSIGNED_LONG_TAG:
+ aCastToOp = new CastToUnsignedLongOperation();
+ break;
+ case ValueTag.XS_POSITIVE_INTEGER_TAG:
+ aCastToOp = new CastToPositiveIntegerOperation();
+ break;
+ case ValueTag.XS_INT_TAG:
+ aCastToOp = new CastToIntOperation();
+ break;
+ case ValueTag.XS_UNSIGNED_INT_TAG:
+ aCastToOp = new CastToUnsignedIntOperation();
+ break;
+ case ValueTag.XS_SHORT_TAG:
+ aCastToOp = new CastToShortOperation();
+ break;
+ case ValueTag.XS_UNSIGNED_SHORT_TAG:
+ aCastToOp = new CastToUnsignedShortOperation();
+ break;
+ case ValueTag.XS_BYTE_TAG:
+ aCastToOp = new CastToByteOperation();
+ break;
+ case ValueTag.XS_UNSIGNED_BYTE_TAG:
+ aCastToOp = new CastToUnsignedByteOperation();
+ break;
+ default:
+ aCastToOp = new CastToUntypedAtomicOperation();
+ }
+ }
+
+ };
+ }
+
+ private static class TypedPointables {
+ BooleanPointable boolp = (BooleanPointable) BooleanPointable.FACTORY.createPointable();
+ BytePointable bytep = (BytePointable) BytePointable.FACTORY.createPointable();
+ DoublePointable doublep = (DoublePointable) DoublePointable.FACTORY.createPointable();
+ FloatPointable floatp = (FloatPointable) FloatPointable.FACTORY.createPointable();
+ IntegerPointable intp = (IntegerPointable) IntegerPointable.FACTORY.createPointable();
+ LongPointable longp = (LongPointable) LongPointable.FACTORY.createPointable();
+ ShortPointable shortp = (ShortPointable) ShortPointable.FACTORY.createPointable();
+ UTF8StringPointable utf8sp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
+ XSBinaryPointable binaryp = (XSBinaryPointable) XSBinaryPointable.FACTORY.createPointable();
+ XSDatePointable datep = (XSDatePointable) XSDatePointable.FACTORY.createPointable();
+ XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
+ XSDecimalPointable decp = (XSDecimalPointable) XSDecimalPointable.FACTORY.createPointable();
+ XSDurationPointable durationp = (XSDurationPointable) XSDurationPointable.FACTORY.createPointable();
+ XSTimePointable timep = (XSTimePointable) XSTimePointable.FACTORY.createPointable();
+ XSQNamePointable qnamep = (XSQNamePointable) XSQNamePointable.FACTORY.createPointable();
+ }
+
+ protected abstract AbstractValueComparisonOperation createValueComparisonOperation();
+}
\ No newline at end of file
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/AbstractGeneralComparisonScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralEqComparisonScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralEqComparisonScalarEvaluatorFactory.java?rev=1377174&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralEqComparisonScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralEqComparisonScalarEvaluatorFactory.java Sat Aug 25 01:06:48 2012
@@ -0,0 +1,19 @@
+package org.apache.vxquery.runtime.functions.comparison.general;
+
+import org.apache.vxquery.runtime.functions.comparison.AbstractValueComparisonOperation;
+import org.apache.vxquery.runtime.functions.comparison.ValueEqComparisonOperation;
+
+import edu.uci.ics.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+
+public class GeneralEqComparisonScalarEvaluatorFactory extends AbstractGeneralComparisonScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public GeneralEqComparisonScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected AbstractValueComparisonOperation createValueComparisonOperation() {
+ return new ValueEqComparisonOperation();
+ }
+}
\ No newline at end of file
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralEqComparisonScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGeComparisonScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGeComparisonScalarEvaluatorFactory.java?rev=1377174&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGeComparisonScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGeComparisonScalarEvaluatorFactory.java Sat Aug 25 01:06:48 2012
@@ -0,0 +1,19 @@
+package org.apache.vxquery.runtime.functions.comparison.general;
+
+import org.apache.vxquery.runtime.functions.comparison.AbstractValueComparisonOperation;
+import org.apache.vxquery.runtime.functions.comparison.ValueGeComparisonOperation;
+
+import edu.uci.ics.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+
+public class GeneralGeComparisonScalarEvaluatorFactory extends AbstractGeneralComparisonScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public GeneralGeComparisonScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected AbstractValueComparisonOperation createValueComparisonOperation() {
+ return new ValueGeComparisonOperation();
+ }
+}
\ No newline at end of file
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGeComparisonScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGtComparisonScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGtComparisonScalarEvaluatorFactory.java?rev=1377174&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGtComparisonScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGtComparisonScalarEvaluatorFactory.java Sat Aug 25 01:06:48 2012
@@ -0,0 +1,19 @@
+package org.apache.vxquery.runtime.functions.comparison.general;
+
+import org.apache.vxquery.runtime.functions.comparison.AbstractValueComparisonOperation;
+import org.apache.vxquery.runtime.functions.comparison.ValueGtComparisonOperation;
+
+import edu.uci.ics.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+
+public class GeneralGtComparisonScalarEvaluatorFactory extends AbstractGeneralComparisonScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public GeneralGtComparisonScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected AbstractValueComparisonOperation createValueComparisonOperation() {
+ return new ValueGtComparisonOperation();
+ }
+}
\ No newline at end of file
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralGtComparisonScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLeComparisonScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLeComparisonScalarEvaluatorFactory.java?rev=1377174&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLeComparisonScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLeComparisonScalarEvaluatorFactory.java Sat Aug 25 01:06:48 2012
@@ -0,0 +1,19 @@
+package org.apache.vxquery.runtime.functions.comparison.general;
+
+import org.apache.vxquery.runtime.functions.comparison.AbstractValueComparisonOperation;
+import org.apache.vxquery.runtime.functions.comparison.ValueLeComparisonOperation;
+
+import edu.uci.ics.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+
+public class GeneralLeComparisonScalarEvaluatorFactory extends AbstractGeneralComparisonScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public GeneralLeComparisonScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected AbstractValueComparisonOperation createValueComparisonOperation() {
+ return new ValueLeComparisonOperation();
+ }
+}
\ No newline at end of file
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLeComparisonScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLtComparisonScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLtComparisonScalarEvaluatorFactory.java?rev=1377174&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLtComparisonScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLtComparisonScalarEvaluatorFactory.java Sat Aug 25 01:06:48 2012
@@ -0,0 +1,19 @@
+package org.apache.vxquery.runtime.functions.comparison.general;
+
+import org.apache.vxquery.runtime.functions.comparison.AbstractValueComparisonOperation;
+import org.apache.vxquery.runtime.functions.comparison.ValueLtComparisonOperation;
+
+import edu.uci.ics.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+
+public class GeneralLtComparisonScalarEvaluatorFactory extends AbstractGeneralComparisonScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public GeneralLtComparisonScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected AbstractValueComparisonOperation createValueComparisonOperation() {
+ return new ValueLtComparisonOperation();
+ }
+}
\ No newline at end of file
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralLtComparisonScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralNeComparisonScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralNeComparisonScalarEvaluatorFactory.java?rev=1377174&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralNeComparisonScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralNeComparisonScalarEvaluatorFactory.java Sat Aug 25 01:06:48 2012
@@ -0,0 +1,19 @@
+package org.apache.vxquery.runtime.functions.comparison.general;
+
+import org.apache.vxquery.runtime.functions.comparison.AbstractValueComparisonOperation;
+import org.apache.vxquery.runtime.functions.comparison.ValueNeComparisonOperation;
+
+import edu.uci.ics.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+
+public class GeneralNeComparisonScalarEvaluatorFactory extends AbstractGeneralComparisonScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public GeneralNeComparisonScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected AbstractValueComparisonOperation createValueComparisonOperation() {
+ return new ValueNeComparisonOperation();
+ }
+}
\ No newline at end of file
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/general/GeneralNeComparisonScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native