List:Internals« Previous MessageNext Message »
From:Alex Ivanov Date:October 3 2005 7:18pm
Subject:bk commit into 5.0 tree (aivanov:1.2009)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of alexi. When alexi does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2009 05/10/03 21:17:55 aivanov@stripped +4 -0
  Merge mysql.com:/home/alexi/dev/mysql-4.1-12440
  into  mysql.com:/home/alexi/dev/mysql-5.0-12440-1

  sql-common/my_time.c
    1.19 05/10/03 21:17:44 aivanov@stripped +0 -0
    Auto merged

  mysql-test/r/type_time.result
    1.14 05/10/03 21:17:44 aivanov@stripped +0 -0
    Auto merged

  innobase/os/os0sync.c
    1.26 05/10/03 21:17:44 aivanov@stripped +0 -0
    Auto merged

  BUILD/SETUP.sh
    1.50 05/10/03 21:17:44 aivanov@stripped +0 -0
    Auto merged

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	aivanov
# Host:	mysql.creware.com
# Root:	/home/alexi/dev/mysql-5.0-12440-1/RESYNC

--- 1.18/sql-common/my_time.c	2005-08-11 15:02:47 +04:00
+++ 1.19/sql-common/my_time.c	2005-10-03 21:17:44 +04:00
@@ -575,18 +575,30 @@
   /* Get fractional second part */
   if ((end-str) >= 2 && *str == '.' &&
my_isdigit(&my_charset_latin1,str[1]))
   {
-    uint field_length=5;
+    int field_length= 5;
     str++; value=(uint) (uchar) (*str - '0');
-    while (++str != end && 
-           my_isdigit(&my_charset_latin1,str[0]) && 
-           field_length--)
-      value=value*10 + (uint) (uchar) (*str - '0');
-    if (field_length)
+    while (++str != end && my_isdigit(&my_charset_latin1, *str)) 
+      if (field_length-- > 0)
+        value= value*10 + (uint) (uchar) (*str - '0');
+    if (field_length > 0)
       value*= (long) log_10_int[field_length];
+    else if (field_length < 0)
+      *was_cut= 1;
     date[4]=value;
   }
   else
     date[4]=0;
+    
+  /* Check for exponent part: E<digit> | E<sign><digit> */
+  /* (may occur as result of %g formatting) */
+  if ((end - str) > 1 && (*str == 'E' || *str == 'e') &&
+      (my_isdigit(&my_charset_latin1, str[1]) ||
+       ((str[1] == '+' || str[1] == '-') &&
+        (end - str) > 2 && my_isdigit(&my_charset_latin1, str[2]))))
+  {
+    *was_cut= 1;
+    return 1;
+  }
 
   if (internal_format_positions[7] != 255)
   {

--- 1.25/innobase/os/os0sync.c	2005-06-10 15:18:14 +04:00
+++ 1.26/innobase/os/os0sync.c	2005-10-03 21:17:44 +04:00
@@ -631,7 +631,21 @@
 
 	DeleteCriticalSection((LPCRITICAL_SECTION) fast_mutex);
 #else
-	ut_a(0 == pthread_mutex_destroy(fast_mutex));
+	int	ret;
+	
+	ret = pthread_mutex_destroy(fast_mutex);
+
+	if (ret != 0) {
+		ut_print_timestamp(stderr);
+		fprintf(stderr,
+"  InnoDB: error: return value %lu when calling\n"
+"InnoDB: pthread_mutex_destroy().\n", (ulint)ret);
+		fprintf(stderr,
+"InnoDB: Byte contents of the pthread mutex at %p:\n", fast_mutex);
+		ut_print_buf(stderr, (const byte*)fast_mutex,
+						sizeof(os_fast_mutex_t));
+		fprintf(stderr, "\n");
+	}
 #endif
 	if (os_sync_mutex_inited) {
 		/* When freeing the last mutexes, we have

--- 1.13/mysql-test/r/type_time.result	2004-09-28 21:07:51 +04:00
+++ 1.14/mysql-test/r/type_time.result	2005-10-03 21:17:44 +04:00
@@ -85,3 +85,30 @@
 13:00:00
 09:00:00
 drop table t1;
+SELECT CAST(235959.12345 AS TIME);
+CAST(235959.12345 AS TIME)
+23:59:59.123450
+SELECT CAST(0.23595912345e+6 AS TIME);
+CAST(0.23595912345e+6 AS TIME)
+23:59:59.123450
+SELECT CAST(235959.123456 AS TIME);
+CAST(235959.123456 AS TIME)
+23:59:59.123456
+SELECT CAST(235959123456e-6 AS TIME);
+CAST(235959123456e-6 AS TIME)
+23:59:59.123456
+SELECT CAST(235959.1234567 AS TIME);
+CAST(235959.1234567 AS TIME)
+23:59:59.123456
+Warnings:
+Warning	1292	Truncated incorrect time value: '235959.1234567'
+SELECT CAST(0.2359591234567e6 AS TIME);
+CAST(0.2359591234567e6 AS TIME)
+23:59:59.123456
+Warnings:
+Warning	1292	Truncated incorrect time value: '235959.1234567'
+SELECT CAST(0.235959123e+30 AS TIME);
+CAST(0.235959123e+30 AS TIME)
+NULL
+Warnings:
+Warning	1292	Truncated incorrect time value: '2.35959123e+29'

--- 1.49/BUILD/SETUP.sh	2005-09-30 00:45:29 +04:00
+++ 1.50/BUILD/SETUP.sh	2005-10-03 21:17:44 +04:00
@@ -48,7 +48,7 @@
 # The following warning flag will give too many warnings:
 # -Wshadow -Wunused  -Winline (The later isn't usable in C++ as
 # __attribute()__ doesn't work with gnu C++)
-global_warnings="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W
-Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings"
+global_warnings="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W
-Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -ansi"
 #debug_extra_warnings="-Wuninitialized"
 c_warnings="$global_warnings -Wunused"
 cxx_warnings="$global_warnings -Woverloaded-virtual -Wsign-promo -Wreorder
-Wctor-dtor-privacy -Wnon-virtual-dtor"
Thread
bk commit into 5.0 tree (aivanov:1.2009)Alex Ivanov3 Oct