MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Satya B Date:September 3 2009 6:04pm
Subject:bzr commit into mysql-5.0-bugteam branch (satya.bn:2805) Bug#33785
View as plain text  
#At file:///home/satya/WORK/33785/mysql-5.0-bugteam-33785/ based on revid:satya.bn@stripped

 2805 Satya B	2009-09-03
      Fix for Bug#33785 - myisamchk show warning message
      
      myisamchk tool generates warnings when run on an myisam files (.MYI or .MYD)
      This is because of the conversion of max_value for certain options in myisamchk 
      from singed long to unsigned long
      
      The max value for the options key_buffer_size, read_buffer_size, write_buffer
      _size and sort_buffer_size is given as (long) ~0L which becomes -1  when casted
      from signed long to longlong and then casted to ulonglong. When (ulonglong) -1 
      is compared with maximal value for GET_ULONG data type, we adjust it to 
      (ulonglong) ULONG_MAX and throw the warning.
      
      Fixed by using the right max size.
      
      Max values for the variables (from mysqld.cc)
      ----------------------------
      1. key_buffer_size
         5.0: ULONG_MAX
         5.1: SIZE_T_MAX
         6.0: SIZE_T_MAX
      
      2. read_buffer_size and write_buffer_size
         5.0: INT_MAX32
         5.1: INT_MAX32
         6.0: INT_MAX32
      
      3. sort_buffer_size (aka myisam_sort_buffer_size)
         5.0: UINT_MAX32
         5.1: ULONG_MAX
         6.0: ULONG_MAX
      
      Note: testcase not attached
     @ myisam/myisamchk.c
        Bug#33785 - myisamchk show warning message
            
        Fixed the Max value for key_buffer_size, read_buffer_size, write_buffer_size and
        sort_buffer_size options

    modified:
      myisam/myisamchk.c
=== modified file 'myisam/myisamchk.c'
--- a/myisam/myisamchk.c	2009-04-08 11:15:43 +0000
+++ b/myisam/myisamchk.c	2009-09-03 18:04:42 +0000
@@ -295,7 +295,7 @@ static struct my_option my_long_options[
   { "key_buffer_size", OPT_KEY_BUFFER_SIZE, "",
     (gptr*) &check_param.use_buffers, (gptr*) &check_param.use_buffers, 0,
     GET_ULONG, REQUIRED_ARG, (long) USE_BUFFER_INIT, (long) MALLOC_OVERHEAD,
-    (long) ~0L, (long) MALLOC_OVERHEAD, (long) IO_SIZE, 0},
+    ULONG_MAX, (long) MALLOC_OVERHEAD, (long) IO_SIZE, 0},
   { "key_cache_block_size", OPT_KEY_CACHE_BLOCK_SIZE,  "",
     (gptr*) &opt_key_cache_block_size,
     (gptr*) &opt_key_cache_block_size, 0,
@@ -309,17 +309,17 @@ static struct my_option my_long_options[
     (gptr*) &check_param.read_buffer_length,
     (gptr*) &check_param.read_buffer_length, 0, GET_ULONG, REQUIRED_ARG,
     (long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD,
-    (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0},
+    INT_MAX32, (long) MALLOC_OVERHEAD, (long) 1L, 0},
   { "write_buffer_size", OPT_WRITE_BUFFER_SIZE, "",
     (gptr*) &check_param.write_buffer_length,
     (gptr*) &check_param.write_buffer_length, 0, GET_ULONG, REQUIRED_ARG,
     (long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD,
-    (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0},
+    INT_MAX32, (long) MALLOC_OVERHEAD, (long) 1L, 0},
   { "sort_buffer_size", OPT_SORT_BUFFER_SIZE, "",
     (gptr*) &check_param.sort_buffer_length,
     (gptr*) &check_param.sort_buffer_length, 0, GET_ULONG, REQUIRED_ARG,
     (long) SORT_BUFFER_INIT, (long) (MIN_SORT_BUFFER + MALLOC_OVERHEAD),
-    (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0},
+    UINT_MAX32, (long) MALLOC_OVERHEAD, (long) 1L, 0},
   { "sort_key_blocks", OPT_SORT_KEY_BLOCKS, "",
     (gptr*) &check_param.sort_key_blocks,
     (gptr*) &check_param.sort_key_blocks, 0, GET_ULONG, REQUIRED_ARG,


Attachment: [text/bzr-bundle] bzr/satya.bn@sun.com-20090903180442-sdmxit4819b28eyv.bundle
Thread
bzr commit into mysql-5.0-bugteam branch (satya.bn:2805) Bug#33785Satya B3 Sep