1. 24 Feb, 2009 9 commits
    • Davi Arnaut's avatar
      Bug#41110: crash with handler command when used concurrently with alter table · 104cf08a
      Davi Arnaut authored
      Bug#41112: crash in mysql_ha_close_table/get_lock_data with alter table
      
      The problem is that the server wasn't handling robustly failures
      to re-open a table during a HANDLER .. READ statement. If the
      table needed to be re-opened due to it's storage engine being
      altered to one that doesn't support HANDLER, a reference (dangling
      pointer) to a closed table could be left in place and accessed in
      later attempts to fetch from the table using the handler. Also,
      if the server failed to set a error message if the re-open
      failed. These problems could lead to server crashes or hangs.
      
      The solution is to remove any references to a closed table and
      to set a error if reopening a table during a HANDLER .. READ
      statement fails.
      
      mysql-test/include/handler.inc:
        Add test case for Bug#41110 and Bug#41112
      mysql-test/r/handler_innodb.result:
        Add test case result for Bug#41110 and Bug#41112
      mysql-test/r/handler_myisam.result:
        Add test case result for Bug#41110 and Bug#41112
      sql/sql_handler.cc:
        Remove redundant reopen check.
        Set errors even if reopening table.
        Reset TABLE_LIST::table reference when the table is closed.
      104cf08a
    • Davi Arnaut's avatar
      Bug#41110: crash with handler command when used concurrently with alter table · 990bca3b
      Davi Arnaut authored
      Bug#41112: crash in mysql_ha_close_table/get_lock_data with alter table
      
      The problem is that the server wasn't handling robustly failures
      to re-open a table during a HANDLER .. READ statement. If the
      table needed to be re-opened due to it's storage engine being
      altered to one that doesn't support HANDLER, a reference (dangling
      pointer) to a closed table could be left in place and accessed in
      later attempts to fetch from the table using the handler. Also,
      if the server failed to set a error message if the re-open
      failed. These problems could lead to server crashes or hangs.
      
      The solution is to remove any references to a closed table and
      to set a error if reopening a table during a HANDLER .. READ
      statement fails.
      
      There is no test case in this change set as the test depends on
      a testing feature only available on 5.1 and later.
      
      sql/sql_handler.cc:
        Remove redundant reopen check.
        Set errors even if reopening table.
        Reset TABLE_LIST::table reference when the table is closed.
      990bca3b
    • Tatiana A. Nurnberg's avatar
      automerge · 2abe57c4
      Tatiana A. Nurnberg authored
      2abe57c4
    • Tatiana A. Nurnberg's avatar
      automerge · 9047f1a0
      Tatiana A. Nurnberg authored
      9047f1a0
    • Tatiana A. Nurnberg's avatar
      automerge · 4c443b0a
      Tatiana A. Nurnberg authored
      4c443b0a
    • Tatiana A. Nurnberg's avatar
      automerge · 3d6963db
      Tatiana A. Nurnberg authored
      3d6963db
    • Tatiana A. Nurnberg's avatar
      automerge · 376e369b
      Tatiana A. Nurnberg authored
      376e369b
    • Tatiana A. Nurnberg's avatar
      automerge · 1703cf9c
      Tatiana A. Nurnberg authored
      1703cf9c
    • Tatiana A. Nurnberg's avatar
      automerge · e8c17219
      Tatiana A. Nurnberg authored
      e8c17219
  2. 23 Feb, 2009 12 commits
    • Alexey Kopytov's avatar
      a8cfa64f
    • Alexey Kopytov's avatar
      Automerge. · ba70c0b6
      Alexey Kopytov authored
      ba70c0b6
    • Alexey Kopytov's avatar
      Automerge. · 301308b7
      Alexey Kopytov authored
      301308b7
    • Alexey Kopytov's avatar
      Manual merge to 5.1. · c718b1d7
      Alexey Kopytov authored
      c718b1d7
    • Alexey Kopytov's avatar
      Fix for bug #15936: "round" differs on Windows to Unix · 1b5d173b
      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().
      1b5d173b
    • Tatiana A. Nurnberg's avatar
      auto-merge · a97aca4a
      Tatiana A. Nurnberg authored
      a97aca4a
    • Tatiana A. Nurnberg's avatar
      auto-merge · cef3706e
      Tatiana A. Nurnberg authored
      cef3706e
    • Anurag Shekhar's avatar
      merging with changes in bugteam branch. · e91a9167
      Anurag Shekhar authored
      e91a9167
    • Leonard Zhou's avatar
      merge · 8c7b34d1
      Leonard Zhou authored
      8c7b34d1
    • Leonard Zhou's avatar
      merge · fc0c1cca
      Leonard Zhou authored
      fc0c1cca
    • Davi Arnaut's avatar
      Post-merge fix: test depends on feature not available under embedded. · 19cb8641
      Davi Arnaut authored
      mysql-test/t/query_cache_28249.test:
        Test depends on process state (not updated under embedded)
      19cb8641
    • Leonard Zhou's avatar
      Bug#40013 mixed replication: row based format could lead to stale tmp tables on the · ab369861
      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.
      ab369861
  3. 22 Feb, 2009 1 commit
  4. 21 Feb, 2009 1 commit
    • Alfranio Correia's avatar
      BUG#38174 secure-file-priv breaks LOAD DATA INFILE replication in statement mode · 98502312
      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.
      98502312
  5. 20 Feb, 2009 12 commits
  6. 19 Feb, 2009 5 commits
    • Patrick Crews's avatar
      merge 5.0 -> 5.1 · 51a1eaf2
      Patrick Crews authored
      These are only 5.0's fixes being merged.
      5.1 and 6.0 Unix-removals will occur in different patches.
      51a1eaf2
    • Patrick Crews's avatar
      Bug#38831: 11 test cases fail on Windows due to missing commands · decee3cb
      Patrick Crews authored
      Re-enabling mysqlbinlog.test on Windows - removed the use of grep/sed
      decee3cb
    • Davi Arnaut's avatar
      Bug#41098: Query Cache returns wrong result with concurrent insert · 021b9a51
      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.
      021b9a51
    • Serge Kozlov's avatar
      merge 5.1 · 23739d51
      Serge Kozlov authored
      23739d51
    • Patrick Crews's avatar
      Bug#38831: 11 test cases fail on Windows due to missing commands · c2e92617
      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
      c2e92617