Till Westmann has proposed merging lp:~zorba-coders/zorba/bug1158975 into 
lp:zorba.

Requested reviews:
  Cezar Andrei (cezar-andrei)
Related bugs:
  Bug #1158975 in Zorba: "errors casting to xs:dateTimeStamp"
  https://bugs.launchpad.net/zorba/+bug/1158975

For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/bug1158975/+merge/155600
-- 
https://code.launchpad.net/~zorba-coders/zorba/bug1158975/+merge/155600
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'src/runtime/durations_dates_times/DurationsDatesTimesImpl.cpp'
--- src/runtime/durations_dates_times/DurationsDatesTimesImpl.cpp	2013-03-03 15:33:57 +0000
+++ src/runtime/durations_dates_times/DurationsDatesTimesImpl.cpp	2013-03-26 20:27:21 +0000
@@ -180,6 +180,10 @@
     {
       STACK_PUSH(GENV_ITEMFACTORY->createTime(result, dt.get()), state);
     }
+    else if (item0->getTypeCode() == store::XS_DATETIME_STAMP)
+    {
+      STACK_PUSH(GENV_ITEMFACTORY->createDateTimeStamp(result, dt.get()), state);
+    }
     else
     {
       ZORBA_ASSERT(false);

=== modified file 'src/store/naive/simple_item_factory.cpp'
--- src/store/naive/simple_item_factory.cpp	2013-03-17 04:02:46 +0000
+++ src/store/naive/simple_item_factory.cpp	2013-03-26 20:27:21 +0000
@@ -584,7 +584,7 @@
 {
   if( value->hasTimezone() )
   {
-    result = new DateTimeItem(store::XS_DATETIME, value);
+    result = new DateTimeItem(store::XS_DATETIME_STAMP, value);
     return true;
   }
   else

=== modified file 'src/types/casting.cpp'
--- src/types/casting.cpp	2013-03-17 04:02:46 +0000
+++ src/types/casting.cpp	2013-03-26 20:27:21 +0000
@@ -1216,9 +1216,14 @@
 
 T1_TO_T2(dT, dTSt)
 {
-  DateTime dt;
-  dt = aItem->getDateTimeValue(); //.createWithNewFacet(DateTime::DATETIME_FACET, dt);
-  aFactory->createDateTimeStamp(result, &dt);
+  xs_dateTime dt = aItem->getDateTimeValue(); //.createWithNewFacet(DateTime::DATETIME_FACET, dt);
+  if (dt.hasTimezone() )
+  {
+    aFactory->createDateTimeStamp(result, &dt);
+    return;
+  }
+
+  throwFORG0001Exception(strval, errInfo);
 }
   
   

=== added directory 'test/rbkt/ExpQueryResults/zorba/durationdatetime/DateTimeStamp'
=== added file 'test/rbkt/ExpQueryResults/zorba/durationdatetime/DateTimeStamp/adjust_dateTimeStamp_to_timezone.xml.res'
--- test/rbkt/ExpQueryResults/zorba/durationdatetime/DateTimeStamp/adjust_dateTimeStamp_to_timezone.xml.res	1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/durationdatetime/DateTimeStamp/adjust_dateTimeStamp_to_timezone.xml.res	2013-03-26 20:27:21 +0000
@@ -0,0 +1,1 @@
+2013-01-13T14:01:53+02:00

=== added file 'test/rbkt/ExpQueryResults/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp1.xml.res'
--- test/rbkt/ExpQueryResults/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp1.xml.res	1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp1.xml.res	2013-03-26 20:27:21 +0000
@@ -0,0 +1,1 @@
+true

=== added file 'test/rbkt/ExpQueryResults/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp2.xml.res'
=== added directory 'test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp'
=== added file 'test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/adjust_dateTimeStamp_to_timezone.xq'
--- test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/adjust_dateTimeStamp_to_timezone.xq	1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/adjust_dateTimeStamp_to_timezone.xq	2013-03-26 20:27:21 +0000
@@ -0,0 +1,4 @@
+let $dts := xs:dateTimeStamp("2013-01-13T12:01:53Z"),
+    $tz  := xs:dayTimeDuration("PT2H")
+return
+  fn:adjust-dateTime-to-timezone($dts, $tz)

=== added file 'test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp1.xq'
--- test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp1.xq	1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp1.xq	2013-03-26 20:27:21 +0000
@@ -0,0 +1,4 @@
+let $dt := xs:dateTime("2013-01-13T12:01:53+01:00")
+let $dts := $dt cast as xs:dateTimeStamp
+return
+  $dts instance of xs:dateTimeStamp

=== added file 'test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp2.spec'
--- test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp2.spec	1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp2.spec	2013-03-26 20:27:21 +0000
@@ -0,0 +1,1 @@
+Error: http://www.w3.org/2005/xqt-errors:FORG0001

=== added file 'test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp2.xq'
--- test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp2.xq	1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/durationdatetime/DateTimeStamp/cast_as_dateTimeStamp2.xq	2013-03-26 20:27:21 +0000
@@ -0,0 +1,1 @@
+xs:dateTime("2013-01-13T12:01:53") cast as xs:dateTimeStamp

-- 
Mailing list: https://launchpad.net/~zorba-coders
Post to     : zorba-coders@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zorba-coders
More help   : https://help.launchpad.net/ListHelp

Reply via email to