1. 29 May, 2006 1 commit
    • unknown's avatar
      Fixed bug#18360: Incorrect type coercion in IN() results in false comparison · c007daba
      unknown authored
      The IN() function uses agg_cmp_type() to aggregate all types of its arguments
      to find out some common type for comparisons. In this particular case the 
      char() and the int was aggregated to double because char() can contain values
      like '1.5'. But all strings which do not start from a digit are converted to
      0. thus 'a' and 'z' become equal. 
      This behaviour is reasonable when all function arguments are constants. But 
      when there is a field or an expression this can lead to false comparisons. In
      this case it makes more sense to coerce constants to the type of the field
      argument.
      
      The agg_cmp_type() function now aggregates types of constant and non-constant
      items separately. If some non-constant items will be found then their
      aggregated type will be returned. Thus after the aggregation constants will be
      coerced to the aggregated type. 
      
      
      mysql-test/t/func_in.test:
        Added test case for bug#18360: Incorrect type coercion in IN() results in false comparison.
      mysql-test/r/func_in.result:
        Added test case for bug#18360: Incorrect type coercion in IN() results in false comparison.
      sql/item_cmpfunc.cc:
        Fixed bug#18360: Incorrect type coercion in IN() results in false comparison.
        The agg_cmp_type() function now aggregates types of constant and non-constant
        items separately. If some non-constant items will be found then their
        aggregated type will be returned. Thus after the aggregation constants will
        be coerced to the aggregated type.
      c007daba
  2. 27 Apr, 2006 1 commit
    • unknown's avatar
      set_var.cc: · f0e7abfc
      unknown authored
        System variable was added out of lexical order.
      
      
      sql/set_var.cc:
        System variable was added out of lexical order.
      f0e7abfc
  3. 26 Apr, 2006 8 commits
  4. 25 Apr, 2006 4 commits
  5. 24 Apr, 2006 5 commits
  6. 23 Apr, 2006 3 commits
    • unknown's avatar
      Bug#17263: incorrect DROP query in temporary tables replication · 4189bfa4
      unknown authored
      accounting non-ai32 in tmpkeyval. This changeset is supposed to be specifically for 4.1.
      Another changeset is going to push into 5. 
      
      
      sql/sql_base.cc:
        correction due to uint4korr definition: can not sizeof on not ia32.
      4189bfa4
    • unknown's avatar
      Bug#17263 temporary tables and replication · 329ebbd1
      unknown authored
        Backporting a changeset made for 5.0. Comments from there:
      
        The fix refines the algorithm of generating DROPs for binlog.
        Temp tables with common pseudo_thread_id are clustered into one query.
        Consequently one replication event per pseudo_thread_id is generated.
      
      
      
      
      mysql-test/r/rpl_temporary.result:
        results changed
      mysql-test/t/rpl_temporary.test:
        test to generate problematic drop in binlog to feed it to restarting slave
        to see no stop.
      sql/sql_base.cc:
        change in drop temprorary tables alg in close_temporary_tables.
      329ebbd1
    • unknown's avatar
      Merge aivanov@bk-internal.mysql.com:/home/bk/mysql-4.1 · 8ed06b84
      unknown authored
      into  mysql.com:/home/alexi/innodb/mysql-4.1
      
      
      8ed06b84
  7. 21 Apr, 2006 5 commits
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1 · bb40065a
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-4.1
      
      
      bb40065a
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 04be401f
      unknown authored
      into  production.mysql.com:/usersnfs/rkalimullin/4.1.b18643
      
      
      04be401f
    • unknown's avatar
      Bug #17896: MIN of CASE WHEN returns non-minimum value! · 301a24e3
      unknown authored
      - after review fixes
      
      
      sql/item_cmpfunc.cc:
        Bug #17896: MIN of CASE WHEN returns non-minimum value!
        - after review fixes.
      301a24e3
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-4.1 · d4f4f5bd
      unknown authored
      into  rurik.mysql.com:/home/igor/dev/mysql-4.1-0
      
      
      d4f4f5bd
    • unknown's avatar
      Fixed bug #18767. · 9225a51c
      unknown authored
      The bug caused wrong result sets for union constructs of the form
      (SELECT ... ORDER BY order_list1 [LIMIT n]) ORDER BY order_list2.
      For such queries order lists were concatenated and limit clause was
      completely neglected. 
      
      
      mysql-test/r/order_by.result:
        Added a test case for bug #18767.
      mysql-test/t/order_by.test:
        Added a test case for bug #18767.
      sql/sql_lex.h:
        Fixed bug #18767.
        Placed the code the created a fake SELECT_LEX into a separate function.
      sql/sql_parse.cc:
        Fixed bug #18767.
        Placed the code the created a fake SELECT_LEX into a separate function.
      sql/sql_select.cc:
        Fixed bug #18767.
        Changed the condition on which a SELECT is treated as part of a UNION.
        The SELECT in 
        (SELECT ... ORDER BY order_list1 [LIMIT n]) ORDER BY order_list2 
        now is handled in the same way as the first SELECT in a UNION
        sequence.
      sql/sql_union.cc:
        Fixed bug #18767.
        Changed the condition at which a SELECT is treated as part of a UNION.
        The SELECT in 
        (SELECT ... ORDER BY order_list1 [LIMIT n]) ORDER BY order_list2 
        now is handled in the same way as the first SELECT in a UNION
        sequence.
      sql/sql_yacc.yy:
        Fixed bug #18767.
        Changed the condition at which a SELECT is treated as part of a UNION.
        The SELECT in 
        (SELECT ... ORDER BY order_list1 [LIMIT n]) ORDER BY order_list2 
        now is handled in the same way as the first SELECT in a UNION
        sequence. In the same way is handled the SELECT in
        (SELECT ... LIMIT n) ORDER BY order list.
        Yet if there is neither ORDER BY nor LIMIT in the single-select
        union construct
        (SELECT ...) ORDER BY order_list
        then it is still handled as simple select with an order clause.
      9225a51c
  8. 20 Apr, 2006 3 commits
    • unknown's avatar
      Applied innodb-4.1-ss22 snapshot. · 66ee876b
      unknown authored
       Fix BUG#16814: "SHOW INNODB STATUS format error in LATEST FOREIGN KEY ERROR section"
           Add a missing newline to the LAST FOREIGN KEY ERROR section in SHOW INNODB STATUS
           output.
       Fix BUG#18934: "InnoDB crashes when table uses column names like DB_ROW_ID".
           Refuse tables that use reserved column names.
      
      
      innobase/dict/dict0dict.c:
        Applied innodb-4.1-ss22 snapshot.
         dict_foreign_error_report(): Always print a newline after invoking
          dict_print_info_on_foreign_key_in_create_format() (Bug#16814).
         Refuse tables that use reserved column names (Bug#18934).
      innobase/dict/dict0mem.c:
        Applied innodb-4.1-ss22 snapshot.
         Refuse tables that use reserved column names (Bug#18934).
      innobase/include/dict0dict.h:
        Applied innodb-4.1-ss22 snapshot.
         Refuse tables that use reserved column names (Bug#18934).
      innobase/include/dict0mem.h:
        Applied innodb-4.1-ss22 snapshot.
         Refuse tables that use reserved column names (Bug#18934).
      innobase/include/univ.i:
        Applied innodb-4.1-ss22 snapshot.
      innobase/row/row0mysql.c:
        Applied innodb-4.1-ss22 snapshot.
         Refuse tables that use reserved column names (Bug#18934).
      66ee876b
    • unknown's avatar
      Merge mleich@bk-internal.mysql.com:/home/bk/mysql-4.1 · 5f3c9108
      unknown authored
      into  production.mysql.com:/usersnfs/mleich/src
      
      
      5f3c9108
    • unknown's avatar
      func_gconcat.test: · fffe7c4d
      unknown authored
        Clean up test case for bug#14169
      
      
      mysql-test/t/func_gconcat.test:
        Clean up test case for bug#14169
      fffe7c4d
  9. 19 Apr, 2006 6 commits
    • unknown's avatar
      Temporarily commented out a query from the test case for bug 14169 to make it... · e4d653ab
      unknown authored
      Temporarily commented out a query from the test case for bug 14169 to make it pass with --ps-protocol.
      
      
      mysql-test/r/func_gconcat.result:
        Added DROP TABLE command to the test case for bug 14169.
      e4d653ab
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-4.1 · 34efb701
      unknown authored
      into  rurik.mysql.com:/home/igor/dev/mysql-4.1-2
      
      
      34efb701
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 08e52679
      unknown authored
      into moonbone.local:/work/14169-bug-4.1-mysql
      
      
      08e52679
    • unknown's avatar
      func_gconcat.result: · 913c8fa1
      unknown authored
        Corrected test case for the bug#14169 to make it pass in --ps-protocol mode.
      
      
      mysql-test/r/func_gconcat.result:
        Corrected test case for the bug#14169 to make it pass in --ps-protocol mode.
      913c8fa1
    • unknown's avatar
      Bug#18544 - LOCK TABLES timeout causes MyISAM table corruption · c0887e54
      unknown authored
      After a locking error the open table(s) were not fully
      cleaned up for reuse. But they were put into the open table
      cache even before the lock was tried. The next statement
      reused the table(s) with a wrong lock type set up. This
      tricked MyISAM into believing that it don't need to update
      the table statistics. Hence CHECK TABLE reported a mismatch
      of record count and table size.
      
      Fortunately nothing worse has been detected yet. The effect
      of the test case was that the insert worked on a read locked
      table. (!)
      
      I added a new function that clears the lock type from all
      tables that were prepared for a lock. I call this function
      when a lock failes.
      
      No test case. One test would add 50 seconds to the
      test suite. Another test requires file mode modifications.
      I added a test script to the bug report. It contains three
      cases for failing locks. All could reproduce a table
      corruption. All are fixed by this patch.
      
      This bug was not lock timeout specific.
      
      
      sql/lock.cc:
        Bug#18544 - LOCK TABLES timeout causes MyISAM table corruption
        Resetting the lock type in the open table(s) lock data
        after a locking error.
      c0887e54
    • unknown's avatar
      Fixed bug #19079. · b97e48a9
      unknown authored
      The bug caused a reported index corruption in the cases when
      key_cache_block_size was not a multiple of myisam_block_size,
      e.g. when key_cache_block_size=1536 while myisam_block_size=1024.
      
      
      mysql-test/r/key_cache.result:
        Added a test case for bug #19079.
      mysql-test/t/key_cache.test:
        Added a test case for bug #19079.
      b97e48a9
  10. 18 Apr, 2006 4 commits