1. 20 Apr, 2010 1 commit
    • Kristofer Pettersson's avatar
      Bug#50373 --secure-file-priv="" · d70f897e
      Kristofer Pettersson authored
      Correcting a patch misstake. The converted file path is placed in 'buff' not in opt_secure_file_priv.
      
      mysql-test/r/loaddata.result:
        * Updated test case; Since secure_file_priv now is normalized the previous values are changed.
      sql/mysqld.cc:
        * Fixed patch misstake
      d70f897e
  2. 16 Apr, 2010 6 commits
    • Kristofer Pettersson's avatar
      Automerge · ea9b3b9d
      Kristofer Pettersson authored
      ea9b3b9d
    • Kristofer Pettersson's avatar
      Bug#50373 --secure-file-priv="" · 2fdbb288
      Kristofer Pettersson authored
      The server variable opt_secure_file_priv wasn't
      normalized properly and caused the operations
      LOAD DATA INFILE .. INTO TABLE ..
      and
      SELECT load_file(..)
      to do different interpretations of the 
      --secure-file-priv option.
      
      The patch moves code to the server initialization
      routines so that the path always is normalized
      once and only once.
      
      It was also intended that setting the option
      to an empty string should be equal to 
      lifting all previously set restrictions. This
      is also fixed by this patch.
      
      
      sql/mysqld.cc:
        * If --secure_file_option is an empty string then the option variable
          should be unset.
        * opt_secure_file_option should be normalized once when the server starts.
      sql/sql_load.cc:
        * moved variable normalization code to fix_paths()
      2fdbb288
    • Staale Smedseng's avatar
      Bug#51591 deadlock in the plugins+status+variables · 5b8817f1
      Staale Smedseng authored
            
      Potential deadlock situation involving LOCK_plugin,
      LOCK_global_system_variables and LOCK_status.
            
      This patch backports the fix from next-mr, unlocking
      LOCK_plugin before calling plugin->init() and
      add_status_vars().
      5b8817f1
    • Sergey Glukhov's avatar
      Bug#52124 memory leaks like a sieve in datetime, timestamp, time, date fields + warnings · fb34af77
      Sergey Glukhov authored
      Arg_comparator initializes 'comparators' array in case of
      ROW comparison and does not free this array on destruction.
      It leads to memory leaks.
      The fix:
      -added Arg_comparator::cleanup() method which frees
       'comparators' array.
      -added Item_bool_func2::cleanup() method which calls 
       Arg_comparator::cleanup() method
      
      
      mysql-test/r/ps.result:
        test case
      mysql-test/r/row.result:
        test case
      mysql-test/t/ps.test:
        test case
      mysql-test/t/row.test:
        test case
      sql/item_cmpfunc.h:
        -added Arg_comparator::cleanup() method which frees
         'comparators' array.
        -added Item_bool_func2::cleanup() method which calls 
         Arg_comparator::cleanup() method
      fb34af77
    • Georgi Kodinov's avatar
      Bug #52629: memory leak from sys_var_thd_dbug in binlog.binlog_write_error · 5885c534
      Georgi Kodinov authored
      When re-setting (SET GLOBAL debug='') the GLOBAL debug settings the 
      server was not freeing the data elements from the top (initial) frame 
      before setting them to 0 without freeing the underlying memory. As these 
      are global settings there's a chance that something is there already.
      Fixed by :
      1. making sure the allocated data are cleaned up before re-setting them
      while parsing a debug string
      2. making sure the stuff allocated in the global settings is freed on 
      shutdown.
      5885c534
    • Luis Soares's avatar
      011ba709
  3. 15 Apr, 2010 1 commit
  4. 14 Apr, 2010 2 commits
    • Sergey Vojtovich's avatar
      Merge fix for BUG39053 to 5.1-bugteam. · 44a6cfe1
      Sergey Vojtovich authored
      44a6cfe1
    • Sergey Vojtovich's avatar
      BUG#39053 - UNISTALL PLUGIN does not allow the storage engine · fe38084f
      Sergey Vojtovich authored
                  to cleanup open connections
      
      It was possible to UNINSTALL storage engine plugin when binding
      between THD object and storage engine is still active (e.g. in
      the middle of transaction).
      
      To avoid unclean deactivation (uninstall) of storage engine plugin
      in the middle of transaction, additional storage engine plugin
      lock is acquired by thd_set_ha_data().
      
      If ha_data is not null and storage engine plugin was not locked
      by thd_set_ha_data() in this connection before, storage engine
      plugin gets locked.
      
      If ha_data is null and storage engine plugin was locked by
      thd_set_ha_data() in this connection before, storage engine
      plugin lock gets released.
      
      If handlerton::close_connection() didn't reset ha_data, server does
      it immediately after calling handlerton::close_connection().
      
      Note that this is just a framework fix, storage engines must switch
      to thd_set_ha_data() from thd_ha_data() if they want to see fit.
      
      include/mysql/plugin.h:
        As thd_{get|set}_ha_data() have some extra logic now, they
        must be implemented on server side.
      include/mysql/plugin.h.pp:
        As thd_{get|set}_ha_data() have some extra logic now, they
        must be implemented on server side.
      sql/handler.cc:
        Make sure ha_data is reset and ha_data lock is released.
      sql/handler.h:
        hton is not supposed to be updated by ha_lock_engine(),
        make it const.
      sql/sql_class.cc:
        As thd_{get|set}_ha_data() have some extra logic now, they
        must be implemented on server side.
      sql/sql_class.h:
        Added ha_data lock.
      fe38084f
  5. 12 Apr, 2010 2 commits
  6. 09 Apr, 2010 2 commits
    • Davi Arnaut's avatar
      Backport revision alik@sun.com-20100223131824-comthndat57kx8s5: · 11ca63fc
      Davi Arnaut authored
      Add ignore pattern for valgrind messages.
      11ca63fc
    • Georgi Kodinov's avatar
      Bug #47095: Can't open_files_limit really be larger than 65535? · 29315b68
      Georgi Kodinov authored
      Several problems addressed:
      
      1. The maximum value for --open_files_limit on non-windows boxes
      is now raised to UINT_MAX (the maximum possible without significant
      changes in the code). The maximum value on windows is kept to be
      2048 due to a known limitation (bug 24509).
      
      2. mysqld_safe now supports --open_files_limit=xx in addition to 
      --open-files-limit=xx
      
      3. mysqld_safe always passes through --open[_-]files[_-]limit
      to the underlying mysqld. It used to pass it through only if it 
      the user running the script has access to the root directory or
      there was an --user argument specified.
      
      4. Fixed a prototype in my_file.c to match its counterpart in 
      the other #ifdef branch.
      29315b68
  7. 07 Apr, 2010 1 commit
  8. 06 Apr, 2010 7 commits
  9. 05 Apr, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#52336 Segfault / crash in 5.1 copy_fields (param=0x9872980) at sql_select.cc:15355 · 57659df5
      Sergey Glukhov authored
      The problem is that we can not use make_cond_for_table().
      This function relies on used_tables() condition
      which is not set properly for subqueries.
      As result subquery is not filtered out.
      The fix is to use remove_eq_conds() function instead
      of make_cond_for_table() func. 'remove_eq_conds()'
      algorithm relies on const_item() value and it allows
      to handle subqueries in right way.
      
      
      mysql-test/r/having.result:
        test case
      mysql-test/t/having.test:
        test case
      sql/sql_select.cc:
        The fix is to use remove_eq_conds() function instead
        of make_cond_for_table() function.
      57659df5
  10. 02 Apr, 2010 1 commit
    • Gleb Shchepa's avatar
      Bug #40625: Concat fails on DOUBLE values in a Stored · af586ee9
      Gleb Shchepa authored
                  Procedure, while DECIMAL works
      
      Selecting of the CONCAT(...<SP variable>...) result into
      a user variable may return wrong data.
      
      
      Item_func_concat::val_str contains a number of memory
      allocation-saving tricks. One of them concatenates
      strings inplace inserting the value of one string
      at the beginning of the other string. However,
      this trick didn't care about strings those points
      to the same data buffer: this is possible when
      a CONCAT() parameter is a stored procedure variable -
      Item_sp_variable::val_str() uses the intermediate
      Item_sp_variable::str_value field, where it may
      store a reference to an external buffer.
      
      
      The Item_func_concat::val_str function has been
      modified to take into account val_str functions
      (such as Item_sp_variable::val_str) that return
      a pointer to an internal Item member variable
      that may reference to a buffer provided.
      
      
      mysql-test/r/func_concat.result:
        Test case for the bug #40625.
      mysql-test/t/func_concat.test:
        Test case for the bug #40625.
      sql/item_strfunc.cc:
        Bug #40625: Concat fails on DOUBLE values in a Stored
                    Procedure, while DECIMAL works
        
        The Item_func_concat::val_str function has been
        modified to take into account val_str functions
        (such as Item_sp_variable::val_str) that return
        a pointer to an internal Item member variable
        that may reference to a buffer provided.
      af586ee9
  11. 01 Apr, 2010 16 commits
    • Anurag Shekhar's avatar
      Bug #47904 Incorrect results w/ table subquery, derived SQs, and LEFT JOIN · 0615cb86
      Anurag Shekhar authored
             on index
      
      'my_decimal' class has two members which can be used to access the 
      value. The member variable buf (inherited from parent class decimal_t) 
      is set to member variable buffer so that both are pointing to same value.
      
      Item_copy_decimal::copy() uses memcpy to clone 'my_decimal'. The member
      buffer is declared as an array and memcpy results in copying the values
      of the array, but the inherited member buf, which should be pointing at
      the begining of the array 'buffer' starts pointing to the begining of 
      buffer in original object (which is being cloned). Further updates on 
      'my_decimal' updates only the inherited member 'buf' but leaves 
      buffer unchanged.
      
      Later when the new object (which now holds a inconsistent value) is cloned
      again using proper cloning function 'my_decimal2decimal' the buf pointer
      is fixed resulting in loss of the current value.
      
      Using my_decimal2decimal instead of memcpy in Item_copy_decimal::copy()
      fixed this problem.
      
      
      mysql-test/r/subselect.result:
        Updated result file after addding test case for bug#47904.
      mysql-test/t/subselect.test:
        Added test case for bug#47904.
      sql/item.cc:
        Memcopy shouldn't be used to clone my_decimal. Use my_decimal2decimal
        instead.
      0615cb86
    • Sergey Vojtovich's avatar
      2d5a670c
    • Sergey Vojtovich's avatar
      96c4d8fa
    • Sergey Vojtovich's avatar
      BUG#40980 - Drop table can remove another MyISAM table's · d7fb0242
      Sergey Vojtovich authored
                  data and index files
      
      It was possible if DATA/INDEX DIRECTORY is pointing to
      symlinked MySQL data home directory.
      
      Do not allow to drop data/index files implicitly symlinked
      to data home directory. For such tables remove symlink only.
      
      mysql-test/r/symlink.result:
        A test case for BUG#40980.
      mysql-test/t/symlink.test:
        A test case for BUG#40980.
      storage/myisam/mi_delete_table.c:
        Do not allow to drop data/index files implicitly symlinked
        to data home directory. For such tables remove symlink only.
      d7fb0242
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 1efb9ec1
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6900 | mmakela | 2010-03-29 13:54:57 +0300 (Mon, 29 Mar 2010) | 5 lines
      branches/zip: Merge c6899 from branches/innodb+:
      
      Add debug assertions to track down Bug #52360.
      hash_table_t::magic_n: Add HASH_TABLE_MAGIC_N checks, which were fully absent.
      ut_hash_ulint(): Assert table_size > 0 before division.
      1efb9ec1
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 29175da2
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6897 | mmakela | 2010-03-29 11:36:19 +0300 (Mon, 29 Mar 2010) | 3 lines
      branches/zip: innodb_mutex_show_status(): Fix a condition
      that was accidentally negated in r6781, making SHOW ENGINE INNODB MUTEX STATUS
      display only locks with no OS waits.
      29175da2
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 556cc61c
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6891 | vdimov | 2010-03-26 16:19:01 +0200 (Fri, 26 Mar 2010) | 5 lines
      Non-functional change: update copyright year to 2010 of the files
      that have been modified after 2010-01-01 according to svn.
      
      for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
      556cc61c
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 66463e87
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6875 | vdimov | 2010-03-25 18:18:15 +0200 (Thu, 25 Mar 2010) | 4 lines
      branches/zip:
      
      Wrap line at 78 column in ChangeLog.
      66463e87
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · b4bc6938
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6874 | vdimov | 2010-03-25 17:17:52 +0200 (Thu, 25 Mar 2010) | 4 lines
      branches/zip:
      
      Wrap ChangeLog at 78th column
      b4bc6938
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 99dfadfc
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6873 | vdimov | 2010-03-25 17:06:56 +0200 (Thu, 25 Mar 2010) | 4 lines
      branches/zip:
      
      Use Bug#N instead of Bug #N to be consistent with the rest of the fil.
      99dfadfc
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · e4358dc2
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6872 | vdimov | 2010-03-25 17:03:17 +0200 (Thu, 25 Mar 2010) | 4 lines
      branches/zip:
      
      Fix ChangeLog - write only the bug title in bugs.mysql.com-related entires.
      e4358dc2
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 1c3e0352
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6871 | vdimov | 2010-03-25 16:39:44 +0200 (Thu, 25 Mar 2010) | 4 lines
      branches/zip:
      
      Whitespace fixup to be consistent with the rest of the file.
      1c3e0352
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 0587f319
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6868 | mmakela | 2010-03-25 13:03:08 +0200 (Thu, 25 Mar 2010) | 1 line
      branches/zip: page_validate(): Check the buf[] bounds.
      0587f319
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 732ec607
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6864 | mmakela | 2010-03-24 14:05:53 +0200 (Wed, 24 Mar 2010) | 1 line
      branches/zip: dtype_new_store_for_order_and_null_size(): Add ut_ad() on mtype.
      732ec607
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · f788897b
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6861 | vdimov | 2010-03-23 19:31:02 +0200 (Tue, 23 Mar 2010) | 36 lines
      branches/zip:
      
      Merge joerg@mysql.com-20100322150231-vdq0afbqtmbs6phy from BZR,
      
      Including univ.i before mysql/plugin.h is needed to avoid this
      compiler error:
      
      o  This is how gcc puts it:
      o  > > ccache /usr/local/gcc-4.3.2/bin/gcc -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -g -O3 -march=i686   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
      o  > > In file included from ./include/univ.i:114,
      o  > >                  from trx/trx0i_s.c:36:
      o  > > ../../include/my_pthread.h:628: error: expected ')' before '*' token
      o  > > In file included from ../../include/my_pthread.h:732,
      o  > >                  from ./include/univ.i:114,
      o  > >                  from trx/trx0i_s.c:36:
      o  > > ../../include/mysql/psi/mysql_thread.h:100: error: expected specifier-qualifier-list before 'pthread_rwlock_t'
      o  > > ../../include/mysql/psi/mysql_thread.h:116: error: expected specifier-qualifier-list before 'pthread_rwlock_t'
      o  > > ../../include/mysql/psi/mysql_thread.h: In function 'inline_mysql_rwlock_init':
      o  > > ../../include/mysql/psi/mysql_thread.h:711: error: 'mysql_rwlock_t' has no member named 'm_psi'
      o  > > ../../include/mysql/psi/mysql_thread.h:716: error: 'mysql_rwlock_t' has no member named 'm_rwlock'
      o  > > .... ((continued))
      o  
      o  Intel's icc gives slightly clearer messages:
      o  > > icc -static-intel -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -O3 -g -unroll2 -ip -mp -restrict -no-ftz -no-prefetch   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
      o  > > ../../include/my_pthread.h(628): error: identifier "pthread_rwlock_t" is undefined
      o  > >   extern int rw_pr_init(rw_pr_lock_t *);
      o  > >                         ^
      o  > > 
      o  > > ../../include/mysql/psi/mysql_thread.h(100): error: identifier "pthread_rwlock_t" is undefined
      o  > >     rw_lock_t m_rwlock;
      o  > >     ^
      o  > > 
      o  > > ../../include/mysql/psi/mysql_thread.h(116): error: identifier "pthread_rwlock_t" is undefined
      o  > >     rw_pr_lock_t m_prlock;
      o  > >     ^
      f788897b
    • Sergey Vojtovich's avatar
      Applying InnoDB snapshot · 3520a0bd
      Sergey Vojtovich authored
      Detailed revision comments:
      
      r6860 | jyang | 2010-03-23 18:20:36 +0200 (Tue, 23 Mar 2010) | 5 lines
      branches/zip: This is patch from Inaam that uses red-black tree
      to speed up insertions into the flush_list and thus the recovery
      process. The patch has been tested by Nokia.
      3520a0bd