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/27 07:02:15 UTC
svn commit: r1377568 [1/2] - in
/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery:
functions/ runtime/functions/datetime/
Author: prestonc
Date: Mon Aug 27 05:02:14 2012
New Revision: 1377568
URL: http://svn.apache.org/viewvc?rev=1377568&view=rev
Log:
Added the Duration, Date and Time functions that return only part the Year, Month, Day, Hour, Minute or Second part of the result.
Added:
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateTimeScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDaysFromDurationScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDateTimeScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDurationScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromTimeScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDateTimeScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDurationScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromTimeScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateTimeScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthsFromDurationScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDateTimeScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDurationScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromTimeScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateTimeScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromTimeScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnYearFromDateScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnYearFromDateTimeScalarEvaluatorFactory.java (with props)
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnYearsFromDurationScalarEvaluatorFactory.java (with props)
Modified:
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-functions.xml
Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-functions.xml
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-functions.xml?rev=1377568&r1=1377567&r2=1377568&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-functions.xml (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/functions/builtin-functions.xml Mon Aug 27 05:02:14 2012
@@ -199,18 +199,21 @@
<function name="fn:day-from-date">
<param name="arg" type="xs:date?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnDayFromDateScalarEvaluatorFactory"/>
</function>
<!-- fn:day-from-dateTime( $arg as xs:dateTime?) as xs:integer? -->
<function name="fn:day-from-dateTime">
<param name="arg" type="xs:dateTime?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnDayFromDateTimeScalarEvaluatorFactory"/>
</function>
<!-- fn:days-from-duration( $arg as xs:duration?) as xs:integer? -->
<function name="fn:days-from-duration">
<param name="arg" type="xs:duration?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnDaysFromDurationScalarEvaluatorFactory"/>
</function>
<!-- fn:deep-equal($parameter1 as item()*, $parameter2 as item()*) as xs:boolean -->
@@ -356,18 +359,21 @@
<function name="fn:hours-from-dateTime">
<param name="arg" type="xs:dateTime?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnHoursFromDateTimeScalarEvaluatorFactory"/>
</function>
<!-- fn:hours-from-duration( $arg as xs:duration?) as xs:integer? -->
<function name="fn:hours-from-duration">
<param name="arg" type="xs:duration?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnHoursFromDurationScalarEvaluatorFactory"/>
</function>
<!-- fn:hours-from-time($arg as xs:time?) as xs:integer? -->
<function name="fn:hours-from-time">
<param name="arg" type="xs:time?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnHoursFromTimeScalarEvaluatorFactory"/>
</function>
<!-- fn:id($arg as xs:string*) as element()* -->
@@ -524,36 +530,42 @@
<function name="fn:minutes-from-dateTime">
<param name="arg" type="xs:dateTime?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnMinutesFromDateTimeScalarEvaluatorFactory"/>
</function>
<!-- fn:minutes-from-duration( $arg as xs:duration?) as xs:integer? -->
<function name="fn:minutes-from-duration">
<param name="arg" type="xs:duration?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnMinutesFromDurationScalarEvaluatorFactory"/>
</function>
<!-- fn:minutes-from-time( $arg as xs:time?) as xs:integer? -->
<function name="fn:minutes-from-time">
<param name="arg" type="xs:time?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnMinutesFromTimeScalarEvaluatorFactory"/>
</function>
<!-- fn:month-from-date($arg as xs:date?) as xs:integer? -->
<function name="fn:month-from-date">
<param name="arg" type="xs:date?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnMonthFromDateScalarEvaluatorFactory"/>
</function>
<!-- fn:month-from-dateTime( $arg as xs:dateTime?) as xs:integer? -->
<function name="fn:month-from-dateTime">
<param name="arg" type="xs:dateTime?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnMonthFromDateTimeScalarEvaluatorFactory"/>
</function>
<!-- fn:months-from-duration( $arg as xs:duration?) as xs:integer? -->
<function name="fn:months-from-duration">
<param name="arg" type="xs:duration?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnMonthsFromDurationScalarEvaluatorFactory"/>
</function>
<!-- fn:name() as xs:string -->
@@ -757,18 +769,21 @@
<function name="fn:seconds-from-dateTime">
<param name="arg" type="xs:dateTime?"/>
<return type="xs:decimal?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnSecondsFromDateTimeScalarEvaluatorFactory"/>
</function>
<!-- fn:seconds-from-duration( $arg as xs:duration?) as xs:decimal? -->
<function name="fn:seconds-from-duration">
<param name="arg" type="xs:duration?"/>
<return type="xs:decimal?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnSecondsFromDurationScalarEvaluatorFactory"/>
</function>
<!-- fn:seconds-from-time( $arg as xs:time?) as xs:decimal? -->
<function name="fn:seconds-from-time">
<param name="arg" type="xs:time?"/>
<return type="xs:decimal?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnSecondsFromTimeScalarEvaluatorFactory"/>
</function>
<!-- fn:starts-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean -->
@@ -913,18 +928,21 @@
<function name="fn:timezone-from-date">
<param name="arg" type="xs:date?"/>
<return type="xs:dayTimeDuration?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnTimezoneFromDateScalarEvaluatorFactory"/>
</function>
<!-- fn:timezone-from-dateTime( $arg as xs:dateTime?) as xs:dayTimeDuration? -->
<function name="fn:timezone-from-dateTime">
<param name="arg" type="xs:dateTime?"/>
<return type="xs:dayTimeDuration?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnTimezoneFromDateTimeScalarEvaluatorFactory"/>
</function>
<!-- fn:timezone-from-time( $arg as xs:time?) as xs:dayTimeDuration? -->
<function name="fn:timezone-from-time">
<param name="arg" type="xs:time?"/>
<return type="xs:dayTimeDuration?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnTimezoneFromTimeScalarEvaluatorFactory"/>
</function>
<!-- fn:tokenize($input as xs:string?, $pattern as xs:string) as xs:string* -->
@@ -980,18 +998,21 @@
<function name="fn:year-from-date">
<param name="arg" type="xs:date?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnYearFromDateScalarEvaluatorFactory"/>
</function>
<!-- fn:year-from-dateTime( $arg as xs:dateTime?) as xs:integer? -->
<function name="fn:year-from-dateTime">
<param name="arg" type="xs:dateTime?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnYearFromDateTimeScalarEvaluatorFactory"/>
</function>
<!-- fn:years-from-duration( $arg as xs:duration?) as xs:integer? -->
<function name="fn:years-from-duration">
<param name="arg" type="xs:duration?"/>
<return type="xs:integer?"/>
+ <runtime type="scalar" class="org.apache.vxquery.runtime.functions.datetime.FnYearsFromDurationScalarEvaluatorFactory"/>
</function>
<!-- fn:zero-or-one($arg as item()*) as item()? -->
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnDayFromDateScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnDayFromDateScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDatePointable datep = (XSDatePointable) XSDatePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_DATE_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(datep);
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(datep.getDay());
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateTimeScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateTimeScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateTimeScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateTimeScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnDayFromDateTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnDayFromDateTimeScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_DATETIME_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(datetimep);
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(datetimep.getDay());
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDayFromDateTimeScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDaysFromDurationScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDaysFromDurationScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDaysFromDurationScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDaysFromDurationScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,68 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+import org.apache.vxquery.datamodel.util.DateTime;
+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 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.LongPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class FnDaysFromDurationScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnDaysFromDurationScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDurationPointable durationp = (XSDurationPointable) XSDurationPointable.FACTORY.createPointable();
+ final LongPointable longp = (LongPointable) LongPointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ long value;
+ if (tvp1.getTag() == ValueTag.XS_DURATION_TAG) {
+ tvp1.getValue(durationp);
+ value = durationp.getDayTime();
+ } else if (tvp1.getTag() == ValueTag.XS_DAY_TIME_DURATION_TAG) {
+ tvp1.getValue(longp);
+ value = longp.getLong();
+ } else if (tvp1.getTag() == ValueTag.XS_YEAR_MONTH_DURATION_TAG) {
+ value = 0;
+ } else {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+
+ value = value / DateTime.CHRONON_OF_DAY;
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(value);
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnDaysFromDurationScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDateTimeScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDateTimeScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDateTimeScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDateTimeScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnHoursFromDateTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnHoursFromDateTimeScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_DATETIME_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(datetimep);
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(datetimep.getHour());
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDateTimeScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDurationScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDurationScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDurationScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDurationScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,68 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+import org.apache.vxquery.datamodel.util.DateTime;
+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 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.LongPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class FnHoursFromDurationScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnHoursFromDurationScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDurationPointable durationp = (XSDurationPointable) XSDurationPointable.FACTORY.createPointable();
+ final LongPointable longp = (LongPointable) LongPointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ long value;
+ if (tvp1.getTag() == ValueTag.XS_DURATION_TAG) {
+ tvp1.getValue(durationp);
+ value = durationp.getDayTime();
+ } else if (tvp1.getTag() == ValueTag.XS_DAY_TIME_DURATION_TAG) {
+ tvp1.getValue(longp);
+ value = longp.getLong();
+ } else if (tvp1.getTag() == ValueTag.XS_YEAR_MONTH_DURATION_TAG) {
+ value = 0;
+ } else {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+
+ value = (value % DateTime.CHRONON_OF_DAY) / DateTime.CHRONON_OF_HOUR;
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(value);
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromDurationScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromTimeScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromTimeScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromTimeScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromTimeScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnHoursFromTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnHoursFromTimeScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSTimePointable timep = (XSTimePointable) XSTimePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_TIME_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(timep);
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(timep.getHour());
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnHoursFromTimeScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDateTimeScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDateTimeScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDateTimeScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDateTimeScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnMinutesFromDateTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnMinutesFromDateTimeScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_DATETIME_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(datetimep);
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(datetimep.getMinute());
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDateTimeScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDurationScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDurationScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDurationScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDurationScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,68 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+import org.apache.vxquery.datamodel.util.DateTime;
+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 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.LongPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class FnMinutesFromDurationScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnMinutesFromDurationScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDurationPointable durationp = (XSDurationPointable) XSDurationPointable.FACTORY.createPointable();
+ final LongPointable longp = (LongPointable) LongPointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ long value;
+ if (tvp1.getTag() == ValueTag.XS_DURATION_TAG) {
+ tvp1.getValue(durationp);
+ value = durationp.getDayTime();
+ } else if (tvp1.getTag() == ValueTag.XS_DAY_TIME_DURATION_TAG) {
+ tvp1.getValue(longp);
+ value = longp.getLong();
+ } else if (tvp1.getTag() == ValueTag.XS_YEAR_MONTH_DURATION_TAG) {
+ value = 0;
+ } else {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+
+ value = ((value % DateTime.CHRONON_OF_DAY) % DateTime.CHRONON_OF_HOUR) / DateTime.CHRONON_OF_MINUTE;
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(value);
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromDurationScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromTimeScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromTimeScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromTimeScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromTimeScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnMinutesFromTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnMinutesFromTimeScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSTimePointable timep = (XSTimePointable) XSTimePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_TIME_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(timep);
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(timep.getMinute());
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMinutesFromTimeScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnMonthFromDateScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnMonthFromDateScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDatePointable datep = (XSDatePointable) XSDatePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_DATE_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(datep);
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(datep.getMonth());
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateTimeScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateTimeScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateTimeScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateTimeScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnMonthFromDateTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnMonthFromDateTimeScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_DATETIME_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(datetimep);
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(datetimep.getMonth());
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthFromDateTimeScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthsFromDurationScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthsFromDurationScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthsFromDurationScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthsFromDurationScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,65 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+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 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.IntegerPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class FnMonthsFromDurationScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnMonthsFromDurationScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDurationPointable durationp = (XSDurationPointable) XSDurationPointable.FACTORY.createPointable();
+ final IntegerPointable intp = (IntegerPointable) IntegerPointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ long value;
+ if (tvp1.getTag() == ValueTag.XS_DURATION_TAG) {
+ tvp1.getValue(durationp);
+ value = durationp.getYearMonth() % 12;
+ } else if (tvp1.getTag() == ValueTag.XS_DAY_TIME_DURATION_TAG) {
+ value = 0;
+ } else if (tvp1.getTag() == ValueTag.XS_YEAR_MONTH_DURATION_TAG) {
+ tvp1.getValue(intp);
+ value = intp.getInteger() % 12;
+ } else {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(value);
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnMonthsFromDurationScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDateTimeScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDateTimeScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDateTimeScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDateTimeScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,70 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnSecondsFromDateTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnSecondsFromDateTimeScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_DATETIME_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(datetimep);
+ long value = datetimep.getMilliSecond();
+ long decimalPlace = 3;
+
+ // Normalize to decimal.
+ if (value % 1000 == 0) {
+ value = value / 1000;
+ decimalPlace = 0;
+ } else if (value % 100 == 0) {
+ value = value / 100;
+ decimalPlace = 1;
+ } else if (value % 10 == 0 ) {
+ value = value / 10;
+ decimalPlace = 2;
+ }
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_DECIMAL_TAG);
+ dOutInner.write((byte) decimalPlace);
+ dOutInner.writeLong(value);
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDateTimeScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDurationScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDurationScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDurationScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDurationScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,82 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDurationPointable;
+import org.apache.vxquery.datamodel.util.DateTime;
+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 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.LongPointable;
+import edu.uci.ics.hyracks.data.std.util.ArrayBackedValueStorage;
+
+public class FnSecondsFromDurationScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnSecondsFromDurationScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDurationPointable durationp = (XSDurationPointable) XSDurationPointable.FACTORY.createPointable();
+ final LongPointable longp = (LongPointable) LongPointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ long value;
+ if (tvp1.getTag() == ValueTag.XS_DURATION_TAG) {
+ tvp1.getValue(durationp);
+ value = durationp.getDayTime();
+ } else if (tvp1.getTag() == ValueTag.XS_DAY_TIME_DURATION_TAG) {
+ tvp1.getValue(longp);
+ value = longp.getLong();
+ } else if (tvp1.getTag() == ValueTag.XS_YEAR_MONTH_DURATION_TAG) {
+ value = 0;
+ } else {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+
+ value = ((value % DateTime.CHRONON_OF_DAY) % DateTime.CHRONON_OF_HOUR) % DateTime.CHRONON_OF_MINUTE;
+ long decimalPlace = 3;
+
+ // Normalize to decimal.
+ if (value % 1000 == 0) {
+ value = value / 1000;
+ decimalPlace = 0;
+ } else if (value % 100 == 0) {
+ value = value / 100;
+ decimalPlace = 1;
+ } else if (value % 10 == 0) {
+ value = value / 10;
+ decimalPlace = 2;
+ }
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_DECIMAL_TAG);
+ dOutInner.write((byte) decimalPlace);
+ dOutInner.writeLong(value);
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromDurationScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromTimeScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromTimeScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromTimeScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromTimeScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,70 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnSecondsFromTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnSecondsFromTimeScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSTimePointable timep = (XSTimePointable) XSTimePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_TIME_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(timep);
+ long value = timep.getMilliSecond();
+ long decimalPlace = 3;
+
+ // Normalize to decimal.
+ if (value % 1000 == 0) {
+ value = value / 1000;
+ decimalPlace = 0;
+ } else if (value % 100 == 0) {
+ value = value / 100;
+ decimalPlace = 1;
+ } else if (value % 10 == 0 ) {
+ value = value / 10;
+ decimalPlace = 2;
+ }
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_DECIMAL_TAG);
+ dOutInner.write((byte) decimalPlace);
+ dOutInner.writeLong(value);
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnSecondsFromTimeScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,58 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+import org.apache.vxquery.datamodel.util.DateTime;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnTimezoneFromDateScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnTimezoneFromDateScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDatePointable datep = (XSDatePointable) XSDatePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_DATE_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(datep);
+
+ long value = datep.getTimezoneHour() * DateTime.CHRONON_OF_HOUR + datep.getTimezoneMinute()
+ * DateTime.CHRONON_OF_MINUTE;
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_DAY_TIME_DURATION_TAG);
+ dOutInner.writeLong(value);
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateTimeScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateTimeScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateTimeScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateTimeScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,58 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDateTimePointable;
+import org.apache.vxquery.datamodel.util.DateTime;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnTimezoneFromDateTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnTimezoneFromDateTimeScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDateTimePointable datetimep = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_DATETIME_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(datetimep);
+
+ long value = datetimep.getTimezoneHour() * DateTime.CHRONON_OF_HOUR + datetimep.getTimezoneMinute()
+ * DateTime.CHRONON_OF_MINUTE;
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_DAY_TIME_DURATION_TAG);
+ dOutInner.writeLong(value);
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromDateTimeScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromTimeScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromTimeScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromTimeScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromTimeScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,58 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSTimePointable;
+import org.apache.vxquery.datamodel.util.DateTime;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnTimezoneFromTimeScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnTimezoneFromTimeScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSTimePointable timep = (XSTimePointable) XSTimePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_TIME_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(timep);
+
+ long value = timep.getTimezoneHour() * DateTime.CHRONON_OF_HOUR + timep.getTimezoneMinute()
+ * DateTime.CHRONON_OF_MINUTE;
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_DAY_TIME_DURATION_TAG);
+ dOutInner.writeLong(value);
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnTimezoneFromTimeScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnYearFromDateScalarEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnYearFromDateScalarEvaluatorFactory.java?rev=1377568&view=auto
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnYearFromDateScalarEvaluatorFactory.java (added)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnYearFromDateScalarEvaluatorFactory.java Mon Aug 27 05:02:14 2012
@@ -0,0 +1,55 @@
+package org.apache.vxquery.runtime.functions.datetime;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
+import org.apache.vxquery.datamodel.accessors.atomic.XSDatePointable;
+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 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.util.ArrayBackedValueStorage;
+
+public class FnYearFromDateScalarEvaluatorFactory extends AbstractTaggedValueArgumentScalarEvaluatorFactory {
+ private static final long serialVersionUID = 1L;
+
+ public FnYearFromDateScalarEvaluatorFactory(IScalarEvaluatorFactory[] args) {
+ super(args);
+ }
+
+ @Override
+ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvaluator[] args)
+ throws AlgebricksException {
+ final XSDatePointable datep = (XSDatePointable) XSDatePointable.FACTORY.createPointable();
+ final ArrayBackedValueStorage abvsInner = new ArrayBackedValueStorage();
+ final DataOutput dOutInner = abvsInner.getDataOutput();
+
+ return new AbstractTaggedValueArgumentScalarEvaluator(args) {
+ @Override
+ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws SystemException {
+ TaggedValuePointable tvp1 = args[0];
+ if (tvp1.getTag() != ValueTag.XS_DATE_TAG) {
+ throw new SystemException(ErrorCode.FORG0006);
+ }
+ tvp1.getValue(datep);
+
+ try {
+ abvsInner.reset();
+ dOutInner.write(ValueTag.XS_INTEGER_TAG);
+ dOutInner.writeLong(datep.getYear());
+ result.set(abvsInner);
+ } catch (IOException e) {
+ throw new SystemException(ErrorCode.SYSE0001, e);
+ }
+ }
+ };
+ }
+}
Propchange: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/datetime/FnYearFromDateScalarEvaluatorFactory.java
------------------------------------------------------------------------------
svn:eol-style = native