1. 01 Sep, 2010 1 commit
  2. 31 Aug, 2010 9 commits
    • Alexander Nozdrin's avatar
      99c7536c
    • Alexander Nozdrin's avatar
      Bug#55980 Character sets: supplementary character _bin ordering is wrong · 9e4928af
      Alexander Nozdrin authored
      Problem:
      - ORDER BY for utf8mb4_bin, utf16_bin and utf32_bin returned
        results in a wrong order, because old functions
        (supporting only BMP range) were used to handle these collations.
      - Additionally, utf16_bin did not sort supplementary characters
        between U+D700 and U+E000, as WL#1213 specification specified.
      
      include/m_ctype.h:
        Adding prototypes.
      mysql-test/include/ctype_filesort2.inc:
        Adding a new shared test file.
      mysql-test/t/ctype_utf8mb4.test:
        Adding tests.
      strings/ctype-ucs2.c:
        - Fixing my_strncoll[sp]_utf16_bin to compare
          binary representation instead of code points,
          to make columns with indexes sort correct.
        - Fixing my_collation_handler_utf32_bin and
          my_collation_handler_utf16_bin to use new
          functions.
      strings/ctype-utf8.c:
        - Adding my_strnxfrm[len]_unicode_fill_bin()
          to handle utf8mb4_bin, utf16_bin and utf32_bin,
          using 3 bytes per weight.
          This function also performs special reordering in case of utf16_bin.
        - Fixing my_collation_utf8mb4_bin handler to use the
          new function.
      9e4928af
    • Alexander Nozdrin's avatar
      Bug#27480 (Extend CREATE TEMPORARY TABLES privilege · cc0925f5
      Alexander Nozdrin authored
      to allow temp table operations) -- prerequisite patch #3.
      
      Rename open_temporary_table() to open_table_uncached().
      open_temporary_table() will be introduced in following patches
      to open temporary tables for a statement.
      cc0925f5
    • Alexander Nozdrin's avatar
      Remove check_merge_table_access(). · 587f776c
      Alexander Nozdrin authored
      check_merge_table_access() used to do two things:
        - set proper database for every merge table child;
        - check SELECT | UPDATE | DELETE for merge table children.
      
      Setting database is not needed anymore, since it's done
      on the parsing stage.
      
      Thus, check_merge_table_access() can be removed;
      needed privileges can be checked using check_table_access().
      587f776c
    • Alexander Nozdrin's avatar
      Polish check_grant(): name TABLE_LIST instance "tl", not "table". · bc834b7b
      Alexander Nozdrin authored
      This allows to avoid mixing it up with pointer to TABLE object
      which will be introduced to this function in one of upcoming
      patches.
      bc834b7b
    • Alexander Nozdrin's avatar
      Remove unused enum (enum open_table_mode). · b4badf80
      Alexander Nozdrin authored
      It was added by mistake during backport from 6.0.
      b4badf80
    • Alexander Nozdrin's avatar
      Bug#27480 (Extend CREATE TEMPORARY TABLES privilege · 65c5e8dc
      Alexander Nozdrin authored
      to allow temp table operations) -- prerequisite patch #2.
      
      Introduce a new form of find_temporary_table() function:
      find_temporary_table() by a table key. It will be used
      in further patches.
      
      Replace find_temporary_table(table_list->db, table_list->name)
      by more appropiate find_temporary_table(table_list) across
      the codebase.
      65c5e8dc
    • Alexander Nozdrin's avatar
      Fix TABLE::init() comment. · 13a2e39f
      Alexander Nozdrin authored
      13a2e39f
    • Dmitry Lenev's avatar
      Bug #56137 "Assertion `thd->lock == 0' failed on upgrading · cddb976f
      Dmitry Lenev authored
      from 5.1.50 to 5.5.6".
      
      Debug builds of the server aborted due to an assertion
      failure when DROP DATABASE statement was run on an
      installation which had outdated or corrupt mysql.proc table.
      Particularly this affected the mysql_upgrade tool which is
      run as part of 5.1 to 5.5 upgrade.
      
      The problem was that sp_drop_db_routines(), which was invoked
      during dropping of the database, could have returned without
      closing and unlocking mysql.proc table in cases when this
      table was not up-to-date with the current server. As a result
      further attempt to open and lock the mysql.event table, which
      was necessary to complete dropping of the database, ended up
      with an assert.
      
      This patch solves this problem by ensuring that
      sp_drop_db_routines() always closes mysql.proc table and
      releases metadata locks on it. This is achieved by changing
      open_proc_table_for_update() function to close tables and
      release metadata locks acquired by it in case of failure.
      This step also makes behavior of the latter function
      consistent with behavior of open_proc_table_for_read()/
      open_and_lock_tables().
      
      
      Test case for this bug was added to sp-destruct.test.
      cddb976f
  3. 30 Aug, 2010 2 commits
    • Magnus Blåudd's avatar
      Bug#56117 ha_ndbcluster_tables.h included by mysqldump but not used · 8c8080ad
      Magnus Blåudd authored
       - Remove include of ha_ndbcluster_tables.h from mysqldump.c
      8c8080ad
    • unknown's avatar
      Bug #54579 Wrong unsafe warning for INSERT DELAYED in SBR · 89f3fec1
      unknown authored
            
      The lock_type is upgrade to TL_WRITE from TL_WRITE_DELAYED for
      INSERT DELAYED when inserting multi values in one statement.
      It's safe. But it causes an unsafe warning in SBR.
            
      Make INSERT DELAYED safe by logging it as INSERT without DELAYED.
      
      
      mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
        Updated the test file to test multi INSERT DELAYED statement
        is no longer causes an unsafe warning and binlogged as INSERT
        without DELAYED.
      mysql-test/extra/rpl_tests/create_recursive_construct.inc:
        Updated for the patch of bug#54579.
      mysql-test/suite/binlog/r/binlog_row_binlog.result:
        Updated for the patch of bug#54579.
      mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result:
        Test result for BUG#54579.
      mysql-test/suite/binlog/r/binlog_stm_binlog.result:
        Updated for the patch of bug#54579.
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Updated for the patch of bug#54579.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Updated for the patch of bug#54579.
      sql/sql_insert.cc:
        Added code to genetate a new query string for removing
        DELAYED keyword for multi INSERT DEALAYED statement.
      sql/sql_yacc.yy:
        Added code to record the DELAYED keyword position and remove the setting
        of unsafe statement for INSERT DELAYED statement
      89f3fec1
  4. 28 Aug, 2010 1 commit
  5. 27 Aug, 2010 4 commits
    • Marc Alff's avatar
      local merge · a5aad2e7
      Marc Alff authored
      a5aad2e7
    • Alexander Nozdrin's avatar
      Bug#27480 (Extend CREATE TEMPORARY TABLES privilege · 4fcb173c
      Alexander Nozdrin authored
      to allow temp table operations) -- prerequisite patch #1.
        
      Move a piece of code that initialiazes TABLE instance
      after it was successfully opened into a separate function.
      This function will be reused in the following patches.
      4fcb173c
    • Sergey Vojtovich's avatar
      7e4625d1
    • Sergey Vojtovich's avatar
      BUG#52821 - plugin_ftparser.h and plugin_audit.h are · 8c05b085
      Sergey Vojtovich authored
                  not tested by ABI check
      
      plugin_audit.h and plugin_ftparser.h are now subject
      for ABI check. plugin.h is now tested implicitly.
      
      Also fixed broken ABI check cmake rules.
      
      Makefile.am:
        plugin_audit.h and plugin_ftparser.h are now subject
        for ABI check. plugin.h is now tested implicitly.
      cmake/abi_check.cmake:
        plugin_audit.h and plugin_ftparser.h are now subject
        for ABI check. plugin.h is now tested implicitly.
        
        Also fixed broken ABI check rules: -DMYSQL_ABI_CHECK is
        compiler (not cmake) definition, incorrect definitions
        were passed to do_abi_check.cmake for abi_check_all rule.
      cmake/do_abi_check.cmake:
        Inform sources that we do ABI check.
      include/mysql/plugin.h.pp:
        plugin.h is now tested implicitly.
      include/mysql/plugin_audit.h.pp:
        plugin_audit.h is now subject for ABI check.
      include/mysql/plugin_ftparser.h.pp:
        plugin_ftparser.h is now subject for ABI check.
      8c05b085
  6. 26 Aug, 2010 8 commits
    • Marc Alff's avatar
      local merge · 54db3cb6
      Marc Alff authored
      54db3cb6
    • Christopher Powers's avatar
      Bug# 53874 "SETUP_INSTRUMENTS.TIMED='NO' should not change TIMER_WAIT · 7e0cc48e
      Christopher Powers authored
      Handle combined instrument states of ENABLED and/or TIMED:
      
      ENABLED TIMED
      1 1 Aggregate stats, increment counter
      1 0 Increment counter
      0 1 Do nothing
      0 0 Do nothing 
      
      storage/perfschema/pfs.cc:
        Aggregate stats only if state is both ENABLED and TIMED. If ENABLED
        but not TIMED, only increment the value counter.
      storage/perfschema/pfs_stat.h:
        Split aggregate and counter increment into separate
        methods for performance.
      7e0cc48e
    • Marc Alff's avatar
      local merge · 88341f72
      Marc Alff authored
      88341f72
    • Marc Alff's avatar
      Implemented code review comments · 1d0d4716
      Marc Alff authored
      1d0d4716
    • Alexander Barkov's avatar
      Bug#42511 mysqld: ctype-ucs2.c:2044: my_strnncollsp_utf32: Assertion (tlen % 4) == 0' fai · 22d6e099
      Alexander Barkov authored
      Problem: trailing spaces were stripped using 8-bit code,
      so the truncation result length was incorrect, which led
      to an assertion failure.
      Fix: using multi-byte safe code.
      22d6e099
    • Jon Olav Hauglid's avatar
      Bug #44171 KILL ALTER EVENT can crash the server · 7f038654
      Jon Olav Hauglid authored
      This assert could be triggered if ALTER EVENT failed to load the
      event after altering it. Failing to load the event could for 
      example happen because of KILL QUERY.
      
      The assert tested that the result of a failed load_named_event()
      was OP_LOAD_ERROR. However since load_named_event() returns bool,
      this assert did not make any sense. This patch therefore removes
      the assert, fixing the problem. The patch also removes 
      enum_events_error_code since it was unused.
      
      No test case added. The bug fix is trivial and this bug was
      easily detected by RQG tests. Further, adding a MTR test case
      for this bug would require adding sync points to make the
      test case repeatable.
      7f038654
    • Jon Olav Hauglid's avatar
      5966e582
    • Marc Alff's avatar
      Bug#55873 short startup options do not work in 5.5 · 47c6b6a6
      Marc Alff authored
      Before this fix, the server did not recognize 'short' (as in -a)
      options but only 'long' (as in --ansi) options
      in the startup command line, due to earlier changes in 5.5
      introduced for the performance schema.
      
      The root cause is that handle_options() did not honor the
      my_getopt_skip_unknown flag when parsing 'short' options.
      
      The fix changes handle_options(), so that my_getopt_skip_unknown is
      honored in all cases.
      
      Note that there are limitations to this,
      see the added doxygen documentation in handle_options().
      
      The current usage of handle_options() by the server to
      parse early performance schema options fits within the limitations.
      This has been enforced by an assert for PARSE_EARLY options, for safety.
      47c6b6a6
  7. 25 Aug, 2010 10 commits
  8. 24 Aug, 2010 5 commits