1. 09 Jan, 2009 1 commit
    • Sven Sandberg's avatar
      BUG#41961: Some log_event types do not skip post-header when reading · 2d3a1a63
      Sven Sandberg authored
      Problem: when the server reads a log_event from file, it should read
      the post-header lengths from the format_description_log_event. Some
      event types which currently have post-header length 0 did not do this,
      and instead had a hard-coded zero length for the post-header. That
      means the current server version will not be able to read future
      versions of these events.
      Fix: make the reader functions read the post-header.
      
      
      sql/log_event.cc:
         - Made Format_description_log_event constructor initialize all
           post-header lengths explicitly, to make it easier to find them
           in the source code.
         - After this, it is no longer necessary to pass the MY_ZEROFILL
           flag to my_malloc. I removed the flag and added a sanity-check
           that will be executed only in debug-mode.
         - Made INTVAR, RAND, USER_VAR, and XID events skip post_header_len
           when reading from file.
      sql/log_event.h:
        Added explicit defines for the lengths of all event types.
      2d3a1a63
  2. 31 Dec, 2008 1 commit
    • Gleb Shchepa's avatar
      Bug #41363: crash of mysqld on windows with aggregate in case · 299b7a97
      Gleb Shchepa authored
      Execution of queries containing the CASE function of
      aggregate function like in "SELECT ... CASE ARGV(...) WHEN ..."
      crashed the server.
      
      
      The CASE function caches pointers to concrete comparison
      functions for an each pair of types of CASE-WHERE clause
      parameters, i.e. for the "CASE INT_RESULT WHERE REAL_RESULT
      THEN ... WHERE DECIMAL_RESULT ... END" function call it
      caches comparisons for INT_RESULT with REAL_RESULT and
      for INT_RESULT with DECIMAL_RESULT. Usually a result
      type is known after a call to the fix_fields function,
      however, the setup_copy_fields function call may
      wrap aggregate items with Item_copy_string that has
      STRING_RESULT result type, so setup_copy_fields may
      change argument result types of the CASE function after
      call to Item_func_case::fix_fields/fix_length_and_dec.
      Then the Item_func_case::find_item function tries to
      use comparison function for unexpected pair of the
      STRING_RESULT and some other type - that caused
      an assertion failure of server crash.
      
      The Item_func_case::fix_length_and_dec function has
      been modified to take into account possible STRING_RESULT
      result type in the presence of aggregate arguments of
      the CASE function.
      
      
      mysql-test/r/func_in.result:
        Added test case for bug #41363.
      mysql-test/t/func_in.test:
        Added test case for bug #41363.
      sql/item_cmpfunc.cc:
        Bug #41363: crash of mysqld on windows with aggregate in case
        
        The Item_func_case::fix_length_and_dec function has
        been modified to take into account possible STRING_RESULT
        result type in the presence of aggregate arguments of
        the CASE function.
      299b7a97
  3. 30 Dec, 2008 5 commits
  4. 29 Dec, 2008 4 commits
    • Sven Sandberg's avatar
      BUG#40482: server/mysqlbinlog crashes when reading invalid Incident_log_event · dc3ad27a
      Sven Sandberg authored
      Problem: When an Incident_log_event contains a bad incident number on disk,
      the server crashes with an assertion.
      Fix: Don't validate input with assertions. Use errors.
      
      mysql-test/include/cleanup_fake_relay_log.inc:
        Added auxiliary file to restore things that setup_fake_relay_log.inc did.
      mysql-test/include/setup_fake_relay_log.inc:
        Added auxiliary file to setup replication from an existing relay log.
      mysql-test/std_data/bug40482-bin.000001:
        Binlog file for rpl.rpl_binlog_corruption
      mysql-test/suite/rpl/t/rpl_binlog_corruption.test:
        New test file.
      sql/log_event.cc:
        Check that the incident number is correct at the time the event is constructed.
        Do not assert it at the time it is printed.
      sql/log_event.h:
        Incident_log_event::is_valid() should verify that the incident number is valid.
      sql/rpl_constants.h:
        Incident numbers should be hard-coded, since they may appear in files.
      dc3ad27a
    • Sergey Glukhov's avatar
      Bug#41441 repair csv table crashes debug server · f2d3fe4c
      Sergey Glukhov authored
      The problem: data file can not be deleted on win because
      there is another opened instance of this file.
      Data file might be opened twice, on table opening stage and
      during write_row execution. We need to close both instances
      to satisfy Win.
      
      
      mysql-test/r/csv.result:
        test result
      mysql-test/t/csv.test:
        test case
      storage/csv/ha_tina.cc:
        The problem: data file can not be deleted on win because
        there is another opened instance of this file.
        Data file might be opened twice, on table opening stage and
        during write_row execution. We need to close both instances
        to satisfy Win.
      f2d3fe4c
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · 7d2256e4
      Sergey Glukhov authored
      7d2256e4
    • Sergey Glukhov's avatar
      Bug#41131 "Questions" fails to increment - ignores statements instead stored procs(5.0 ver) · 397a36c7
      Sergey Glukhov authored
      Added global status variable 'Queries' which represents
      total amount of queries executed by server including
      statements executed by SPs.
      note: It's old behaviour of 'Questions' variable.
      
      
      mysql-test/r/status.result:
        test result
      mysql-test/t/status.test:
        test case
      sql/mysqld.cc:
        Added global status variable 'Queries' which represents
        total amount of queries executed by server including
        statements executed by SPs.
        note: It's old behaviour of 'Questions' variable.
      sql/sql_show.cc:
        Added global status variable 'Queries' which represents
        total amount of queries executed by server including
        statements executed by SPs.
        note: It's old behaviour of 'Questions' variable.
      sql/structs.h:
        Added global status variable 'Queries' which represents
        total amount of queries executed by server including
        statements executed by SPs.
        note: It's old behaviour of 'Questions' variable.
      397a36c7
  5. 24 Dec, 2008 8 commits
  6. 23 Dec, 2008 7 commits
    • Sergey Glukhov's avatar
      Bug#40104 regression with table names? · 71154d32
      Sergey Glukhov authored
      On Winodws FN_DEVCHAR is ':' symbol.
      There is a check in mysql_create_table_no_lock() func
      on FN_DEVCHAR presence but this code is obsolete and
      unnecessary. So the fix is to remove unnecessary code.
      
      
      mysql-test/r/create.result:
        test result
      mysql-test/t/create.test:
        test case
      sql/sql_table.cc:
        On Winodws FN_DEVCHAR is ':' symbol.
        There is a check in mysql_create_table_no_lock() func
        on FN_DEVCHAR presence but this code is obsolete and
        unnecessary. So the fix is to remove unnecessary code.
      71154d32
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · f1bcbf16
      Sergey Glukhov authored
      f1bcbf16
    • Sergey Glukhov's avatar
      Bug#41079 information_schema.schema_privileges is limited to 7680 records. · 5f8ed9c9
      Sergey Glukhov authored
      The problem is that we cannot insert new record into memory table
      when table size exceeds max memory table size.
      The fix is to use schema_table_store_record() function which
      converts memory table into MyISAM in case of table size exceeding.
      
      Note:
      There is no test case for this bug, the reason is that
      1. The code  that was added already is checked(i.e. works) with existing tests
      2. Correct work of schema_table_store_record() is checked with other test cases
         (information_schema tests)
      So new code is fully covered with existing test cases.
      
      
      sql/mysql_priv.h:
        make schema_table_store_record() function global
      sql/sql_acl.cc:
        The problem is that we cannot insert new record into memory table
        when table size exceeds max memory table size.
        The fix is to use schema_table_store_record() function which
        converts memory table into MyISAM in case of table size exceeding.
      sql/sql_show.cc:
        make schema_table_store_record() function global
      5f8ed9c9
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · 806f7242
      Sergey Glukhov authored
      806f7242
    • Sergey Glukhov's avatar
      Bug#37575 UCASE fails on monthname · 43ee0f9f
      Sergey Glukhov authored
      The MONTHNAME/DAYNAME functions
      returns binary string, so the LOWER/UPPER functions
      are not effective on the result of MONTHNAME/DAYNAME call.  
      Character set of the MONTHNAME/DAYNAME function
      result has been changed to connection character set.
      
      
      include/m_ctype.h:
        added my_charset_repertoire function
      mysql-test/r/ctype_ucs.result:
        test result
      mysql-test/r/func_time.result:
        test result
      mysql-test/t/ctype_ucs.test:
        test case
      mysql-test/t/func_time.test:
        test case
      sql/item_timefunc.cc:
        Item_func_monthname::fix_length_and_dec and
        Item_func_dayname::fix_length_and_dec methods have been
        modified to use connection character set
      sql/item_timefunc.h:
        Item_func_monthname::fix_length_and_dec and
        Item_func_dayname::fix_length_and_dec methods have been
        modified to use connection character set
      sql/mysql_priv.h:
        added max_month_name_length, max_day_name_length fields into MY_LOCALE struct
      sql/mysqld.cc:
        The test_lc_time_sz function controls modifications
        of the locale database in debugging mode.
      sql/sql_locale.cc:
        initialization of max_month_name_length, max_day_name_length fields
      strings/ctype.c:
        added my_charset_repertoire function
      43ee0f9f
    • Sergey Petrunia's avatar
      04af51d1
    • Sergey Vojtovich's avatar
      Merge. · 27508a84
      Sergey Vojtovich authored
      27508a84
  7. 22 Dec, 2008 1 commit
  8. 19 Dec, 2008 7 commits
    • Matthias Leich's avatar
      Merge into actual tree · 2c043733
      Matthias Leich authored
      2c043733
    • Sergey Petrunia's avatar
      BUG#40974: Incorrect query results when using clause evaluated using range check · 8cecb71d
      Sergey Petrunia authored
      - QUICK_INDEX_MERGE_SELECT deinitializes its rnd_pos() scan when it reaches EOF, but we 
        need to make the deinitialization in QUICK_INDEX_MERGE_SELECT destructor also. This is because
        certain execution strategies can stop scanning without reaching EOF, then then try to do a full
        table scan on this table. Failure to deinitialize caused the full scan to use (already empty) 
        table->sort and produce zero records.
      
      mysql-test/r/index_merge.result:
        BUG#40974: Incorrect query results when using clause evaluated using range check
        - Testcase
      mysql-test/t/index_merge.test:
        BUG#40974: Incorrect query results when using clause evaluated using range check
        - Testcase
      8cecb71d
    • Davi Arnaut's avatar
      Merge before pushing. · f82c8c69
      Davi Arnaut authored
      f82c8c69
    • Davi Arnaut's avatar
      Bug#41612: resolve_stack_dump does not decode 5.1 stack trace · 3bdbfd70
      Davi Arnaut authored
      resolve_stack_dump is not able to decode a stack trace produced
      by glibc's backtrace() functions. The problem is that the stack
      trace addresses are printed between brackets and the utility is
      not able to ignore the brackets.
      
      The solution is to modify resolve_stack_dump so it can recognize
      stack trace addresses surrounded by brackets. e.g. [0xdeadbeef].
      
      extra/resolve_stack_dump.c:
        Skip to after a bracket if one is present in the input.
      3bdbfd70
    • Matthias Leich's avatar
      Merge into GCA tree · 9ce7403c
      Matthias Leich authored
      9ce7403c
    • Timothy Smith's avatar
      Auto-merge from 5.1-bugteam · 19891fe9
      Timothy Smith authored
      19891fe9
    • Timothy Smith's avatar
      Disable part of innodb-autoinc.test, because the MySQL server asserts when · 86ac31ab
      Timothy Smith authored
      compiled --with-debug, due to bug 39828, "autoinc wraps around when offset and
      increment > 1".  This change should be reverted when that bug is fixed (and a
      a few other minor changes to the test as described in comments).
      86ac31ab
  9. 18 Dec, 2008 1 commit
  10. 17 Dec, 2008 5 commits
    • Sergey Glukhov's avatar
      automerge · d0da0a69
      Sergey Glukhov authored
      d0da0a69
    • Sergey Glukhov's avatar
      Bug#29263 disabled storage engines omitted in SHOW ENGINES · a2cda446
      Sergey Glukhov authored
      Static disabled plugins|engines and dynamic plugins which installed but disabled
      are not visible in I_S PLUGINS|ENGINES tables because they are not stored into
      global plugin array.
      The fix: add such plugins|engines to plugin array with PLUGIN_IS_DISABLED status.
      I_S.ENGINES 'Transactions', 'XA', 'Savepoints' fields have NULL value in this case.
      
      
      mysql-test/r/warnings_engine_disabled.result:
        test result
      mysql-test/suite/funcs_1/r/is_columns_is.result:
        result fix
      mysql-test/suite/funcs_1/r/is_engines.result:
        result fix
      mysql-test/t/warnings_engine_disabled.test:
        test case
      sql/sql_plugin.cc:
        store disabled plugins|engines into plugin array
      sql/sql_plugin.h:
        added PLUGIN_IS_DISABLED flag
      sql/sql_show.cc:
        added filling of 'engines'&'plugins' tables with disabled engines|plugins
      a2cda446
    • Horst Hunger's avatar
      due to merge · 55de64fa
      Horst Hunger authored
      55de64fa
    • Horst Hunger's avatar
    • Sergey Vojtovich's avatar
      BUG#39746 - Debug flag breaks struct definition · 00406870
      Sergey Vojtovich authored
                  (server crash)
      
      Altering a table with fulltext index[es] which use
      pluggable fulltext parser may cause server crash
      in debug builds.
      
      The problem was that ALTER TABLE code wrongly assigned
      fulltext parser name.
      
      Also fixed that altering a table with fulltext index[es]
      leave stale fulltext parser locks, which prevent
      fulltext parsers from being uninstalled after
      ALTER TABLE.
      
      mysql-test/include/have_simple_parser.inc:
        Added support for testing simple fulltext parser.
      mysql-test/mysql-test-run.pl:
        Added support for testing simple fulltext parser.
      mysql-test/r/fulltext_plugin.result:
        A test case for BUG#39746.
      mysql-test/r/have_simple_parser.require:
        Added support for testing simple fulltext parser.
      mysql-test/t/fulltext_plugin-master.opt:
        A test case for BUG#39746.
      mysql-test/t/fulltext_plugin.test:
        A test case for BUG#39746.
      sql/sql_table.cc:
        Fixed that alter table wrongly assigns fulltext parser
        name. parser_name member is only available during
        table creation. When we open existing table we must
        get parser_name from plugin_ref, which is handled
        by plugin_name() macro.
      sql/table.cc:
        Moved code that releases fulltext parsers into
        free_table_share(). This fixes stale fulltext parser
        locks set by ALTER TABLE, which are preventing fulltext
        parsers from being uninstalled.
      00406870