1. 28 Apr, 2006 3 commits
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1 · e92e1dac
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-4.1
      
      
      e92e1dac
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1 · 62e09b3e
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-4.1
      
      
      62e09b3e
    • unknown's avatar
      BUG#18492: mysqld reports ER_ILLEGAL_REFERENCE in --ps-protocol · 3a0d0b4c
      unknown authored
      In the code that converts IN predicates to EXISTS predicates it is changing
      the select list elements to constant 1. Example :
      SELECT ... FROM ...  WHERE a IN (SELECT c FROM ...)
      is transformed to :
      SELECT ... FROM ... WHERE EXISTS (SELECT 1 FROM ...  HAVING a = c)
      However there can be no FROM clause in the IN subquery and it may not be
      a simple select : SELECT ... FROM ... WHERE a IN (SELECT f(..) AS
      c UNION SELECT ...) This query is transformed to : SELECT ... FROM ...
      WHERE EXISTS (SELECT 1 FROM (SELECT f(..) AS c UNION SELECT ...)
      x HAVING a = c) In the above query c in the HAVING clause is made to be
      an Item_null_helper (a subclass of Item_ref) pointing to the real
      Item_field (which is not referenced anywhere else in the query anymore).
      This is done because Item_ref_null_helper collects information whether
      there are NULL values in the result.  This is OK for directly executed
      statements, because the Item_field pointed by the Item_null_helper is
      already fixed when the transformation is done.  But when executed as
      a prepared statement all the Item instances are "un-fixed" before the
      recompilation of the prepared statement. So when the Item_null_helper
      gets fixed it discovers that the Item_field it points to is not fixed
      and issues an error.  The remedy is to keep the original select list
      references when there are no tables in the FROM clause. So the above
      becomes : SELECT ... FROM ...  WHERE EXISTS (SELECT c FROM (SELECT f(..)
      AS c UNION SELECT ...) x HAVING a = c) In this way c is referenced
      directly in the select list as well as by reference in the HAVING
      clause. So it gets correctly fixed even with prepared statements.  And
      since the Item_null_helper subclass of Item_ref_null_helper is not used
      anywhere else it's taken out.
      
      
      mysql-test/r/ps_11bugs.result:
        Test case for the bug
      mysql-test/r/subselect.result:
        Explain updated because of the tranformation
      mysql-test/t/ps_11bugs.test:
        Testcase for the bug
      sql/item.cc:
        Taking out Item_null_helper as it's no longer needed
      sql/item.h:
        Taking out Item_null_helper as it's no longer needed
      sql/item_subselect.cc:
        The described change to the IN->EXISTS transformation
      3a0d0b4c
  2. 27 Apr, 2006 2 commits
  3. 26 Apr, 2006 9 commits
  4. 25 Apr, 2006 4 commits
  5. 24 Apr, 2006 6 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 5 commits