1. 22 Jun, 2009 1 commit
    • Martin Hansson's avatar
      · 543885d1
      Martin Hansson authored
      Bug#44653: Server crash noticed when executing random queries with partitions.
      
      When opening a table, it is imperative that the flag
      TABLE::auto_increment_field_not_null be false. But if an error occured during
      the creation of a table (e.g. the table exists already) with an auto_increment
      column and a BEFORE trigger that used the INSERT ... SELECT construct, the
      flag was not reset until after error checking. Thus if an error occured,
      select_insert::send_data() returned immediately and it was not reset (see * in
      pseudocode below).  Crash happened if the table was opened again. Fixed by
      resetting the flag after error checking.
      
      nested-loops_join():
        for each row in SELECT table {
          select_insert::send_data():
            if a values is supplied for AUTO_INCREMENT column
               table->auto_increment_field_not_null= TRUE
             else
               table->auto_increment_field_not_null= FALSE
             if (error)
               return 1; *
             if (table->auto_increment_field_not_null == FALSE)
               ...
             table->auto_increment_field_not_null == FALSE 
        }
      <-- table returned to table cache and later retrieved by open_table: 
      open_table():
        assert(table->auto_increment_field_not_null)
      
      
      mysql-test/r/trigger.result:
        Bug#44653: Test result
      mysql-test/t/trigger.test:
        Bug#44653: Test case
      sql/sql_insert.cc:
        Bug#44653: Fix: Make sure to unset this field before returning in case of error
      543885d1
  2. 10 Jun, 2009 3 commits
    • Davi Arnaut's avatar
      Merge from mysql-5.0-bugteam. · eac6619f
      Davi Arnaut authored
      eac6619f
    • Davi Arnaut's avatar
      Bug#41190: shared memory connections do not work in Vista, if server started from cmdline · afacea4d
      Davi Arnaut authored
      Backport to MySQL 5.0/1 fix by Vladislav Vaintroub:
      
      In Vista and later and also in when using terminal services, when
      server is started from  command line, client cannot connect to it
      via shared memory protocol.
      
      This is a regression introduced when  Bug#24731 was fixed.  The
      reason is that client is trying to attach to shared memory using
      global kernel object  namespace (all kernel objects are prefixed
      with Global\). However, server started from the command line in
      Vista and later will create shared memory and events using current
      session namespace. Thus, client is unable to find the server and
      connection fails.
      
      The fix for the client is to first try to find server using "local"
      names  (omitting Global\  prefix) and only if server is not found,
      trying global namespace.
      afacea4d
    • Philip Stoev's avatar
      Bug #29971 status.test fails · d98dee2c
      Philip Stoev authored
      This test uses SHOW STATUS and the like, which may be unstable in the face
      of logging to table, since the CSV handler is actively executing operations
      and thus incrementing the counters.
      
      Fixed by disabling logging to table for the duration of the test and restoring
      it afterwards. This causes various counters to properly start counting from zero
      and never advance due to CSV operations.
      d98dee2c
  3. 09 Jun, 2009 8 commits
  4. 08 Jun, 2009 5 commits
  5. 07 Jun, 2009 1 commit
    • Gleb Shchepa's avatar
      Bug #44886: SIGSEGV in test_if_skip_sort_order() - · ed7f0f30
      Gleb Shchepa authored
                  uninitialized variable used as subscript
      
      Grouping select from a "constant" InnoDB table (a table
      of a single row) joined with other tables caused a crash.
      
      
      mysql-test/r/innodb_mysql.result:
        Added test case for bug bug #44886.
      mysql-test/t/innodb_mysql.test:
        Added test case for bug bug #44886.
      sql/sql_select.cc:
        Bug #44886: SIGSEGV in test_if_skip_sort_order() -
                    uninitialized variable used as subscript
        
        1. The test_if_order_by_key function returned unitialized
           used_key_parts parameter in case of a "constant" InnoDB
           table. Calling function uses this parameter values as
           an array index, thus sometimes it caused a crash.
           The test_if_order_by_key function has been modified
           to set used_key_parts to 0 (no need for ordering).
        
        2. The test_if_skip_sort_order function has been
           modified to accept zero used_key_parts value and
           to prevent an array access by negative index.
      ed7f0f30
  6. 06 Jun, 2009 7 commits
  7. 05 Jun, 2009 15 commits