1. 27 Feb, 2009 1 commit
    • Alexey Kopytov's avatar
      Fix for bug #40552: Race condition around default_directories · f7cf8e57
      Alexey Kopytov authored
                          in load_defaults() 
      
      load_defaults(), my_search_option_files() and 
      my_print_default_files()  utilized a global variable 
      containing  a pointer to thread local memory. This could lead 
      to race conditions when those functions were called with high 
      concurrency. 
      
      Fixed by changing the interface of the said functions to avoid 
      the necessity for using a global variable.
      
      Since we cannot change load_defaults() prototype for API
      compatibility reasons, it was renamed my_load_defaults().
      Now load_defaults() is a thread-unsafe wrapper around
      a thread-safe version, my_load_defaults().
      
      
      mysys/default.c:
        1. Added a thread-safe version of load_defaults(), changed
        load_defaults() with the old interface to be a thread-unsafe
        wrapper around the thread-safe version.
        2. Always use a private MEM_ROOT in my_print_default_files, 
        don't use a global variable.
      sql-common/client.c:
        Use a thread-safe version of load_defaults().
      f7cf8e57
  2. 24 Feb, 2009 7 commits
  3. 23 Feb, 2009 12 commits
    • Alexey Kopytov's avatar
      144763db
    • Alexey Kopytov's avatar
      Automerge. · c893a5f0
      Alexey Kopytov authored
      c893a5f0
    • Alexey Kopytov's avatar
      Automerge. · d86c8af3
      Alexey Kopytov authored
      d86c8af3
    • Alexey Kopytov's avatar
      Manual merge to 5.1. · 8ae81624
      Alexey Kopytov authored
      8ae81624
    • Alexey Kopytov's avatar
      Fix for bug #15936: "round" differs on Windows to Unix · 0e62c9aa
      Alexey Kopytov authored
      Both of our own implementations of rint(3) were inconsistent with the
      most common behavior of rint() on those platforms that have it: round
      to nearest, break ties by rounding to nearest even.
      
      Fixed by leaving just one implementation of rint() in our source tree,
      and changing its behavior to match the most common native
      implementations on other platforms.
      
      configure.in:
        Added checks for fenv.h and fesetround().
      include/config-win.h:
        Removed the incorrect implementation of rint() for Windows.
      include/my_global.h:
        Added an rint() implementation for platforms that do not have it.
      mysql-test/r/func_math.result:
        Added a test case for bug #15936.
      mysql-test/t/func_math.test:
        Added a test case for bug #15936.
      sql/mysqld.cc:
        Explicitly set the FPU rounding mode with fesetround().
      0e62c9aa
    • Tatiana A. Nurnberg's avatar
      auto-merge · ec3decf6
      Tatiana A. Nurnberg authored
      ec3decf6
    • Tatiana A. Nurnberg's avatar
      auto-merge · c1d73f33
      Tatiana A. Nurnberg authored
      c1d73f33
    • Anurag Shekhar's avatar
      merging with changes in bugteam branch. · e6babb70
      Anurag Shekhar authored
      e6babb70
    • Leonard Zhou's avatar
      merge · 8f3f7992
      Leonard Zhou authored
      8f3f7992
    • Leonard Zhou's avatar
      merge · 2b3dfbc1
      Leonard Zhou authored
      2b3dfbc1
    • Davi Arnaut's avatar
      Post-merge fix: test depends on feature not available under embedded. · 9fc083bd
      Davi Arnaut authored
      mysql-test/t/query_cache_28249.test:
        Test depends on process state (not updated under embedded)
      9fc083bd
    • Leonard Zhou's avatar
      Bug#40013 mixed replication: row based format could lead to stale tmp tables on the · 61d706a4
      Leonard Zhou authored
      slave.
      
      In mixed mode, if we create a temporary table and do some update which switch to ROW format,
      the format will keep in ROW format until the session ends or the table is dropped explicitly. 
      When the session ends, the temp table is dropped automaticly at cleanup time.
      but it checks only current binlog format and so skip insertion of DROP TABLE instructions into binlog.
      So the temp table can't be dropped correctly at slave.
      
      Our solution is that when closing temp tables at cleanup time we check both binlog format and binlog mode,
      and we could write DROP TABLE instructions into binlog if current binlog format is ROW but in MIX mode.
      
      mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result:
        Test result file.
      mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test:
        Test file.
      sql/sql_base.cc:
        Didn't do binloging when both current format and default format are ROW.
      61d706a4
  4. 22 Feb, 2009 1 commit
  5. 21 Feb, 2009 1 commit
    • Alfranio Correia's avatar
      BUG#38174 secure-file-priv breaks LOAD DATA INFILE replication in statement mode · d822ab89
      Alfranio Correia authored
                        
      If secure-file-priv was set on slave, it became unable to execute
      LOAD DATA INFILE statements sent from master using mixed or
      statement-based replication.
                        
      This patch fixes the issue by ignoring this security restriction
      and checking if the files are created and read by the slave in the
      --slave-load-tmpdir while executing the SQL Thread.
      d822ab89
  6. 20 Feb, 2009 12 commits
  7. 19 Feb, 2009 6 commits
    • Patrick Crews's avatar
      merge 5.0 -> 5.1 · e9b4b536
      Patrick Crews authored
      These are only 5.0's fixes being merged.
      5.1 and 6.0 Unix-removals will occur in different patches.
      e9b4b536
    • Patrick Crews's avatar
      Bug#38831: 11 test cases fail on Windows due to missing commands · cf571967
      Patrick Crews authored
      Re-enabling mysqlbinlog.test on Windows - removed the use of grep/sed
      cf571967
    • Davi Arnaut's avatar
      Bug#41098: Query Cache returns wrong result with concurrent insert · 664bb23a
      Davi Arnaut authored
      The problem is that select queries executed concurrently with
      a concurrent insert on a MyISAM table could be cached if the
      select started after the query cache invalidation but before
      the unlock of tables performed by the concurrent insert. This
      race could happen because the concurrent insert was failing
      to prevent cache of select queries happening at the same time.
      
      The solution is to add a 'uncacheable' status flag to signal
      that a concurrent insert is being performed on the table and
      that queries executing at the same time shouldn't cache the
      results.
      
      mysql-test/r/query_cache_debug.result:
        Add test case result for Bug#41098
      mysql-test/t/disabled.def:
        Re-enable test case.
      mysql-test/t/query_cache_debug.test:
        Add test case for Bug#41098
      sql/sql_cache.cc:
        Debug sync point for regression testing purposes.
      sql/sql_insert.cc:
        Remove meaningless query cache invalidate. There is already
        a preceding invalidate for queries that started before the
        concurrent insert.
      storage/myisam/ha_myisam.cc:
        Check for a active concurrent insert.
      storage/myisam/mi_locking.c:
        Signal the start of a concurrent insert. Flag is zeroed once
        the state is updated back.
      storage/myisam/myisamdef.h:
        Add flag to signal a active concurrent insert.
      664bb23a
    • Serge Kozlov's avatar
      merge 5.1 · 8e8c5bbe
      Serge Kozlov authored
      8e8c5bbe
    • Patrick Crews's avatar
      Bug#38831: 11 test cases fail on Windows due to missing commands · 79300d6f
      Patrick Crews authored
      Replaced Unix calls with mysql-test-run's built-in functions / SQL manipulation where possible.
      Replaced error codes with error names as well.
      Disabled two tests on Windows due to more complex Unix command usage
      See Bug#41307, Bug#41308
      79300d6f
    • Serge Kozlov's avatar
      Bug#41423. · b86dc86e
      Serge Kozlov authored
      1. Constant values of binlog positions replaced by seeking them in binlog/relay log.
      2. Updated result file
      b86dc86e