List:Commits« Previous MessageNext Message »
From:Tatiana A. Nurnberg Date:February 6 2009 5:25pm
Subject:bzr commit into mysql-5.0-bugteam branch (azundris:2736) Bug#42525
View as plain text  
#At file:///misc/mysql/forest/42525/50-42525/ based on revid:azundris@stripped

 2736 Tatiana A. Nurnberg	2009-02-06
      Bug#42525: TIMEDIFF function
      
      In 37553 we declared longlong results for
      class Item_str_timefunc as per comments/docs,
      but didn't add a method for that. And the
      default just wasn't good enough for some
      cases.
      
      Changeset adds dedicated val_int() to class.
modified:
  mysql-test/r/func_sapdb.result
  mysql-test/t/func_sapdb.test
  sql/item_timefunc.h

per-file messages:
  mysql-test/r/func_sapdb.result
    More tests for casts of TIME() / TIMEDIFF() with negative results.
  mysql-test/t/func_sapdb.test
    More tests for casts of TIME() / TIMEDIFF() with negative results.
  sql/item_timefunc.h
    Since we claim to provide longlong results, we should have
    a suitable function to provide them (the default won't do).
    This one matches the val_real() variant.
=== modified file 'mysql-test/r/func_sapdb.result'
--- a/mysql-test/r/func_sapdb.result	2008-11-26 08:28:17 +0000
+++ b/mysql-test/r/func_sapdb.result	2009-02-06 17:25:08 +0000
@@ -268,3 +268,17 @@ timediff('2008-09-29 20:10:10','2008-09-
 SELECT CAST(time('-73:42:12') AS DECIMAL);
 CAST(time('-73:42:12') AS DECIMAL)
 -734212
+SELECT TIMEDIFF(TIME('17:00:00'),TIME('17:00:00'))=TIME('00:00:00') AS 1Eq,
+TIMEDIFF(TIME('17:59:00'),TIME('17:00:00'))=TIME('00:00:00') AS 1NEq1,
+TIMEDIFF(TIME('18:00:00'),TIME('17:00:00'))=TIME('00:00:00') AS 1NEq2,
+TIMEDIFF(TIME('17:00:00'),TIME('17:00:00'))=     '00:00:00'  AS 2Eq,
+TIMEDIFF(TIME('17:59:00'),TIME('17:00:00'))=     '00:00:00'  AS 2NEq1,
+TIMEDIFF(TIME('18:00:00'),TIME('17:00:00'))=     '00:00:00'  AS 2NEq2,
+TIMEDIFF(TIME('17:00:00'),TIME('17:00:00'))=TIME(0)          AS 3Eq,
+TIMEDIFF(TIME('17:59:00'),TIME('17:00:00'))=TIME(0)          AS 3NEq1,
+TIMEDIFF(TIME('18:00:00'),TIME('17:00:00'))=TIME(0)          AS 3NEq2,
+TIME(0) AS Time0, TIME('00:00:00') AS Time00, '00:00:00' AS Literal0000,
+TIMEDIFF(TIME('17:59:00'),TIME('17:00:00')),
+TIMEDIFF(TIME('17:00:00'),TIME('17:59:00'));
+1Eq	1NEq1	1NEq2	2Eq	2NEq1	2NEq2	3Eq	3NEq1	3NEq2	Time0	Time00	Literal0000	TIMEDIFF(TIME('17:59:00'),TIME('17:00:00'))	TIMEDIFF(TIME('17:00:00'),TIME('17:59:00'))
+1	0	0	1	0	0	1	0	0	00:00:00	00:00:00	00:00:00	00:59:00	-00:59:00

=== modified file 'mysql-test/t/func_sapdb.test'
--- a/mysql-test/t/func_sapdb.test	2008-11-26 08:28:17 +0000
+++ b/mysql-test/t/func_sapdb.test	2009-02-06 17:25:08 +0000
@@ -151,4 +151,22 @@ select timediff('2008-09-29 20:10:10','2
 SELECT CAST(time('-73:42:12') AS DECIMAL);
 
 
+
+#
+# Bug#42525 - TIMEDIFF function
+#
+
+SELECT TIMEDIFF(TIME('17:00:00'),TIME('17:00:00'))=TIME('00:00:00') AS 1Eq,
+       TIMEDIFF(TIME('17:59:00'),TIME('17:00:00'))=TIME('00:00:00') AS 1NEq1,
+       TIMEDIFF(TIME('18:00:00'),TIME('17:00:00'))=TIME('00:00:00') AS 1NEq2,
+       TIMEDIFF(TIME('17:00:00'),TIME('17:00:00'))=     '00:00:00'  AS 2Eq,
+       TIMEDIFF(TIME('17:59:00'),TIME('17:00:00'))=     '00:00:00'  AS 2NEq1,
+       TIMEDIFF(TIME('18:00:00'),TIME('17:00:00'))=     '00:00:00'  AS 2NEq2,
+       TIMEDIFF(TIME('17:00:00'),TIME('17:00:00'))=TIME(0)          AS 3Eq,
+       TIMEDIFF(TIME('17:59:00'),TIME('17:00:00'))=TIME(0)          AS 3NEq1,
+       TIMEDIFF(TIME('18:00:00'),TIME('17:00:00'))=TIME(0)          AS 3NEq2,
+       TIME(0) AS Time0, TIME('00:00:00') AS Time00, '00:00:00' AS Literal0000,
+       TIMEDIFF(TIME('17:59:00'),TIME('17:00:00')),
+       TIMEDIFF(TIME('17:00:00'),TIME('17:59:00'));
+
 # End of 5.0 tests

=== modified file 'sql/item_timefunc.h'
--- a/sql/item_timefunc.h	2008-12-23 14:08:04 +0000
+++ b/sql/item_timefunc.h	2009-02-06 17:25:08 +0000
@@ -398,6 +398,7 @@ public:
   {
     return save_time_in_field(field);
   }
+  longlong val_int() { return val_int_from_decimal(); }
   bool result_as_longlong() { return TRUE; }
 };
 

Thread
bzr commit into mysql-5.0-bugteam branch (azundris:2736) Bug#42525Tatiana A. Nurnberg6 Feb