1. 11 Sep, 2014 1 commit
    • Michael Widenius's avatar
      MDEV-6255 DUPLICATE KEY Errors on SELECT .. GROUP BY that uses temporary and filesort. · c4f5326b
      Michael Widenius authored
      The problem was that my_hash_sort didn't properly delete end-space characters properly, so strings that should compare
      identically was seen as different strings.  (Space was handled correctly, but not NBSP)
      This caused duplicate key errors when a heap table was converted to Aria as part of overflow in group by.
      
      Fixed by removing all characters that compares as end space when creating a hash.
      
      Other things:
      - Fixed that --sorted_results also works for errors in mysqltest.
      - Speed up hash by not comparing strings that has different hash.
      - Speed up many my_hash_sort functions by using registers to calculate hash instead of pointers.
        This was previously done for some functions, but not for all.
      - Made a macro of the hash function, to simplify code and to be able to experiment with new hash functions.
      
      
      
      
      
      
      
      client/mysqltest.cc:
        Fixed that --sorted_results also works for error messages.
      mysql-test/r/ctype_partitions.result:
        New test to ensure that partitions on hash works
      mysql-test/suite/multi_source/gtid.result:
        Updated result
      mysql-test/suite/multi_source/gtid.test:
        Test that --sorted_result works for error messages
      mysql-test/suite/multi_source/gtid_ignore_duplicates.result:
        Updated result
      mysql-test/suite/multi_source/gtid_ignore_duplicates.test:
        Updated result
      mysql-test/suite/multi_source/load_data.result:
        Updated result
      mysql-test/suite/multi_source/load_data.test:
        Updated result
      mysql-test/t/ctype_partitions.test:
        New test to ensure that partitions on hash works
      storage/heap/hp_write.c:
        Speed up hash by not comparing strings that has different hash.
      storage/maria/ma_check.c:
        Extra debug
      strings/ctype-bin.c:
        Use macro for hash function
      strings/ctype-latin1.c:
        Use macro for hash function
        Use registers to calculate hash (speedup)
      strings/ctype-mb.c:
        Use macro for hash function
        Use registers to calculate hash (speedup)
      strings/ctype-simple.c:
        Use macro for hash function
        Use same variable names as in other my_hash_sort functions.
        Update my_hash_sort_simple() to properly remove end space (patch by Bar)
      strings/ctype-uca.c:
        Ignore duplicated space inside strings and end space in my_hash_sort_uca(). This fixed MDEV-6255
        Use macro for hash function
        Use registers to calculate hash (speedup)
      strings/ctype-ucs2.c:
        Use macro for hash function
        Use registers to calculate hash (speedup)
      strings/ctype-utf8.c:
        Use macro for hash function
        Use registers to calculate hash (speedup)
      strings/strings_def.h:
        Made a macro of the hash function, to simplify code and to be able to experiment with new hash functions.
      c4f5326b
  2. 09 Sep, 2014 1 commit
  3. 08 Sep, 2014 1 commit
    • Michael Widenius's avatar
      Fixed two bugs with CREATE OR REPLACE and LOCK TABLES: · 9c79227c
      Michael Widenius authored
      MDEV-6560 Assertion `! is_set() ' failed in Diagnostics_area::set_ok_status on killing CREATE OR REPLACE
      MDEV-6525 Assertion `table->pos_in_locked _tables == __null || table->pos_in_locked_tables->table = table' failed in mark_used_tables_as_free_for_reuse, locking problems and binlogging problems on CREATE OR REPLACE under lock.
       
      
      mysql-test/r/create_or_replace.result:
        Added test for MDEV-6560
      mysql-test/t/create_or_replace.test:
        Added test for MDEV-6560
      mysql-test/valgrind.supp:
        Added suppression for OpenSuse 12.3
      sql/sql_base.cc:
        More DBUG
      sql/sql_class.cc:
        Changed that thd_sqlcom_can_generate_row_events() does not report that CREATE OR REPLACE is generating row events.
        This is safe as this function is only used by InnoDB/XtraDB to check if a query is generating row events as part of another transaction. As CREATE is always run as it's own transaction, this isn't a problem.
        This fixed MDEV-6525.
      sql/sql_table.cc:
        Remember if reopen_tables() generates an error (which can only happen in case of KILL).
        This fixed MDEV-6560
      9c79227c
  4. 07 Sep, 2014 4 commits
  5. 06 Sep, 2014 2 commits
  6. 04 Sep, 2014 4 commits
    • Alexander Barkov's avatar
      - MDEV-6695 Bad column name for UCS2 string literals · 9392d0e2
      Alexander Barkov authored
        The Item_string constructors called set_name() on the source string,
        which was wrong because in case of UCS2/UTF16/UTF32 the source value
        might be a not well formed string (e.g. have incomplete leftmost character).
        Now set_name() is called on str_value after its copied 
        (with optionally left zero padding) from the source string.
      - MDEV-6694 Illegal mix of collation with a PS parameter
        Item_param::convert_str_value() did not set repertoire.
        Introducing a new structure MY_STRING_METADATA to collect
        character length and repertoire of a string in a single loop,
        to avoid two separate loops. Adding a new class Item_basic_value::Metadata
        as a convenience wrapper around MY_STRING_METADATA, to reuse the
        code between Item_string and Item_param.
      9392d0e2
    • Alexander Barkov's avatar
      Creating a new class in_string::Item_string_for_in_vector · bf4347eb
      Alexander Barkov authored
      and moving set_value() from Item_string to Item_string_for_in_vector,
      as set_value() updates the members incompletely
      (e.g. does not update max_length),
      so it was dangerous to have set_value() available in Item_string.
      bf4347eb
    • Alexander Barkov's avatar
      Using more Item_string_sys · c9d3b27d
      Alexander Barkov authored
      c9d3b27d
    • Alexander Barkov's avatar
      MDEV-6044 MySQL BUG#12735829 - SPACE() FUNCTION WARNING REFERS TO REPEAT() IN... · 58eb51d1
      Alexander Barkov authored
      MDEV-6044 MySQL BUG#12735829 - SPACE() FUNCTION WARNING REFERS TO REPEAT() IN ER_WARN_ALLOWED_PACKET_OVERFLOWED
      Merged from 5.6
      
      58eb51d1
  7. 03 Sep, 2014 2 commits
  8. 02 Sep, 2014 6 commits
  9. 01 Sep, 2014 1 commit
    • Alexander Barkov's avatar
      MDEV-6661 PI() does not work well in UCS2/UTF16/UTF32 context · 1427e1db
      Alexander Barkov authored
      MDEV-6666 Malformed result for CONCAT(utf8_column, binary_string)
      
      Item_static_string_func::safe_charset_converter() and 
      Item_hex_string::safe_charset_converter() did not
      handle character sets with mbminlen>1 properly, as well as
      did not handle conversion from binary to multi-byte well.
      
      Introducing Item::const_charset_converter(), to reuse it in a number
      of Item_*::safe_charset_converter().
      1427e1db
  10. 25 Aug, 2014 1 commit
    • Jan Lindström's avatar
      MDEV-6590: InnoDB recover ends in signal 11 · 18b307a7
      Jan Lindström authored
      Analysis: When database is migrated from 5.5 or earlier and
      database needs crash recovery, there is possibility that
      SYS_DATAFILES system table does not exists, but
      crash recovery in function dict_check_tablespaces_and_store_max_id()
      assumes that SYS_DATAFILES exists.
      
      Fix: If SYS_DATAFILES does not exists, create it before
      we end up to function dict_check_tablespaces_and_store_max_id()
      on crash recovery.
      18b307a7
  11. 21 Aug, 2014 1 commit
  12. 11 Aug, 2014 2 commits
  13. 10 Aug, 2014 1 commit
    • Sergei Golubchik's avatar
      sanity · b5ebc211
      Sergei Golubchik authored
      mysql-test/mysql-test-run.pl:
        fix the message
      b5ebc211
  14. 20 Aug, 2014 2 commits
  15. 19 Aug, 2014 1 commit
    • Kristian Nielsen's avatar
      MDEV-6321: close_temporary_tables() in format description event not serialised correctly · 453c29c3
      Kristian Nielsen authored
      Follow-up patch, fixing a possible deadlock issue.
      
      If the master crashes in the middle of an event group, there can be an active
      transaction in a worker thread when we encounter the following master restart
      format description event. In this case, we need to notify that worker thread
      to abort and roll back the partial event group. Otherwise a deadlock occurs:
      the worker thread waits for the commit that never arrives, and the SQL driver
      thread waits for the worker thread to complete its event group, which it never
      does.
      453c29c3
  16. 08 Aug, 2014 3 commits
  17. 07 Aug, 2014 7 commits
    • Sergei Golubchik's avatar
      merge · ffd9c77e
      Sergei Golubchik authored
      ffd9c77e
    • Sergei Golubchik's avatar
      crash in main.views (and other view + PS tests) · e19b07e6
      Sergei Golubchik authored
      When a view is merged, mark its select_lex as already optimized, otherwise
      its where clause (which doesn't have to be a valid Item after merging)
      might be accessed later. But don't do that for inserts (where a view cannot
      be simply merged, if one later needs to insert into it).
      e19b07e6
    • Olivier Bertrand's avatar
      - Commiting merge files · f835588c
      Olivier Bertrand authored
      f835588c
    • Sergei Golubchik's avatar
    • Sergei Golubchik's avatar
      5.5.39 merge · 6fb17a06
      Sergei Golubchik authored
      6fb17a06
    • Olivier Bertrand's avatar
      This is a major update that fixes most of the issues and bugs that · 0219ac1e
      Olivier Bertrand authored
      have been created by the last addition of new CONNECT features.
      The version previous to this one is a preliminary test version and
      should not be distributed.
      
      - Handle indexed UPDATE/DELETE. Previously this was just tested and
        an error message send when it could not be done. Now CONNECT can
        do it in all the cases. It is done by a MRR like tchnique by making
        a list of all update or delete to do, sort them, then execute them.
      modified:
        storage/connect/array.cpp
        storage/connect/array.h
        storage/connect/filamap.cpp
        storage/connect/filamap.h
        storage/connect/filamdbf.cpp
        storage/connect/filamfix.cpp
        storage/connect/filamfix.h
        storage/connect/filamtxt.cpp
        storage/connect/filamtxt.h
        storage/connect/filamvct.cpp
        storage/connect/filamvct.h
        storage/connect/filamzip.cpp
        storage/connect/filamzip.h
        storage/connect/global.h
        storage/connect/ha_connect.cc
        storage/connect/ha_connect.h
      
      - Differenciate Cardinality that returns a true or estimated table size
        and GetMaxSize that return a value equal or greater than the table
        row number. This fixes the errors of non matching opt files.
      modified:
        storage/connect/connect.cc
        storage/connect/tabdos.cpp
        storage/connect/tabdos.h
        storage/connect/tabfix.cpp
        storage/connect/table.cpp
        storage/connect/tabmac.h
        storage/connect/tabmysql.cpp
        storage/connect/tabmysql.h
        storage/connect/tabodbc.cpp
        storage/connect/tabodbc.h
        storage/connect/tabpivot.h
        storage/connect/tabtbl.cpp
        storage/connect/tabtbl.h
        storage/connect/tabutil.cpp
        storage/connect/tabutil.h
        storage/connect/tabwmi.h
        storage/connect/xtable.h
      
      - Fix some errors and issues when making index and opt files.
        Erase opt and index files for void tables.
        Fix wrong calculation of Block and Last in MakeBlockValues.
        Invalidate indexes before making opt file.
        Fully handle blocked variable tables. Make opt file for blocked
        variable tables even when they have no optimised colums.
      modified:
        storage/connect/tabdos.cpp
        storage/connect/xindex.h
      
      - Fix some errors making index
        Return an error when the allocation is too small (should not
        really occur now that GetMaxSize is sure)
        Don't use XXROW index for DBF tables because of soft deleted lines.
      modified:
        storage/connect/xindex.cpp
      
      - Typo
      modified:
        storage/connect/macutil.cpp
        storage/connect/tabdos.h
        storage/connect/tabsys.cpp
        storage/connect/tabsys.h
      0219ac1e
    • Nirbhay Choubey's avatar
      8035c986