1. 07 Jul, 2008 3 commits
    • Marc Alff's avatar
      Manual merge of bug#26030 in mysql-5.1-bugteam · 8aaccbfc
      Marc Alff authored
      8aaccbfc
    • Marc Alff's avatar
      Bug#26030 (Parsing fails for stored routine w/multi-statement execution · c7724872
      Marc Alff authored
      enabled)
      
      Before this fix, the lexer and parser would treat the ';' character as a
      different token (either ';' or END_OF_INPUT), based on convoluted logic,
      which failed in simple cases where a stored procedure is implemented as a
      single statement, and used in a multi query.
      
      With this fix:
      - the character ';' is always parsed as a ';' token in the lexer,
      - parsing multi queries is implemented in the parser, in the 'query:' rules,
      - the value of thd->client_capabilities, which is the capabilities
        negotiated between the client and the server during bootstrap,
        is immutable and not arbitrarily modified during parsing (which was the
        root cause of the bug)
      
      c7724872
    • Georgi Kodinov's avatar
      Bug#37627: addendum : · 50853ac3
      Georgi Kodinov authored
       - moved the test into a separate file to check for presence of the test variable
      
      mysql-test/r/subselect.result:
        Bug#37627: moved the test to a separate file
      mysql-test/r/subselect_debug.result:
        Bug#37627: moved the test to a separate file
      mysql-test/t/subselect.test:
        Bug#37627: moved the test to a separate file
      mysql-test/t/subselect_debug.test:
        Bug#37627: moved the test to a separate file
      50853ac3
  2. 04 Jul, 2008 5 commits
  3. 03 Jul, 2008 3 commits
    • Konstantin Osipov's avatar
      A fix for · 7b8bfb2a
      Konstantin Osipov authored
      Bug#12093 "SP not found on second PS execution if another thread 
      drops other SP in between" and
      Bug#21294 "executing a prepared statement that executes a stored 
      function which was recreat"
      
      Stored functions are resolved at prepared statement prepare only.
      If someone flushes the stored functions cache between prepare and
      execute, execution fails.
      
      The fix is to detect the situation of the cache flush and automatically
      reprepare the prepared statement after it.
      
      mysql-test/r/ps_ddl.result:
        Update results (Bug#12093 and Bug#21294, the test cases are already
        in the source tree).
      mysql-test/r/ps_ddl1.result:
        Update results (Bug#12093 and Bug#21294, the test cases are already
        in the source tree).
      mysql-test/r/sp-error.result:
        Update results (Bug#12093 and Bug#21294, the test cases are already
        in the source tree).
      mysql-test/t/ps_ddl.test:
        Modify the test to not expect an error where there is no error
        any more (Bug#12093, Bug#21294).
      mysql-test/t/ps_ddl1.test:
        Modify the test to not expect an error where there is no error
        any more (Bug#12093, Bug#21294).
      mysql-test/t/sp-error.test:
        Modify the test to not expect an error where there is no error
        any more (Bug#12093, Bug#21294).
      sql/sp_cache.cc:
        Implement sp_cache_version() -- returns the current version of 
        a stored routines cache.
      sql/sp_cache.h:
        Declare sp_cache_version().
      sql/sql_prepare.cc:
        Keep track of stored functions cache version, and invalidate
        the statement if it changed between prepared statement
        prepare and execute (and the statement actually uses stored routines).
      7b8bfb2a
    • Sven Sandberg's avatar
      merge · b6b6d98f
      Sven Sandberg authored
      b6b6d98f
    • Sven Sandberg's avatar
      BUG#37200: rpl_switch_stm_row_mixed fails sporadically in pushbuild · 25b6b026
      Sven Sandberg authored
      This bug has been fixed in two slightly different ways in
      6.0-rpl and {5.1,6.0}-bugteam. To avoid future merge
      problems, I'm now copying the 6.0-rpl fix to 5.1-bugteam.
      25b6b026
  4. 02 Jul, 2008 3 commits
  5. 01 Jul, 2008 2 commits
  6. 30 Jun, 2008 1 commit
    • Sven Sandberg's avatar
      BUG#37200: rpl_switch_stm_row_mixed fails sporadically in pushbuild · 0a60bd22
      Sven Sandberg authored
      Problem: rpl_switch_stm_row_mixed did not wait until row events generated by
      INSERT DELAYED were written to the master binlog before it synchronized slave
      with master. This caused sporadic errors where these rows were missing on
      slave.
      Fix: wait until all rows appear on the slave.
      This is a backport, applying the same to 5.1-bugteam as was previously
      applied to 6.0-rpl
      0a60bd22
  7. 27 Jun, 2008 8 commits
    • Timothy Smith's avatar
      75b6ab90
    • Timothy Smith's avatar
      Merge from upstream (my:5.0-bugteam) · fe87c0db
      Timothy Smith authored
      fe87c0db
    • Timothy Smith's avatar
      Up-merge from 5.0: Fix for Bug#20748, Configuration files should not be read more than once · 18432cc4
      Timothy Smith authored
      Differences in 5.1: include "/etc/mysql/" in include directories; no OS/2 support.
      18432cc4
    • Gleb Shchepa's avatar
      auto merge from local tree · 89f06e9d
      Gleb Shchepa authored
      89f06e9d
    • Gleb Shchepa's avatar
      Fixed bug #36632: SELECT DISTINCT from a simple view on an · a8067140
      Gleb Shchepa authored
                        InnoDB table, where all selected columns
                        belong to the same unique index key, returns
                        incorrect results
      
      Server executes some queries via QUICK_GROUP_MIN_MAX_SELECT
      (MIN/MAX optimization for queries with GROUP BY or DISTINCT
      clause) and that optimization implies loose index scan, so all
      grouping is done by the QUICK_GROUP_MIN_MAX_SELECT::get_next
      method.
      
      The server does not set the precomputed_group_by flag for some
      QUICK_GROUP_MIN_MAX_SELECT queries and duplicates grouping by
      call to the end_send_group function.
      
      Fix: when the test_if_skip_sort_order function selects loose 
      index scan as a best way to satisfy an ORDER BY/GROUP BY type
      of query, the precomputed_group_by flag has been set to use 
      end_send/end_write functions instead of end_send_group/
      end_write_group functions.
      
      
      mysql-test/r/group_min_max_innodb.result:
        Fixed bug #36632: SELECT DISTINCT from a simple view on an
                          InnoDB table, where all selected columns
                          belong to the same unique index key, returns
                          incorrect results
      mysql-test/t/group_min_max_innodb.test:
        Fixed bug #36632: SELECT DISTINCT from a simple view on an
                          InnoDB table, where all selected columns
                          belong to the same unique index key, returns
                          incorrect results
      sql/sql_select.cc:
        Fixed bug #36632: SELECT DISTINCT from a simple view on an
                          InnoDB table, where all selected columns
                          belong to the same unique index key, returns
                          incorrect results
      a8067140
    • Gleb Shchepa's avatar
      merge 5.0-bugteam --> 5.1-bugteam · 46c7c724
      Gleb Shchepa authored
      46c7c724
    • Gleb Shchepa's avatar
      backport from 6.0 · b83b4697
      Gleb Shchepa authored
            
      Bug#35658 (An empty binary value leads to mysqld crash)
              
      Before this fix, the following token
        b''
      caused the parser to crash when reading the binary value from the empty string.
      The crash was caused by:
        ptr+= max_length - 1;
      because max_length is unsigned and was 0, causing an overflow.
              
      With this fix, an empty binary literal b'' is parsed as a binary value 0,
      in Item_bin_string.
      
      mysql-test/r/varbinary.result:
        Bug#35658 (An empty binary value leads to mysqld crash)
      mysql-test/t/varbinary.test:
        Bug#35658 (An empty binary value leads to mysqld crash)
      sql/item.cc:
        Bug#35658 (An empty binary value leads to mysqld crash)
      b83b4697
    • Gleb Shchepa's avatar
      backport to 5.1 from 6.0 · cb72f09c
      Gleb Shchepa authored
      Bug#35658 (An empty binary value leads to mysqld crash)
        
      Before this fix, the following token
        b''
      caused the parser to crash when reading the binary value from the empty string.
      The crash was caused by:
        ptr+= max_length - 1;
      because max_length is unsigned and was 0, causing an overflow.
        
      With this fix, an empty binary literal b'' is parsed as a binary value 0,
      in Item_bin_string.
      
      mysql-test/r/varbinary.result:
        Bug#35658 (An empty binary value leads to mysqld crash)
      mysql-test/t/varbinary.test:
        Bug#35658 (An empty binary value leads to mysqld crash)
      sql/item.cc:
        Bug#35658 (An empty binary value leads to mysqld crash)
      cb72f09c
  8. 25 Jun, 2008 4 commits
    • Matthias Leich's avatar
      Upmerge 5.0 -> 5.1 · e72132a5
      Matthias Leich authored
      e72132a5
    • Matthias Leich's avatar
      Fix for · 49417ad7
      Matthias Leich authored
      Bug#37492 timing bug in subselect.test
      + similar weaknesses found during testing
      + replace error numbers by error names
      49417ad7
    • Gleb Shchepa's avatar
      auto merge 5.1-main --> 5.1-bugteam · 696c03e4
      Gleb Shchepa authored
      696c03e4
    • Timothy Smith's avatar
      Bug #20748: Configuration files should not be read more than once · d5977e4c
      Timothy Smith authored
      Normalize directory names before adding them to default_directories.
      
      
      mysys/default.c:
        Normalize directory names with unpack_dirname() before adding them
        to default_directories.  This way, /etc/ and /etc will not count as
        duplicates.
        
        Because this entails allocating memory to store the normalized names,
        add error handling and ensure that it doesn't leak memory in case
        both my_print_defaults() and load_defaults() are called.
        
        Clean up the Windows code that finds the exe's parent directory, and
        pull it out into a separate function.
        
        Reorganize the code into a single init_default_directories() function,
        with internal #ifdefs, instead of init_default_directories_<system>()
        functions which were accessed via a function pointer.  This is more in
        line with normal MySQL coding style, and easier to read for some.
      d5977e4c
  9. 24 Jun, 2008 4 commits
  10. 21 Jun, 2008 1 commit
    • Tatiana A. Nurnberg's avatar
      auto merge · 32089863
      Tatiana A. Nurnberg authored
      configure.in:
        auto-merge
      mysql-test/suite/bugs/r/rpl_bug33029.result:
        auto-merge
      mysql-test/suite/bugs/t/rpl_bug33029.test:
        auto-merge
      sql/slave.cc:
        auto-merge
      sql/sql_class.cc:
        auto-merge
      sql/structs.h:
        auto-merge
      32089863
  11. 20 Jun, 2008 5 commits
  12. 19 Jun, 2008 1 commit
    • Andrei Elkin's avatar
      Bug#36443 Server crashes when executing insert when insert trigger on table · e66ba2a7
      Andrei Elkin authored
                              
            The crash appeared to be a result of allocating an instance of Discrete_interval 
            automatically that that was referred in out-of-declaration scope.
                              
            Fixed with correcting backing up and restoring scheme of
            auto_inc_intervals_forced, introduced by bug#33029, by means of shallow copying;
            added simulation code that forces executing those fixes of the former bug that
            targeted at master-and-slave having incompatible bug#33029-prone versions.
      
      mysql-test/suite/bugs/r/rpl_bug33029.result:
        new results file
      mysql-test/suite/bugs/t/rpl_bug33029.test:
        test merely checks no crash happens on slave.
      sql/slave.cc:
        forcing to execute special logics implemented for bug#33029 if
        simulate_bug33029 the debug option is set.
      sql/sql_class.cc:
        swaps of backed and the actual auto_inc_intervals_forced basing on shallow coping.
      sql/structs.h:
        Removing the deep _copy() and methods associated with it;
        adding methods to Discrete_intervals_list:
            
        private `=', copy constructor to prevent using;
        private set_members();
        public  copy_shallow(), swap(), get_{head, tail, current}();
                empty_no_free() through set_members().
      e66ba2a7