1. 16 Sep, 2008 4 commits
    • Narayanan V's avatar
      updated tree with mysql-5.1-bugteam · 53e01083
      Narayanan V authored
      53e01083
    • Vladislav Vaintroub's avatar
      merge fix from 5.0-bugteam · f6e28fd5
      Vladislav Vaintroub authored
      f6e28fd5
    • Narayanan V's avatar
      Bug#38338: REPLACE causes last_insert_id() to return an incorrect value · d714d290
      Narayanan V authored
                        
      Fix the write_record function to record auto increment
      values in a consistent way.
      
      mysql-test/r/auto_increment.result:
        Updated the test result file with the output of the
        new test case added to verify this bug.
      mysql-test/t/auto_increment.test:
        Added a new test case to verify this bug.
      sql/sql_insert.cc:
        The algorithm for the write_record function
        in sql_insert.cc is (more emphasis given to
        the parts that deal with the autogenerated values)
        
        1) If a write fails
        
           1.1) save the autogenerated value to avoid 
                thd->insert_id_for_cur_row to become 0.
        
           1.2) <logic to handle INSERT ON DUPLICATE KEY
                UPDATE and REPLACE>
        
        2) record the first successful insert id.
        
        explanation of the failure
        --------------------------
        
        As long as 1.1) was executed 2) worked fine.
        
        1.1) was always executed when REPLACE worked 
             with the last row update optimization, but
             in cases where 1.1) was not executed 2)
             would fail and would result in the autogenerated
             value not being saved.
        
        solution
        --------
        
        repeat a check for thd->insert_id_for_cur_row 
        being zero similar to 1.1) before 2) and ensure
        that the correct value is saved.
      d714d290
    • Vladislav Vaintroub's avatar
      Bug#35987 - post-review fix · a4987b44
      Vladislav Vaintroub authored
      Correct usage of strncat() in get_symbol_path()
      
      3rd parameter to strncat is changed to be count of 
      remaining bytes in the output buffer minus 1.
      
      
      a4987b44
  2. 15 Sep, 2008 9 commits
    • Kristofer Pettersson's avatar
      Automerge · 4f3d241b
      Kristofer Pettersson authored
      4f3d241b
    • Patrick Crews's avatar
      merge of bug fix from parent · 0ba94594
      Patrick Crews authored
      0ba94594
    • Patrick Crews's avatar
      Bug#37938 Test "mysqldump" lacks various INSERT statements / values · f2ea5738
      Patrick Crews authored
      Merge of fixes from 5.0 -> 5.1
      Moved restoration of concurrent_insert's original value to the end of the 5.1 tests
      Re-recorded .result file to account for changes to test file.
      f2ea5738
    • Patrick Crews's avatar
      Bug#37938 Test "mysqldump" lacks various INSERT statements / values · ebd3a6e4
      Patrick Crews authored
      Moved fix for this bug to 5.0 as other mysqldump bugs seem tied to concurrent_insert being on
      Setting concurrent_insert off during this test as INSERTs weren't being 
      completely processed before the calls to mysqldump, resulting in failing tests.
      
      Altered .test file to turn concurrent_insert off during the test and to restore it
      to whatever the value was at the start of the test when complete.
      
      Re-recorded .result file to account for changes to variables in the test.
      ebd3a6e4
    • Patrick Crews's avatar
      Bug#39803 Test rpl.rpl_truncate_7ndb_2 failing · 7eb271ba
      Patrick Crews authored
      Fixed bad path in .test file
      Moved test to suite/rpl_ndb (per Cluster QA)
      Re-recorded .result file to updated expected results.
      7eb271ba
    • Vladislav Vaintroub's avatar
      merge fix for 35987 · 26c48a80
      Vladislav Vaintroub authored
      26c48a80
    • Vladislav Vaintroub's avatar
      Bug#35987 - crash report on windows doesn't resolve stack traces. · 5343b7ae
      Vladislav Vaintroub authored
      The problem here is that symbols can not be loaded, because symbol
      path is not set and  default path does not include the directory
      where PDB is located.
      
      The problem is _not_ reproducible on the same machine where
      mysqld.exe is built - if PDB is not found in the symbol path,
      dbghelp would fallback to fully qualified PDB path as given in the
      executable header and on the build host this will succeed.
      
      The solution is to calculate symbol path and pass it to SymInitialize()
      call.
      5343b7ae
    • Alexander Barkov's avatar
      Bug#35720 ucs2 + pad_char_to_full_length = failure · 94fad7c0
      Alexander Barkov authored
      Problem: with @@sql_mode=pad_char_to_full_length
      a CHAR column returned additional garbage
      after trailing space characters due to
      incorrect my_charpos() call.
      Fix: call my_charpos() with correct arguments.
      94fad7c0
    • Martin Skold's avatar
      bug #31231 mysql_alter_table() tries to drop a non-existing table · 08421a83
      Martin Skold authored
      bug#31233 mysql_alter_table() fails to drop UNIQUE KEY
      
      mysql-test/suite/ndb/r/ndb_alter_table.result:
        bug#31233 mysql_alter_table() fails to drop UNIQUE KEY: added test cases
      mysql-test/suite/ndb/t/ndb_alter_table.test:
        bug#31233 mysql_alter_table() fails to drop UNIQUE KEY: added test cases
      sql/ha_ndbcluster.cc:
        bug#31233 mysql_alter_table() fails to drop UNIQUE KEY: Removed check for non-pk
        tables, not needed when mysql_alter_table checks apropriate flags
      sql/mysql_priv.h:
        bug #31231  mysql_alter_table() tries to drop a non-existing table: added FRM_ONLY
        flag
      sql/sql_table.cc:
        bug #31231  mysql_alter_table() tries to drop a non-existing table
        Don't invoke handler for tables defined with FRM_ONLY flag.
        bug#31233 mysql_alter_table() fails to drop UNIQUE KEY
        When a table is defined without an explicit primary key
        mysql will choose the first found unique index defined over
        non-nullable fields (if such an index exists). This means
        that if such an index is added (the first) or dropped (the last)
        through an alter table, this equals adding or dropping a primary key.
        The implementation for on-line add/drop index did not consider
        this semantics. This patch ensures that only handlers with the
         correctly defined flags (see handler.h for explanation of the flags):
        HA_ONLINE_ADD_PK_INDEX
        HA_ONLINE_ADD_PK_INDEX_NO_WRITES
        HA_ONLINE_DROP_PK_INDEX
        HA_ONLINE_DROP_PK_INDEX_NO_WRITES
        are invoked for such on-line operations. All others handlers must
        perform a full (offline) alter table.
      08421a83
  3. 11 Sep, 2008 5 commits
  4. 10 Sep, 2008 7 commits
  5. 09 Sep, 2008 7 commits
    • Ramil Kalimullin's avatar
      Merge · 58a5d735
      Ramil Kalimullin authored
      58a5d735
    • Ramil Kalimullin's avatar
      Merge · eb2794d4
      Ramil Kalimullin authored
      eb2794d4
    • Martin Hansson's avatar
      Bug#35600: Auto merged. · cfd4c976
      Martin Hansson authored
      cfd4c976
    • Ramil Kalimullin's avatar
      Fix for bug#37526: asymertic operator <=> in trigger · 776793a9
      Ramil Kalimullin authored
      Problem: <=> operator may return wrong results 
      comparing NULL and a DATE/DATETIME/TIME value.
      
      Fix: properly check NULLs.
      
      
      mysql-test/r/type_datetime.result:
        Fix for bug#37526: asymertic operator <=> in trigger
          - test result.
      mysql-test/t/type_datetime.test:
        Fix for bug#37526: asymertic operator <=> in trigger
          - test case.
      sql/item_cmpfunc.cc:
        Fix for bug#37526: asymertic operator <=> in trigger
          - if is_nulls_eq is TRUE Arg_comparator::compare_datetime() 
        should return 1 only if both arguments are NULL.
      776793a9
    • Mats Kindahl's avatar
      Merging with 5.1-5.1.29-rc · ac1bcc20
      Mats Kindahl authored
      ac1bcc20
    • Martin Hansson's avatar
      Bug#35600: Security breach via view, I_S table and prepared · c0cfce21
      Martin Hansson authored
      statement/stored procedure
      
      View privileges are properly checked after the fix for bug no 
      36086, so the method TABLE_LIST::get_db_name() must be used 
      instead of field TABLE_LIST::db, as this only works for tables.
      Bug appears when accessing views in prepared statements.
      
      mysql-test/r/view_grant.result:
        Bug#35600: Extended existing test case.
      mysql-test/t/view_grant.test:
        Bug#35600: Extended existing test result.
      sql/sql_parse.cc:
        Bug#35600: Using method to retrieve database name instead of
        field.
      c0cfce21
    • Mats Kindahl's avatar
      Bug #39106: · 589355f0
      Mats Kindahl authored
      SUPER is not required to change binlog format for session
      
      A user without SUPER privileges can change the value of the
      session variable BINLOG_FORMAT, causing problems for a DBA.
      
      This changeset requires a user to have SUPER privileges to
      change the value of the session variable BINLOG_FORMAT, and
      not only the global variable BINLOG_FORMAT.
      
      
      mysql-test/suite/binlog/t/binlog_grant.test:
        Adding test to test grants needed for SQL_LOG_BIN and BINLOG_FORMAT.
      sql/set_var.cc:
        Adding code to check that user has SUPER permission
        needed to change the value of BINLOG_FORMAT.
      sql/set_var.h:
        Adding function sys_var_thd_binlog_format::check()
      589355f0
  6. 08 Sep, 2008 4 commits
  7. 05 Sep, 2008 4 commits
    • unknown's avatar
      Merge from mysql-5.0.68-release · 8106a731
      unknown authored
      8106a731
    • Georgi Kodinov's avatar
      Bug #38701: Crash in String::append when inserting duplicate empty strings an uft8 · cc26bc94
      Georgi Kodinov authored
      SET col
                        
      When reporting a duplicate key error the server was making incorrect assumptions 
      on what the state of the value string to include in the error is.
      
      Fixed by accessing the data in this string in a "safe" way (without relying on it
      having a terminating 0).
            
      Detected by code analysis and fixed a similar problem in reporting the foreign key
      duplicate errors.
      
      mysql-test/r/type_set.result:
        Bug #38701: test case
      mysql-test/t/type_set.test:
        Bug #38701: test case
      sql/handler.cc:
        Bug #38701: don't rely on the presence of a terminating 0 in the string
      cc26bc94
    • Narayanan V's avatar
      updating server version number · 860f74a8
      Narayanan V authored
      configure.in:
        change server version number to 5.1.29
      860f74a8
    • Narayanan V's avatar
      WL#4380: abi_check rule (using gcc -E) for storage engine API · 16291bfd
      Narayanan V authored
      Added a rule that uses gcc to generate preprocessor
      output (gcc -E) that can be compared to an already
      generated output using the diff utility.
      
      icheck has been removed and replaced by gcc -E
      because icheck does not support C++.
      
      Makefile.am:
        Added a rule for checking that the abi/api
        has not changed.
        
        The following rules are followed in the rule in makefile.am
        
        1) Generate preprocessor output for the
           files that need to be tested for abi/ 
           api changes. use -nostdinc to prevent
           generation of preprocessor output for
           system headers. This results in
           messages in stderr saying that these
           headers were not found. Redirect the
           stderr output to /dev/null to prevent
           seeing these messages.
        2) sed the output to 
           2.1) remove blank lines and lines that
                begin with "# "
           2.2) When gcc -E is run on the Mac OS 
                and solaris sparc platforms it
                introduces a line of output that
                shows up as a difference between
                the .pp and .out files. Remove
                these OS specific preprocessor
                text inserted by the preprocessor.
        3) diff the generated file and the canons
           (.pp files already in the repository).
        4) delete the .out file that is generated.
           If the diff fails, the generated file 
           is not removed. This will be useful
           for analysis of ABI differences (e.g.
           using a visual diff tool).
        
        A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files.
        
        e.g. If include/mysql/plugin.h has an ABI
             change then this rule would leave a
             <build directory>/abi_check.out file.
        
        A developer with a justified API change will then do a 
        
        mv <build directory>/abi_check.out include/mysql/plugin.pp 
        
        to replace the old canons with the new ones.
      configure.in:
        1) Removed the part of the file that was
           icheck related
        2) Added an entry for the configure
           variable DIFF
        3) Ensured that the abi_check rule is run
           only if gcc is available
      include/Makefile.am:
        1) Removed the icheck related entries
      include/mysql.h.pp:
        The pre-processor output cannon file for
        include/mysql.h
      include/mysql/plugin.h.pp:
        The pre-processor output cannon file
        for include/mysql/plugin.h
      include/mysql_h.ic:
        Removed the cannon file related to icheck.
      sql/mysql_priv.h.pp:
        The pre-processor output cannon file for
        sql/mysql_priv.h
      16291bfd