1. 27 Mar, 2009 2 commits
    • Alexey Kopytov's avatar
      Manual merge. · 1b938438
      Alexey Kopytov authored
      1b938438
    • Alexey Kopytov's avatar
      Fix for bug #43432: Union on floats does unnecessary rounding · 0b60184b
      Alexey Kopytov authored
        
      UNION could convert fixed-point FLOAT(M,D)/DOUBLE(M,D) columns  
      to FLOAT/DOUBLE when aggregating data types from the SELECT  
      substatements. While there is nothing particularly wrong with  
      this behavior, especially when M is greater than the hardware  
      precision limits, it could be confusing in cases when all  
      SELECT statements in a union have the same  
      FLOAT(M,D)/DOUBLE(M,D) columns with equal precision  
      specifications listed in the same position.  
        
      Since the manual is quite vague on what data type should be  
      returned in such cases, the bug was fixed by implementing the  
      most 'expected' behavior: do not convert FLOAT(M,D)/DOUBLE(M,D)  
      to anything else if all SELECT statements in a UNION have the  
      same precision for that column.  
      
      mysql-test/r/union.result:
        Added a test case for bug #43432.
      mysql-test/t/union.test:
        Added a test case for bug #43432.
      sql/field.cc:
        Replaced FLT_DIG+6 and DBL_DIG+7 with a symbolic constant.
      sql/item.cc:
        Do not convert FLOAT(M,D)/DOUBLE(M,D) 
        to anything else if all SELECT statements in a UNION have the 
        same precision for that column.
      sql/mysql_priv.h:
        Added a symbolic constant for FLT_DIG+6 and DBL_DIG+7.
      0b60184b
  2. 16 Mar, 2009 2 commits
    • Alexey Kopytov's avatar
      Manual merge of patch for bug #40552 into the team tree. · 15baa13f
      Alexey Kopytov authored
      Replaced a call to load_defaults() in sql_plugin.cc with 
      its thread-safe version.
      15baa13f
    • Ramil Kalimullin's avatar
      Fix for bug #42957: no results from · 0fd7a359
      Ramil Kalimullin authored
      select where .. (col=col and col=col) or ... (false expression)
      
      Problem: optimizer didn't take into account a singular case 
      when we eliminated all the predicates at the AND level of WHERE.
      That may lead to wrong results.
      
      Fix: replace (a=a AND a=a...) with TRUE if we eliminated all the
      predicates.
      
      
      mysql-test/r/select.result:
        Fix for bug #42957: no results from 
        select where .. (col=col and col=col) or ... (false expression)
          - test result.
      mysql-test/t/select.test:
        Fix for bug #42957: no results from 
        select where .. (col=col and col=col) or ... (false expression)
          - test case.
      sql/sql_select.cc:
        Fix for bug #42957: no results from 
        select where .. (col=col and col=col) or ... (false expression)
          - replacing equality predicates by multiple equality items check
        if we eliminate all the predicates at the AND level and 
        replace them with TRUE if so.
      0fd7a359
  3. 13 Mar, 2009 8 commits
    • Andrei Elkin's avatar
      merge from 5.1-bt to a local branch · b105e8f5
      Andrei Elkin authored
      b105e8f5
    • Andrei Elkin's avatar
      merge from 5.1-bt to a local branch · e2177e81
      Andrei Elkin authored
      e2177e81
    • Georgi Kodinov's avatar
      Bug #43614: make distcheck failure (ndb/Makefile is made, but not subdirs of ndb) · 60beb4c3
      Georgi Kodinov authored
            
      There are some recursive targets that automake generates which reference
      DIST_SUBDIRS.  It's critical, then, for such subdirs to exist even if they
      won't be built as part of SUBDIRS.
      
      During a VPATH build, it is the configure script which creates the subdirs
      (when it processes the AC_CONFIG_FILES() for each subdir's Makefile).  If
      autoconf doesn't create a subdir's Makefile, then the recursive make will fail
      when it is unable to cd into that subdir.
      
      This isn't a problem in non-VPATH builds, because the subdirs are all present
      in the source tarball.  So the problem only shows up during 'make distcheck',
      which does a VPATH build.
      
      The fix is to look, when configure is being created by autoconf, for any
      plugin subdirectories.  These are the dynamic subdirectories which need to be
      handled specially.  It's enough to tell autoconf to generate a Makefile for
      any Makefile.am found in the plugin directory - all plugin subdirectories
      using automake (i.e., listed in the plugin's DIST_SUBDIRS) will have a
      Makefile.am.
      
      This is done by calling 'find'.  This means that 'find' must be in the PATH on
      the host that is running autoconf.  'find' is NOT needed when calling
      configure, so it is not an additional dependency for the user.
      
      Finally, ha_ndbcluster.m4 had called AC_CONFIG_FILES() on all those subdir
      Makefiles, but only when the plugin was actually being built.  So it didn't
      work in the case that NDB was not being built.  All of those Makefiles have to
      be removed from this static list, since the plugin machinery is now adding
      them automatically.  autoconf fails if a file is duplicated in
      AC_CONFIG_FILES().
      60beb4c3
    • Sergey Glukhov's avatar
      compilation(embedded server) failure fix · 7b2d7bea
      Sergey Glukhov authored
      7b2d7bea
    • Sergey Glukhov's avatar
      automerge · 43f129eb
      Sergey Glukhov authored
      43f129eb
    • Georgi Kodinov's avatar
      7ac3f3f1
    • Georgi Kodinov's avatar
      merged 5.0-bugteam · 26d33720
      Georgi Kodinov authored
      26d33720
    • Sergey Glukhov's avatar
      Bug#42610 Dynamic plugin broken in 5.1.31 · a5dc03fb
      Sergey Glukhov authored
      --added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage
      --option 'ignore-builtin-innodb' disables all InnoDB builtin plugins
        (including I_S plugins)
      
      
      sql/mysql_priv.h:
        --added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage
      sql/mysqld.cc:
        --added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage
      sql/sql_plugin.cc:
        --added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage
        --option 'ignore-builtin-innodb' disables all InnoDB builtin plugins
          (including I_S plugins)
      a5dc03fb
  4. 12 Mar, 2009 10 commits
    • Tatiana A. Nurnberg's avatar
      automerge · 7ca1ebd8
      Tatiana A. Nurnberg authored
      7ca1ebd8
    • Chad MILLER's avatar
      Merge bug fix and upstream. · 510e9ddf
      Chad MILLER authored
      510e9ddf
    • Tatiana A. Nurnberg's avatar
      83702423
    • Chad MILLER's avatar
      Merge fix and upstream. · 955fb852
      Chad MILLER authored
      955fb852
    • Chad MILLER's avatar
      Merge fix for bug 42635, which is no change for 5.1 except addition of · 5139538c
      Chad MILLER authored
      test and (slightly different than 5.0) results.
      5139538c
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.1-ss4350, part 5. Fixes · 8cbd34f0
      Timothy Smith authored
      Bug #43203  	Overflow from auto incrementing causes server segv
      
      Detailed revision comments:
      
      r4325 | sunny | 2009-03-02 02:28:52 +0200 (Mon, 02 Mar 2009) | 10 lines
      branches/5.1: Bug#43203: Overflow from auto incrementing causes server segv
      It was not a SIGSEGV but an assertion failure. The assertion was checking
      the invariant that *first_value passed in by MySQL doesn't contain a value
      that is greater than the max value for that type. The assertion has been
      changed to a check and if the value is greater than the max we report a
      generic AUTOINC failure.
      
      rb://93
      Approved by Heikki
      8cbd34f0
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.1-ss4350, part 4. Fixes · 08ee9470
      Timothy Smith authored
      Bug #42714  	AUTO_INCREMENT errors in 5.1.31
      
      Detailed revision comments:
      
      r4287 | sunny | 2009-02-25 05:32:01 +0200 (Wed, 25 Feb 2009) | 10 lines
      branches/5.1: Fix Bug#42714 AUTO_INCREMENT errors in 5.1.31. There are two
      changes to the autoinc handling.
      
      1. To fix the immediate problem from the bug report, we must ensure that the
         value written to the table is always less than the max value stored in
         dict_table_t.
      
      2. The second related change is that according to MySQL documentation when
         the offset is greater than the increment, we should ignore the offset.
      08ee9470
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.1-ss4350, part 3. No functional changes. · 7ae516e1
      Timothy Smith authored
      Detailed revision comments:
      
      r4165 | calvin | 2009-02-12 01:34:27 +0200 (Thu, 12 Feb 2009) | 1 line
      branches/5.1: minor non-functional changes.
      7ae516e1
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.1-ss4350, part 2. Fixes · a33a51e2
      Timothy Smith authored
      Bug #42400  	InnoDB autoinc code can't handle floating-point columns
      
      Detailed revision comments:
      
      r4065 | sunny | 2009-01-29 16:01:36 +0200 (Thu, 29 Jan 2009) | 8 lines
      branches/5.1: In the last round of AUTOINC cleanup we assumed that AUTOINC
      is only defined for integer columns. This caused an assertion failure when
      we checked for the maximum value of a column type. We now calculate the
      max value for floating-point autoinc columns too.
      
      Fix Bug#42400 - InnoDB autoinc code can't handle floating-point columns
      rb://84 and Mantis issue://162
      
      r4111 | sunny | 2009-02-03 22:06:52 +0200 (Tue, 03 Feb 2009) | 2 lines
      branches/5.1: Add the ULL suffix otherwise there is an overflow.
      a33a51e2
    • Timothy Smith's avatar
      Applying InnoDB snashot 5.1-ss4350, part 1. Fixes · 50851796
      Timothy Smith authored
      Bug #42279  	Race condition in btr_search_drop_page_hash_when_freed()
      
      Detailed revision comments:
      
      r4032 | marko | 2009-01-23 15:43:51 +0200 (Fri, 23 Jan 2009) | 10 lines
      branches/5.1: Merge r4031 from branches/5.0:
      
      btr_search_drop_page_hash_when_freed(): Check if buf_page_get_gen()
      returns NULL.  The page may have been evicted from the buffer pool
      between buf_page_peek_if_search_hashed() and buf_page_get_gen(),
      because the buffer pool mutex will be released between these two calls.
      (Bug #42279)
      
      rb://82 approved by Heikki Tuuri
      50851796
  5. 11 Mar, 2009 15 commits
    • Tatiana A. Nurnberg's avatar
      Bug#40657: assertion with out of range variables and traditional sql_mode · 59fbffa4
      Tatiana A. Nurnberg authored
      normalize error-messages
      
      mysql-test/r/variables.result:
        show that warning uses underscore
        (sysvar-name), not hyphens (option-name)
      mysql-test/t/variables.test:
        show that warning uses underscore
        (sysvar-name), not hyphens (option-name)
      sql/set_var.cc:
        normalize error-messages
      59fbffa4
    • Timothy Smith's avatar
      Auto-merge from upstream · 9a8a84d9
      Timothy Smith authored
      9a8a84d9
    • Timothy Smith's avatar
      Up-merge from 5.0 · 676c9824
      Timothy Smith authored
      676c9824
    • Timothy Smith's avatar
      Bug #32625: Make test type_bit_innodb more robust · 81e4e1e7
      Timothy Smith authored
      Since there is more than one duplicate value in the table, when adding the
      unique index it is not deterministic which value will be reported as causing a
      problem.  Replace the reported value with '' so that it doesn't affect the
      results.
      81e4e1e7
    • Timothy Smith's avatar
    • Davi Arnaut's avatar
      Bug#36540: CREATE EVENT and ALTER EVENT statements fail with large server_id · 402bc523
      Davi Arnaut authored
      The problem is that creating a event could fail if the value of
      the variable server_id didn't fit in the originator column of
      the event system table. The cause is two-fold: it was possible
      to set server_id to a value outside the documented range (from
      0 to 2^32-1) and the originator column of the event table didn't
      have enough room for values in this range.
      
      The log tables (general_log and slow_log) also don't have a proper
      column type to store the server_id and having a large server_id
      value could prevent queries from being logged.
      
      The solution is to ensure that all system tables that store the
      server_id value have a proper column type (int unsigned) and that
      the variable can't be set to a value that is not within the range.
      
      mysql-test/r/events_bugs.result:
        Add test case result for Bug#36540
      mysql-test/r/log_tables.result:
        Update column type.
      mysql-test/r/system_mysql_db.result:
        Update column type.
      mysql-test/r/variables.result:
        Add test case result for server_id value range.
      mysql-test/suite/sys_vars/r/server_id_basic_64.result:
        Update test case results.
      mysql-test/t/events_bugs.test:
        Add test case for Bug#36540
      mysql-test/t/log_tables.test:
        Fix column type.
      mysql-test/t/variables.test:
        Add test case for server_id value range.
      scripts/mysql_system_tables.sql:
        Columns that store the server_id value must be of type INT UNSIGNED,
        fix event (originator), general_log and slow_log (server_id) tables
        in accordance.
      scripts/mysql_system_tables_fix.sql:
        Columns that store the server_id value must be of type INT UNSIGNED,
        fix event (originator), general_log and slow_log (server_id) tables
        in accordance.
      sql/mysqld.cc:
        Set min and max values for the server_id variable.
        Unfortunately we can't easily change server_id variable type
        from ulong to uint32 because of the sys_var classes.
      402bc523
    • Georgi Kodinov's avatar
      merge of bug 42434 to 5.1-bugteam · f79cb0de
      Georgi Kodinov authored
      f79cb0de
    • Georgi Kodinov's avatar
      Revert the push for bug #39858 · a43992d7
      Georgi Kodinov authored
      a43992d7
    • Georgi Kodinov's avatar
      merged 5.0-bugteam->5.1-bugteam · 50936c99
      Georgi Kodinov authored
      50936c99
    • Georgi Kodinov's avatar
      merged 5.1-main -> 5.1-bugteam · fb36c977
      Georgi Kodinov authored
      fb36c977
    • Georgi Kodinov's avatar
      merged 5.0-main -> 5.0-bugteam · 6a99d1d4
      Georgi Kodinov authored
      6a99d1d4
    • Georgi Kodinov's avatar
      merged bug 43354 to 5.1-bugteam · ba1b5eb4
      Georgi Kodinov authored
      ba1b5eb4
    • Georgi Kodinov's avatar
      Bug #43354: Use key hint can crash server in explain extended query · d3d6f4fd
      Georgi Kodinov authored
            
      The copy of the original arguments of a aggregate function was not
      initialized until after fix_fields().
      Sometimes (e.g. when there's an error processing the statement)
      the print() can be called with no corresponding fix_fields() call.
            
      Fixed by adding a check if the Item is fixed before using the arguments
      copy.
      
      mysql-test/r/explain.result:
        Bug #43354: test case
      mysql-test/t/explain.test:
        Bug #43354: test case
      sql/item_sum.cc:
        Bug #43354: use the argument list copy only if it's initialized
      d3d6f4fd
    • Leonard Zhou's avatar
      Merge · 16d7c26b
      Leonard Zhou authored
      16d7c26b
    • Leonard Zhou's avatar
      BUG#39858 rpl.rpl_rotate (rpl.rpl_rotate_logs) failed on pushbuild: result mismatch · 3c5c8787
      Leonard Zhou authored
      The method to purge binary log files produces different results in some platforms.
      The reason is that the purge time is calculated based on table modified time and
      that can't guarantee to purge master-bin.000002 in all platforms.(eg. windows)
      
      Use a new way that sets the time to purge binlog file 1 second after the last modified time of master-bin.000002.
      That can be sure that the file is always deleted in any platform.
      
      mysql-test/suite/rpl/r/rpl_rotate_logs.result:
        Test result
      mysql-test/suite/rpl/t/rpl_rotate_logs.test:
        Change 'purge time' 1 sencond after the last modified time of master-bin.000002.
      3c5c8787
  6. 10 Mar, 2009 3 commits