1. 18 May, 2009 1 commit
    • Gleb Shchepa's avatar
      Bug #44768: SIGFPE crash when selecting rand from a view containing null · 405bd2af
      Gleb Shchepa authored
      The RAND(N) function where the N is a field of "constant" table
      (table of single row) failed with a SIGFPE.
      
      Evaluation of RAND(N) rely on constant status of its argument.
      Current server "seeded" random value for each constant argument
      only once, in the Item_func_rand::fix_fields method.
      Then the server skipped a call to seed_random() in the
      Item_func_rand::val_real method for such constant arguments.
      
      However, non-constant state of an argument may be changed
      after the call to fix_fields, if an argument is a field of
      "constant" table. Thus, pre-initialization of random value
      in the fix_fields method is too early.
      
      
      Initialization of random value by seed_random() has been
      removed from Item_func_rand::fix_fields method.
      The Item_func_rand::val_real method has been modified to
      call seed_random() on the first evaluation of this method
      if an argument is a function.
      
      
      mysql-test/r/func_math.result:
        Added test case for bug #44768.
      mysql-test/t/func_math.test:
        Added test case for bug #44768.
      sql/item_func.cc:
        Bug #44768: SIGFPE crash when selecting rand from a view containing null
        
        1. Initialization of random value by seed_random() has been
           removed from Item_func_rand::fix_fields method.
        2. The Item_func_rand::val_real method has been modified to
           call seed_random() on the first evaluation of this method
           if an argument is a function.
      sql/item_func.h:
        Bug #44768: SIGFPE crash when selecting rand from a view containing null
        
        1. The Item_func_rand::first_eval has been added to trace
           the first evaluation of the val_real method.
        2. The Item_func_rand::cleanup method has been added to
           cleanup the first_eval flag.
      405bd2af
  2. 17 May, 2009 3 commits
    • Kristofer Pettersson's avatar
      Bug#19027 MySQL 5.0 starts even with Fatal InnoDB errors · baeac876
      Kristofer Pettersson authored
      Fix bug in mtr_cases.pm script visible only when InnoDB isn't configured.
      
      mysql-test/lib/mtr_cases.pm:
        If InnoDB isn't configured the help texts won't show the "innodb" option and mysqld_variables will not contain any "innodb" entry.
      baeac876
    • Narayanan V's avatar
      Bug#44856 IBMDB2I gives misleading 2504 error · 02b90ed9
      Narayanan V authored
      Occasionally, if both the partition_pruning
      and partition_range tests are run sequentially
      against the IBMDB2I engine, the partition_range
      test will fail.
      
      Compiler padding on a 64-bit build allowed
      garbage data in the hash key used for
      caching open iconv descriptors. As a
      result, cached descriptors were not found,
      and multiple duplicate iconv descriptors
      were opened for a single character set.
      Eventually, the maximum number of open
      iconv descriptors was reached, and further
      iconv_open() calls would fail, leading the
      storage engine to report incorrectly that
      the character set was not supported.
      
      This patch widens the 16-bit members of the
      hash key to 32 bits to eliminate compiler
      padding. The entire length of the hash key
      is now initialized correctly on both 32-bit
      and 64-bit builds.
      
      storage/ibmdb2i/db2i_charsetSupport.cc:
        Bug#44856 IBMDB2I gives misleading 2504 error
        
        widen the 16-bit members of the
        hash key to 32 bits to eliminate
        compiler padding.
      02b90ed9
    • Narayanan V's avatar
      Bug#44610 RCDFMT clause requested when creating DB2 table · a8df3d3c
      Narayanan V authored
      In order to better support the usage of
      IBMDB2I tables from within RPG programs,
      the storage engine should ensure that the
      RCDFMT name is consistent and predictable
      for DB2 tables.
      
      This patch appends a "RCDFMT <name>"
      clause to the CREATE TABLE statement
      that is passed to DB2.  <name> is
      generated from the original name of
      the table itself. This ensures a
      consistent and deterministic mapping
      from the original table.
      
      For the sake of simplicity only
      the alpha-numeric characters are
      preserved when generating the new
      name, and these are upper-cased;
      other characters are replaced with
      an underscore (_). Following DB2
      system identifier rules, the name
      always begins with an alpha-character
      and has a maximum of ten characters.
      If no usable characters are found in
      the table name, the name X is used.
      
      mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44610.result:
        Bug#44610 RCDFMT clause requested when creating DB2 table
        
        Result file for the test case.
      mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44610.test:
        Bug#44610 RCDFMT clause requested when creating DB2 table
        
        Test case that confirms that the names that are being generated are valid.
      storage/ibmdb2i/ha_ibmdb2i.cc:
        Bug#44610 RCDFMT clause requested when creating DB2 table
        
        This patch appends a "RCDFMT <name>"
        clause to the CREATE TABLE statement
        that is passed to DB2.  <name> is
        generated from the original name of
        the table itself. This ensures a
        consistent and deterministic mapping
        from the original table.
      storage/ibmdb2i/ha_ibmdb2i.h:
        Bug#44610 RCDFMT clause requested when creating DB2 table
        
        This patch appends a "RCDFMT <name>"
        clause to the CREATE TABLE statement
        that is passed to DB2.  <name> is
        generated from the original name of
        the table itself. This ensures a
        consistent and deterministic mapping
        from the original table.
      a8df3d3c
  3. 15 May, 2009 24 commits
  4. 14 May, 2009 9 commits
    • Philip Stoev's avatar
      null merge. fix not applicable to 5.1 · 5f3dc895
      Philip Stoev authored
      5f3dc895
    • Philip Stoev's avatar
      Bugs #44871 and #43894: · ccc0ffb4
      Philip Stoev authored
        UNIX sockets need to be on a path shorter than 70 characters on some older platofrms.
        MTRv1 tries to fix this by moving the socket to the $TMPDIR, however this causes
        issues with certain tests on Windows.
      
        Fixed by not applying any hacks on Windows - Windows does not need them.
      ccc0ffb4
    • Kristofer Pettersson's avatar
      Bug#19027 MySQL 5.0 starts even with Fatal InnoDB errors · afee6322
      Kristofer Pettersson authored
      It is not possible to prevent the server from starting if a mandatory
      built-in plugin fails to start. This can in some cases lead to data
      corruption when the old table name space suddenly is used by a different
      storage engine.
      
      A boolean command line option in the form of --foobar is automatically
      created for every existing plugin "foobar". By changing this command line
      option from a boolean to a tristate { OFF, ON, FORCE } it is possible to
      specify the plugin loading policy for each plugin.
      
      The behavior is specified as follows:
         OFF   = Disable the plugin and start the server
         ON    = Enable the plugin and start the server even if an error occurrs
                 during plugin initialization.
         FORCE = Enable the plugin but don't start the server if an error occurrs
                 during plugin initialization.
      
      
      mysql-test/lib/mtr_cases.pm:
        * Changed --<pluginname> from a boolean to a tristate.
      mysys/my_getopt.c:
        * Changed --<pluginname> from boolean to tristate. Optional arguments
          must still work for tristates. It is praxis that disable means value 0
          and enable is value 1. Since plugin name is the only tristate with
          optional arguments this principle will still hold.
      sql/sql_plugin.cc:
        * Changed --<pluginname> option from a boolean type to a tristate.
          - FORCE will now terminate the server if the plugin fails to
            initialize properly.
        * Refactored prototypes for test_plugin_options() and construct_options()
          to get rid of the 'enable' value pointer.
        * Cleaned up code related to option name constructing.
        * Added documentation
      sql/sql_plugin.h:
        * Introduced new member to st_plugin_int structure.
      afee6322
    • Luis Soares's avatar
      e8e8f2fa
    • Philip Stoev's avatar
      Bugs #44871 and #43894: · e67233ff
      Philip Stoev authored
      UNIX sockets need to be on a path shorter than 70 characters on some older platofrms.
      MTRv1 tries to fix this by moving the socket to the $TMPDIR, however this causes
      issues with certain tests on Windows.
      
      Fixed by not applying any hacks on Windows - Windows does not need them.
      e67233ff
    • Narayanan V's avatar
      merging with mysql-5.1-bugteam · 872ec20e
      Narayanan V authored
      872ec20e
    • Jonathan Perkin's avatar
      09cf42a2
    • Narayanan V's avatar
      Bug#44232 Error msg should be improved when collation not supported. · 78283436
      Narayanan V authored
      checking in a test case that will reproduce
      the error on v5r4.
      
      mysql-test/suite/ibmdb2i/include/have_i54.inc:
        Bug#44232 Error msg should be improved when collation not supported.
      mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44232.result:
        Bug#44232 Error msg should be improved when collation not supported.
      mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44232.test:
        Bug#44232 Error msg should be improved when collation not supported.
      78283436
    • Anurag Shekhar's avatar
      merging with fix for compiler warnings. · 9320c933
      Anurag Shekhar authored
      9320c933
  5. 13 May, 2009 3 commits