1. 03 Jun, 2010 2 commits
    • Jimmy Yang's avatar
      Remove the unneccesary innobase_strcasecmp() in · cf8de253
      Jimmy Yang authored
      innobase_get_mysql_key_number_for_index() created as a bug fix for
      #53592 since dict_table_t could already unique identify
      the table.
      cf8de253
    • Marko Mäkelä's avatar
      Merge a change from mysql-5.1-innodb: · 9cd41392
      Marko Mäkelä authored
      ------------------------------------------------------------
      revno: 3500
      revision-id: marko.makela@oracle.com-20100603095032-v5ptkkzt1bhz0m1d
      parent: marko.makela@oracle.com-20100603094859-8cibt7xns239jjvc
      committer: Marko Mäkelä <marko.makela@oracle.com>
      branch nick: 5.1-innodb
      timestamp: Thu 2010-06-03 12:50:32 +0300
      message:
        Move some InnoDB tests to mysql-test/suite/innodb.
      9cd41392
  2. 02 Jun, 2010 13 commits
    • Vasil Dimov's avatar
    • Vasil Dimov's avatar
    • Vasil Dimov's avatar
      1a5cf261
    • Alexander Barkov's avatar
      Bug#52520 Difference in tinytext utf column metadata · 56c3b980
      Alexander Barkov authored
            Problems:
            - regression (compating to version 5.1) in metadata for BLOB types
            - inconsistency between length metadata in server and embedded for BLOB types
            - wrong max_length calculation in items derived from BLOB columns
           @ libmysqld/lib_sql.cc
              Calculating length metadata in embedded similary to server version,
              using new function char_to_byte_length_safe().
           @ mysql-test/r/ctype_utf16.result
              Adding tests
           @ mysql-test/r/ctype_utf32.result
              Adding tests
           @ mysql-test/r/ctype_utf8.result
              Adding tests
           @ mysql-test/r/ctype_utf8mb4.result
              Adding tests
           @ mysql-test/t/ctype_utf16.test
              Adding tests
           @ mysql-test/t/ctype_utf32.test
              Adding tests
           @ mysql-test/t/ctype_utf8.test
              Adding tests
           @ mysql-test/t/ctype_utf8mb4.test
              Adding tests
           @ sql/field.cc
              Overriding char_length() for Field_blob:
              unlike in generic Item::char_length() we don't
              divide to mbmaxlen for BLOBs.
           @ sql/field.h
              - Making Field::char_length() virtual
              - Adding prototype for Field_blob::char_length()
           @ sql/item.h
              - Adding new helper function char_to_byte_length_safe()
              - Using new function
           @ sql/protocol.cc
              Using new function char_to_byte_length_safe().
      
          modified:
            libmysqld/lib_sql.cc
            mysql-test/r/ctype_utf16.result
            mysql-test/r/ctype_utf32.result
            mysql-test/r/ctype_utf8.result
            mysql-test/r/ctype_utf8mb4.result
            mysql-test/t/ctype_utf16.test
            mysql-test/t/ctype_utf32.test
            mysql-test/t/ctype_utf8.test
            mysql-test/t/ctype_utf8mb4.test
            sql/field.cc
            sql/field.h
            sql/item.h
            sql/protocol.cc
      56c3b980
    • Vasil Dimov's avatar
      Fix the failing innodb.innodb test: · acf187a2
      Vasil Dimov authored
        innodb.innodb                            [ fail ]
                Test ended at 2010-06-02 15:04:06
        
        CURRENT_TEST: innodb.innodb
        --- /usr/w/mysql-trunk-innodb/mysql-test/suite/innodb/r/innodb.result	2010-05-23 23:10:26.576407000 +0300
        +++ /usr/w/mysql-trunk-innodb/mysql-test/suite/innodb/r/innodb.reject	2010-06-02 15:04:05.000000000 +0300
        @@ -2648,7 +2648,7 @@
         create table t4 (s1 char(2) binary,primary key (s1)) engine=innodb;
         insert into t1 values (0x41),(0x4120),(0x4100);
         insert into t2 values (0x41),(0x4120),(0x4100);
        -ERROR 23000: Duplicate entry 'A\x00' for key 'PRIMARY'
        +ERROR 23000: Duplicate entry 'A' for key 'PRIMARY'
         insert into t2 values (0x41),(0x4120);
      
      The change in the printout was introduced in:
      
        ------------------------------------------------------------
        revno: 3008.6.2
        revision-id: sergey.glukhov@sun.com-20100527160143-57nas8nplzpj26dz
        parent: sergey.glukhov@sun.com-20100527155443-24vqi9o8rpnkyci7
        committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Thu 2010-05-27 20:01:43 +0400
        message:
          Bug#52430 Incorrect key in the error message for duplicate key error involving BINARY type
          For BINARY(N) strip trailing zeroes to make the error message nice-looking
        
         @ mysql-test/r/errors.result
            test case
        
         @ mysql-test/r/type_binary.result
            result fix
        
         @ mysql-test/t/errors.test
            test case
        
         @ sql/key.cc
            For BINARY(N) strip trailing zeroes to make the error message nice-looking
      
      and its author (Sergey) did not notice the test failure because that test
      has been disabled in his tree.
      acf187a2
    • Marko Mäkelä's avatar
      a887c0c2
    • Marko Mäkelä's avatar
      Merge from mysql-5.1-innodb: · 823439c4
      Marko Mäkelä authored
      ------------------------------------------------------------
      revno: 3495
      committer: Marko Mäkelä <marko.makela@oracle.com>
      branch nick: 5.1-innodb
      timestamp: Wed 2010-06-02 13:37:14 +0300
      message:
        Bug#53674: InnoDB: Error: unlock row could not find a 4 mode lock on the record
      
        In semi-consistent read, only unlock freshly locked non-matching records.
      
        lock_rec_lock_fast(): Return LOCK_REC_SUCCESS,
        LOCK_REC_SUCCESS_CREATED, or LOCK_REC_FAIL instead of TRUE/FALSE.
      
        enum db_err: Add DB_SUCCESS_LOCKED_REC for indicating a successful
        operation where a record lock was created.
      
        lock_sec_rec_read_check_and_lock(),
        lock_clust_rec_read_check_and_lock(), lock_rec_enqueue_waiting(),
        lock_rec_lock_slow(), lock_rec_lock(), row_ins_set_shared_rec_lock(),
        row_ins_set_exclusive_rec_lock(), sel_set_rec_lock(),
        row_sel_get_clust_rec_for_mysql(): Return DB_SUCCESS_LOCKED_REC if a
        new record lock was created. Adjust callers.
      
        row_unlock_for_mysql(): Correct the function documentation.
      
        row_prebuilt_t::new_rec_locks: Correct the documentation.
      823439c4
    • Marko Mäkelä's avatar
      Merge from mysql-5.1-innodb: · 765c195e
      Marko Mäkelä authored
      ------------------------------------------------------------
      revno: 3493
      revision-id: marko.makela@oracle.com-20100602101940-60x32xiivtqj9va1
      parent: marko.makela@oracle.com-20100601135802-hgplcpr8089ura8g
      committer: Marko Mäkelä <marko.makela@oracle.com>
      branch nick: 5.1-innodb
      timestamp: Wed 2010-06-02 13:19:40 +0300
      message:
        fil_print_orphaned_tablespaces(): Unused function, remove.
      765c195e
    • Jimmy Yang's avatar
    • Jonathan Perkin's avatar
      Revert Oracle Enterprise Linux changes. · 2400a20c
      Jonathan Perkin authored
      2400a20c
    • Magnus Blåudd's avatar
      Merge trunk-bug53983 -> trunk-bugfixing · f142f5bf
      Magnus Blåudd authored
      f142f5bf
    • Magnus Blåudd's avatar
      Bug#53983 Placeholder for MASTER_BIND in master.info · 3b1cc6e3
      Magnus Blåudd authored
       - Reserve line 17 in master.info for master_bind which has been
         added in MySQL Cluster 6.3
       - move the line for "list of server id for ignorable servers" to line 18
      3b1cc6e3
    • Jimmy Yang's avatar
      Fix bug #54159 InnoDB: New warnings on Windows. Provide "signed/unsigned" · 987a04b4
      Jimmy Yang authored
      parameter to virtual function store() for longlong data type.
      
      rb://371 approved by Sunny.
      987a04b4
  3. 01 Jun, 2010 19 commits
    • Alfranio Correia's avatar
      BUG#50479 DDL stmt on row-only/stmt-only tables generate spurious binlog_format · 02fc237a
      Alfranio Correia authored
      errors
                  
      In the fix of BUG#39934 in 5.1-rep+3, errors are generated when
      binlog_format=row and a statement modifies a table restricted to
      statement-logging (ER_BINLOG_ROW_MODE_AND_STMT_ENGINE); or if
      binlog_format=statement and a statement modifies a table restricted to
      row-logging (ER_BINLOG_STMT_MODE_AND_ROW_ENGINE).
                  
      However, some DDL statements that lock tables (e.g. ALTER TABLE,
      CREATE INDEX and CREATE TRIGGER) were causing spurious errors,
      although no row might be inserted into the binary log.
                  
      To fix the problem, we tagged statements that may generate
      rows into the binary log and thence the warning messages are
      only printed out when the appropriate conditions hold and rows
      might be changed.
      02fc237a
    • Alfranio Correia's avatar
    • Alfranio Correia's avatar
      Post-merge fix for BUG#53421. · 627e829e
      Alfranio Correia authored
      627e829e
    • Alfranio Correia's avatar
    • Alfranio Correia's avatar
      BUG#53421 Part of transaction not written in binlog after deadlock, replication · 76faface
      Alfranio Correia authored
      breaks
            
      When a "CREATE TEMPORARY TABLE SELECT * FROM" was executed the OPTION_KEEP_LOG was
      not set into the thd->variables.option_bits. For that reason, if the transaction
      had updated only transactional engines and was rolled back at the end (.e.g due to
      a deadlock) the changes were not written to the binary log, including the creation
      of the temporary table.
            
      To fix the problem, we have set the OPTION_KEEP_LOG into the
      thd->variables.option_bits when a "CREATE TEMPORARY TABLE
      SELECT * FROM" is executed.
      76faface
    • Marko Mäkelä's avatar
      Merge a change from mysql-5.1-innodb: · 1eae95b4
      Marko Mäkelä authored
        ------------------------------------------------------------
        revno: 3491
        revision-id: marko.makela@oracle.com-20100601134335-ccthwwru23kn09qw
        parent: marko.makela@oracle.com-20100601120751-1uq7bbta5n7ts0qr
        committer: Marko Mäkelä <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-06-01 16:43:35 +0300
        message:
          Bug#48197: Concurrent rw_lock_free may cause assertion failure
      
          rw_lock_t: Remove magic_n unless UNIV_DEBUG is defined.
          rw_lock_free(): Invalidate magic_n only after removing from rw_lock_list.
      1eae95b4
    • Alfranio Correia's avatar
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk-innodb. · 9ab22b4e
      Alexander Nozdrin authored
      9ab22b4e
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-trunk-bugfixing. · 522d9ac3
      Alexander Nozdrin authored
      Due to a BZR bug, that merge was done by the following command:
      bzr merge -r 'revid:tor.didriksen@sun.com-20100527074248-6qtv0p1ugy6o1hjo..' <mysql-trunk-bugfixing path>
      522d9ac3
    • Marko Mäkelä's avatar
      Merge a change from mysql-5.1-innodb: · ce461570
      Marko Mäkelä authored
        ------------------------------------------------------------
        revno: 3490
        revision-id: marko.makela@oracle.com-20100601120751-1uq7bbta5n7ts0qr
        parent: marko.makela@oracle.com-20100601120521-q48hk05ne4j1s2o0
        committer: Marko Mäkelä <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-06-01 15:07:51 +0300
        message:
          Minor cleanup.
      
          lock_rec_unlock(): Cache first_lock and rewrite while() loops as for().
      
          btr_cur_optimistic_update(): Use common error handling return.
      
          row_create_prebuilt(): Add Valgrind instrumentation.
      ce461570
    • Marko Mäkelä's avatar
      Merge a change from mysql-5.1-innodb: · 51414427
      Marko Mäkelä authored
        ------------------------------------------------------------
        revno: 3488
        revision-id: marko.makela@oracle.com-20100601103738-upm8awahesmeh9dr
        parent: vasil.dimov@oracle.com-20100531163540-9fu3prbn2asqwdi5
        committer: Marko Mäkelä <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-06-01 13:37:38 +0300
        message:
          Bug#53812: assert row/row0umod.c line 660 in txn rollback after crash recovery
          row_undo_mod_upd_exist_sec(): Tolerate a failure to build the index entry
          for a DYNAMIC or COMPRESSED table during crash recovery.
      51414427
    • Marko Mäkelä's avatar
      Merge from mysql-5.1-innodb: · ea53f9af
      Marko Mäkelä authored
        ------------------------------------------------------------
        revno: 3478.1.3
        revision-id: marko.makela@oracle.com-20100525123748-pmpehbg29oyhc1ns
        parent: marko.makela@oracle.com-20100524114349-5kaw52sz0yh4szkb
        committer: Marko Mäkelä <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-05-25 15:37:48 +0300
        message:
          Suppress bogus Valgrind warnings about buf_buddy_relocate()
          accessing uninitialized memory in Valgrind-instrumented builds.
      ea53f9af
    • Marko Mäkelä's avatar
      Merge from mysql-5.1-innodb: · 2b47efb6
      Marko Mäkelä authored
        ------------------------------------------------------------
        revno: 3478.1.4
        revision-id: marko.makela@oracle.com-20100525125352-hgafpmqhrrj7pv5i
        parent: marko.makela@oracle.com-20100525123748-pmpehbg29oyhc1ns
        committer: Marko Mäkelä <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-05-25 15:53:52 +0300
        message:
          row_search_for_mysql(): Add assertions to track down Bug #53627.
      2b47efb6
    • Jonathan Perkin's avatar
      Merge · 6962ef4d
      Jonathan Perkin authored
      6962ef4d
    • Jonathan Perkin's avatar
      Add SELinux checks from distribution-specific spec file, missed in · 4eb6de1c
      Jonathan Perkin authored
      previous.
      
      Convert some shell bits to standard 2-space indent, 80 columns, etc.
      4eb6de1c
    • He Zhenxing's avatar
      Auto merge from trunk · bf8b7a23
      He Zhenxing authored
      bf8b7a23
    • He Zhenxing's avatar
      BUG#52748 Semi-Sync ACK packet isn't check for length · 1bcba618
      He Zhenxing authored
      Check the length and use strncpy to make the code safer.
      1bcba618
    • He Zhenxing's avatar
      BUG#52748 Semi-Sync ACK packet isn't check for length · 5725d230
      He Zhenxing authored
      Check the length and use strncpy to make the code safer.
      5725d230
    • Alexander Nozdrin's avatar
      eb51ac8b
  4. 31 May, 2010 6 commits
    • Vasil Dimov's avatar
      Fix Bug #53947 InnoDB: Assertion failure in thread 4224 in file .\sync\sync0sync.c line 324 · 04dfc8c8
      Vasil Dimov authored
      Destroy the rw-lock object before freeing the memory it is occupying.
      If we do not do this, then the mutex that is contained in the rw-lock
      object btr_search_latch_temp->mutex gets "freed" and subsequently
      mutex_free() from sync_close() hits a mutex whose memory has been
      freed and crashes.
      
      Approved by:	Heikki (via IRC)
      Discussed with:	Calvin
      04dfc8c8
    • Alexander Nozdrin's avatar
      Backport of · 893dced4
      Alexander Nozdrin authored
        - revid:sp1r-svoj@mysql.com/june.mysql.com-20080324111246-00461
        - revid:sp1r-svoj@mysql.com/june.mysql.com-20080414125521-40866
      
        BUG#35274 - merge table doesn't need any base tables, gives
                    error 124 when key accessed
      
        SELECT queries that use index against a merge table with empty
        underlying tables list may return with error "Got error 124 from
        storage engine".
      
        The problem was that wrong error being returned.
      893dced4
    • Alexey Botchkov's avatar
      test added for the bug #45052 · ec4033b5
      Alexey Botchkov authored
      ec4033b5
    • Gleb Shchepa's avatar
      Bug #38745: MySQL 5.1 optimizer uses filesort for ORDER BY · 3ca98f76
      Gleb Shchepa authored
                  when it should use index
      
      Sometimes the LEFT/RIGHT JOIN with an empty table caused an
      unnecessary filesort.
      
      Sample query, where t1.i1 is indexed and t3 is empty:
      
        SELECT t1.*, t2.* FROM t1 JOIN t2 ON t1.i1 = t2.i2
                             LEFT JOIN t3 ON t2.i2 = t3.i3
          ORDER BY t1.i1 LIMIT 5;
      
      The server erroneously used an item of empty outer-joined
      table as a common constant of a Item_equal (multi-equivalence
      expression).
      By the fix for the bug 16590 the constant status of such
      an item has been propagated to st_table::const_key_parts
      map bits related to other Item_equal argument-related
      key parts (those are obviously not constant in our case).
      As far as test_if_skip_sort_order function skips constant
      prefixes of testing keys, this caused an ignorance of
      available indices, since some prefixes were marked as
      constant by mistake.
      3ca98f76
    • Davi Arnaut's avatar
      5c72bee9
    • Tor Didriksen's avatar
      Bug #49829 Many "hides virtual function" warnings with SunStudio · a6129814
      Tor Didriksen authored
      Backport from mysql-pe (of those parts which have not been upmerged from 5.1)
      a6129814