1. 08 Jan, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#41889: Test main.innodb_bug38231 is failing w/embedded server (server crash) · f7e77185
      Davi Arnaut authored
      The problem is that a mysql connection instance is not thread-safe
      and reentrant, meaning that it can't be used concurrently and can't
      be re-entered while it's already running. This applies for any form
      of the server (embedded or not), but this rule can be violated in a
      test case if the test sends a new command without waiting for the
      result of previous command that was sent asynchronously and this can
      lead to hangs when over a network or to crashes under embedded server
      as the server query execution path will be re-entered concurrently
      with the same connection structure.
      
      The solution is to rework the test case so that the aforementioned
      rule is obeyed.
      
      mysql-test/t/innodb_bug38231.test:
        Remove con3 as it is not necessary to reproduce the test case
        and might cause problems as there is no guarantee on which
        LOCK TABLE request will succeed first. Also, wait for statement
        result before sending a new one on the same connection.
      f7e77185
  2. 07 Jan, 2009 1 commit
  3. 05 Jan, 2009 4 commits
  4. 31 Dec, 2008 1 commit
    • Gleb Shchepa's avatar
      Bug #41363: crash of mysqld on windows with aggregate in case · 335e842d
      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.
      335e842d
  5. 30 Dec, 2008 5 commits
  6. 29 Dec, 2008 4 commits
    • Sven Sandberg's avatar
      BUG#40482: server/mysqlbinlog crashes when reading invalid Incident_log_event · ba835f89
      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.
      ba835f89
    • Sergey Glukhov's avatar
      Bug#41441 repair csv table crashes debug server · 47c0ec50
      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.
      47c0ec50
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · 39442f09
      Sergey Glukhov authored
      39442f09
    • Sergey Glukhov's avatar
      Bug#41131 "Questions" fails to increment - ignores statements instead stored procs(5.0 ver) · 3b617acb
      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.
      3b617acb
  7. 28 Dec, 2008 5 commits
  8. 24 Dec, 2008 8 commits
  9. 23 Dec, 2008 7 commits
    • Sergey Glukhov's avatar
      Bug#40104 regression with table names? · e6b9fb32
      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.
      e6b9fb32
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · 25fc844f
      Sergey Glukhov authored
      25fc844f
    • Sergey Glukhov's avatar
      Bug#41079 information_schema.schema_privileges is limited to 7680 records. · e1383368
      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
      e1383368
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · f42b9ad9
      Sergey Glukhov authored
      f42b9ad9
    • Sergey Glukhov's avatar
      Bug#37575 UCASE fails on monthname · c06df92a
      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
      c06df92a
    • Sergey Petrunia's avatar
      cb6a7559
    • Sergey Vojtovich's avatar
      Merge. · e6390e23
      Sergey Vojtovich authored
      e6390e23
  10. 22 Dec, 2008 1 commit
  11. 19 Dec, 2008 3 commits
    • Matthias Leich's avatar
      Merge into actual tree · 09501824
      Matthias Leich authored
      09501824
    • Sergey Petrunia's avatar
      BUG#40974: Incorrect query results when using clause evaluated using range check · 7976735a
      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
      7976735a
    • Davi Arnaut's avatar
      Merge before pushing. · f0a16318
      Davi Arnaut authored
      f0a16318