1. 18 Mar, 2009 15 commits
    • Alexey Kopytov's avatar
      Automerge. · 30d365ec
      Alexey Kopytov authored
      30d365ec
    • Vladislav Vaintroub's avatar
      merge · 93771759
      Vladislav Vaintroub authored
      93771759
    • Georgi Kodinov's avatar
      6290bc7e
    • Georgi Kodinov's avatar
      merged 5.1-main -> 5.1-bugteam · a673bdd3
      Georgi Kodinov authored
      a673bdd3
    • Guangbao Ni's avatar
      Auto-merged from 5.1-bugteam · ff37912f
      Guangbao Ni authored
      ff37912f
    • Guangbao Ni's avatar
      Auto-merge from 5.1-bugteam · 224376a7
      Guangbao Ni authored
      224376a7
    • Guangbao Ni's avatar
      Bug #42217 mysql.procs_priv does not get replicated · 0ba1cc25
      Guangbao Ni authored
      mysql.procs_priv table itself does not get replicated.
      Inserting routine privilege record into mysql.procs_priv table
      is triggered by creating function/procedure statements
      according to current user's privileges.
      Because the current user of SQL thread has GLOBAL_ACL,
      which doesn't need any check mysql.procs_priv privilege
      when create/alter/execute routines.
      Corresponding GLOBAL_ACL privilege user
      doesn't insert routine privilege record into
      mysql.procs_priv when creating a routine.
      
      Fixed by switching the current user of SQL thread to definer user if
      the definer user exists on slave.
      That populates procs_priv, otherwise to keep the SQL thread
      user and procs_priv remains unchanged.
      
      
      mysql-test/suite/rpl/r/rpl_do_grant.result:
        Test case result for routine privilege when definer user exist or not on slave
      mysql-test/suite/rpl/t/rpl_do_grant.test:
        Test case result for routine privilege when definer user exist or not on slave
      sql/sql_parse.cc:
        Switch current user of SQL thread to definer user if the definer user
        existes on slave when checking whether the routine privilege is
        needed to insert mysql.procs_priv table or not.
      0ba1cc25
    • Alexey Kopytov's avatar
      Automerge. · d6fd3f12
      Alexey Kopytov authored
      d6fd3f12
    • Alexey Kopytov's avatar
      Automerge. · 07a3de20
      Alexey Kopytov authored
      07a3de20
    • Alexey Kopytov's avatar
      Automerge. · da7dc303
      Alexey Kopytov authored
      da7dc303
    • Alexey Kopytov's avatar
      Manual merge. · 2b253395
      Alexey Kopytov authored
      2b253395
    • Alexey Kopytov's avatar
      Fix for bug#41486: extra character appears in BLOB for every · 73a7d993
      Alexey Kopytov authored
                         ~40Mb after mysqldump/import 
              
      When the input string exceeds the maximum allowed size for the 
      internal buffer, batch_readline() returns a truncated string. 
      Since there was no way for a caller to determine whether the 
      string was truncated or not, the command line client assumed 
      batch_readline() to always return the whole input string and 
      appended a newline character. This resulted in garbled data 
      when importing dumps containing strings longer than the 
      maximum input buffer size. 
        
      Fixed by adding a flag to the batch_readline() interface to 
      signal a truncated string to the caller. 
        
      Other minor problems fixed during patch implementation: 
       
      - The maximum allowed buffer size for batch_readline() was set 
      up depending on the client's max_allowed_packet value. It does 
      not actully make any sense, as those variables are not 
      related. The input buffer size limit is now always set to 1 
      MB. 
        
      - fill_buffer() did not always set the EOF flag. 
       
      - The input buffer could actually grow twice as the specified 
      limit due to insufficient checks in intern_read_line(). 
      
      client/my_readline.h:
        Changed the interface of batch_readline().
      client/mysql.cc:
        Honor the truncated flag returned by batch_readline() and do  
        not append the newline character if it was set. Since we can't 
        change the interfaces for readline()/fgets() used in the  
        interactive mode, always assume the returned string was not  
        truncated. In addition, always set the batch_readline()  
        internal buffer to 1 MB, independently from the client's  
        max_allowed_packet.
      client/readline.cc:
        Added the 'truncated' argument do batch_readline() to signal 
        truncated string to a caller. 
        Fixed fill_buffer() to set the EOF flag correctly. 
        Fixed checks in intern_read_line() to not allow the internal  
        buffer grow past the specified limit.
      mysql-test/r/mysql.result:
        Added a test case for bug #41486.
      mysql-test/t/mysql.test:
        Added a test case for bug #41486.
      73a7d993
    • Satya B's avatar
      merge to 5.1-bugteam branch · 1367981c
      Satya B authored
      1367981c
    • Satya B's avatar
      Fix for BUG#32880 - Repairing Archive table fails with internal error 144 · 497db6ac
      Satya B authored
      Any statement reading corrupt archive data file
      (CHECK/REPAIR/SELECT/UPDATE/DELETE) may cause assertion
      failure in debug builds. This assertion has been removed
      and an error is returned instead.
      
      Also fixed that CHECK/REPAIR returns vague error message
      when it mets corruption in archive data file. This is
      fixed by returning proper error code.
      
      mysql-test/r/archive.result:
        A test case for BUG#32880
      mysql-test/std_data/bug32880.ARN:
        corrupted archive table to test check and repair table operation
      mysql-test/std_data/bug32880.ARZ:
        corrupted archive table to test check and repair table operation
      mysql-test/std_data/bug32880.frm:
        corrupted archive table to test check and repair table operation
      mysql-test/t/archive.test:
        A test case for BUG#32880
      storage/archive/ha_archive.cc:
        Fixed unpack_row() to return the error instead of throwing assertion 
        and also fixed repair() to throw better error when repair table
        operation fails on corrupted archive table
      497db6ac
    • Leonard Zhou's avatar
      Merge · af53e585
      Leonard Zhou authored
      af53e585
  2. 17 Mar, 2009 10 commits
  3. 16 Mar, 2009 7 commits
  4. 15 Mar, 2009 2 commits
  5. 13 Mar, 2009 6 commits
    • Andrei Elkin's avatar
      merge from 5.1-bt to a local branch · b105e8f5
      Andrei Elkin authored
      b105e8f5
    • Jonathan Perkin's avatar
      99eeb9fb
    • Andrei Elkin's avatar
      merge from 5.1-bt to a local branch · e2177e81
      Andrei Elkin authored
      e2177e81
    • Georgi Kodinov's avatar
      Bug #22047 : Time in SHOW PROCESSLIST for SQL thread in replication · f35b4218
      Georgi Kodinov authored
      seems to become negative
      
      THD::start_time has a dual meaning : it's either the time since the process
      entered a given state or is the transaction time returned by e.g. NOW().
      This causes problems, as sometimes THD::start_time may be set to a value
      that is correct and needed when used as a base for NOW(), but these times
      may be arbitrary (SET @@timestamp) or non-local (coming from the master 
      through the replication feed).
      If one such non-local time is set there's no way to return a correct value
      for e.g. SHOW PROCESSLIST or SELECT ... FROM INFORMATION_SCHEMA.PROCESSLIST.
      Fixed by making the Time column in SHOW PROCESSLIST SIGNED LONG instead of 
      UNSIGNED LONG and doing the correct conversions.
            
      Note that no reliable test suite can be constructed, since it would require
      knowing the local time and can't be achieved by the means of the current test
      suite.
      
      sql/sql_show.cc:
        Bug #22047: make the Time in SHOW PROCESSLIST LONG from 
        LONG UNSIGNED
      f35b4218
    • 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