1. 23 Jan, 2007 2 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 41464df8
      unknown authored
      into  mockturtle.local:/home/dlenev/src/mysql-5.0-bg24491
      
      
      sql/item.h:
        Auto merged
      mysql-test/r/ps.result:
        Manual merge.
      mysql-test/t/ps.test:
        Manual merge.
      41464df8
    • unknown's avatar
      Proposed fix for bug#24491 "using alias from source table in insert ... · e81b9738
      unknown authored
      on duplicate key".
      
      INSERT ... SELECT ... ON DUPLICATE KEY UPDATE which was used in
      stored routine or as prepared statement and which in its ON DUPLICATE
      KEY clause erroneously tried to assign value to a column mentioned only
      in its SELECT part was properly emitting error on the first execution
      but succeeded on the second and following executions.
      
      Code which is responsible for name resolution of fields mentioned in
      UPDATE clause (e.g. see select_insert::prepare()) modifies table list
      and Name_resolution_context used in this process. It uses
      Name_resolution_context_state::save_state/restore_state() to revert
      these modifications. Unfortunately those two methods failed to revert
      properly modifications to TABLE_LIST::next_name_resolution_table
      and this broke name resolution process for successive executions.
      
      This patch fixes Name_resolution_context_state::save_state/restore_state()
      in such way that it properly handles TABLE_LIST::next_name_resolution_table.
      
      
      mysql-test/r/ps.result:
        Added test case for bug#24491 "using alias from source table in insert ...
        on duplicate key"
      mysql-test/r/sp-error.result:
        Added test case for bug#24491 "using alias from source table in insert ...
        on duplicate key"
      mysql-test/t/ps.test:
        Added test case for bug#24491 "using alias from source table in insert ...
        on duplicate key"
      mysql-test/t/sp-error.test:
        Added test case for bug#24491 "using alias from source table in insert ...
        on duplicate key"
      sql/item.h:
        Name_resolution_context::save_state/restore_state():
          At the moment these methods are used only by code implementing
          INSERT and INSERT ... SELECT statements. This code doesn't modify
         'next_name_resolution_table' member of table list element
          corresponding to the first table of SELECT clause (pointed by
          'first_name_resolution_table'). But it modifies table list element
          corresponding to the target table of INSERT (pointed by 'table_list')
          So these methods were changed to reflect this.
      e81b9738
  2. 22 Jan, 2007 1 commit
  3. 20 Jan, 2007 1 commit
  4. 19 Jan, 2007 3 commits
    • unknown's avatar
      Fix for bug #25044 "ALTER TABLE ... ENABLE KEYS acquires global 'opening · 23abe6d5
      unknown authored
      tables' lock."
      
      Execution of ALTER TABLE ... ENABLE KEYS on a table (which can take rather
      long time) prevented concurrent execution of all statements using tables.
      
      The problem was caused by the fact that we were holding LOCK_open mutex
      during whole duration of this statement and particularly during call
      to handler::enable_indexes(). This behavior was introduced as part of the
      fix for bug 14262 "SP: DROP PROCEDURE|VIEW (maybe more) write to binlog
      too late (race cond)"
      
      The patch simply restores old behavior. Note that we can safely do this as
      this operation takes exclusive lock (similar to name-lock) which blocks both
      DML and DDL on the table being altered.
      
      It also introduces mysql-test/include/wait_show_pattern.inc helper script
      which is used to make test-case for this bug robust enough.
      
      
      mysql-test/include/wait_slave_status.inc:
        Now wait_slave_status.inc reuses more generic wait_output_matches.inc script.
      sql/sql_table.cc:
        mysql_alter_table():
          Changed ALTER TABLE ... ENABLE/DISABLE KEYS not to hold LOCK_open mutex
          during call to handler::enable_indexes() as the latter can take rather
          long time and therefore such ALTER would block execution of all other
          statements that use tables. We can safely do this as this operation takes 
          exclusive lock (similar to name-lock) on the table which is altered.
      mysql-test/include/wait_show_pattern.inc:
        New BitKeeper file ``mysql-test/include/wait_show_pattern.inc''
      mysql-test/r/alter_table-big.result:
        New BitKeeper file ``mysql-test/r/alter_table-big.result''
      mysql-test/t/alter_table-big.test:
        New BitKeeper file ``mysql-test/t/alter_table-big.test''
      23abe6d5
    • unknown's avatar
      Manual merge · ddbb6d52
      unknown authored
      ddbb6d52
    • unknown's avatar
      Merge weblab.(none):/home/marcsql/TREE/mysql-4.1-24562 · ad997849
      unknown authored
      into  weblab.(none):/home/marcsql/TREE/mysql-5.0-24562-merge
      
      
      mysql-test/t/alter_table.test:
        Auto merged
      ad997849
  5. 18 Jan, 2007 3 commits
    • unknown's avatar
      Bug#24562 (ALTER TABLE ... ORDER BY ... with complex expression asserts) · c77d1f63
      unknown authored
      WL#3681 (ALTER TABLE ORDER BY)
      
      Before this fix, the ALTER TABLE statement implemented an ORDER BY option
      with the following characteristics :
      
      1) The order by clause accepts a list of criteria, with optional ASC or
      DESC keywords
      
      2) Each criteria can be a general expression, involving operators,
      native functions, stored functions, user defined functions, subselects ...
      
      With this fix :
      
      1) has been left unchanged, since it's a de-facto existing feature,
      that was already present in the code base and partially covered in the test
      suite. Code coverage for ASC and DESC was missing and has been improved.
      
      2) has been changed to limit the kind of criteria that are permissible:
      now only a column name is valid.
      
      
      mysql-test/r/alter_table.result:
        Prevent ALTER TABLE ORDER BY clauses to use general expressions.
      mysql-test/t/alter_table.test:
        Prevent ALTER TABLE ORDER BY clauses to use general expressions.
      sql/sql_yacc.yy:
        Prevent ALTER TABLE ORDER BY clauses to use general expressions.
      c77d1f63
    • unknown's avatar
      Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-5.0 · c08be7ec
      unknown authored
      into  moonlight.home:/home/tomash/src/mysql_ab/mysql-5.0-bug24404
      
      
      sql/sql_view.cc:
        Auto merged
      mysql-test/r/view_grant.result:
        Manual merge.
      mysql-test/t/view_grant.test:
        Manual merge.
      c08be7ec
    • unknown's avatar
      Bug#24404: strange bug with view+permission+prepared statement. · 9a9d6cf8
      unknown authored
      The problem was that if a prepared statement accessed a view, the
      access to the tables listed in the query after that view was done in
      the security context of the view.
      
      The bug was in the assigning of the security context to the tables
      belonging to a view: we traversed the list of all query tables
      instead.  It didn't show up in the normal (non-prepared) statements
      because of the different order of the steps of checking privileges
      and descending into a view for normal and prepared statements.
      
      The solution is to traverse the list and stop once the last table
      belonging to the view was processed.
      
      
      mysql-test/r/view_grant.result:
        Add result for bug#24404: strange bug with view+permission+prepared
        statement.
      mysql-test/t/view_grant.test:
        Add test case for bug#24404: strange bug with view+permission+prepared
        statement.
      sql/sql_view.cc:
        Remove dead line.
        When setting security context, we should traverse the list of tables
        belonging to a given view, not all query tables.  We achieve that by
        stopping at the first table past view_tables_tail.
      9a9d6cf8
  6. 17 Jan, 2007 4 commits
    • unknown's avatar
      Disable symlinks under valgrind builds (again), with a comment. · 9993ebbe
      unknown authored
      
      sql/mysqld.cc:
        Once again, disable symlink.test under valgrind builds. symlink.test
        fails deep in mi_repair - the result of this having been disabled
        for almost 5 years.
      9993ebbe
    • unknown's avatar
      Merge bodhi.local:/opt/local/work/mysql-4.1-runtime · 5b2569f9
      unknown authored
      into  bodhi.local:/opt/local/work/mysql-5.0-runtime-debug-max
      
      
      sql/sql_parse.cc:
        SCCS merged
      5b2569f9
    • unknown's avatar
      Fix a failure of lowercase_tables2 test on powermacg5, introduced · 77f00934
      unknown authored
      by the patch for Bug#4968
      
      
      sql/sql_parse.cc:
        Fix lowercase_tables2 test failure on powermacg5: table_case_name()
        function needed create_info.alias if lowercase_table_names=2, which
        was not set for the stack copy of HA_CREATE_INFO. Move the
        update of create_info.alias from create_table_precheck to 
        mysql_execute_command, so that it is done on the right object.
      77f00934
    • unknown's avatar
      Fix a ps.test failure in 5.0-runtime tree. · 41a9400b
      unknown authored
      
      mysql-test/r/ps.result:
        Update result files.
      mysql-test/t/ps.test:
        Disable result ouptut of SHOW CREATE TABLE: DATA DIRECTORY option
        may be present or absent from the output depending on the build
        otpions and the operating system, so the output is not consistent
        across supported platforms.
      sql/mysqld.cc:
        Remove a tricky #ifdef dependency of --use-symbolic-links on PURIFY
        added in 2002: DEBUG options should not influence server functionality.
        This backfired by producing different output of SHOW CREATE TABLE
        depending on the build options (see also Bug#25677 "With 
        --skip-symbolic-links option on, DATA DIRECTORY clause
        is silently ignored".
      41a9400b
  7. 16 Jan, 2007 3 commits
  8. 15 Jan, 2007 11 commits
    • unknown's avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · e4fcfa3c
      unknown authored
      into  weblab.(none):/home/marcsql/TREE/mysql-5.0-6298
      
      e4fcfa3c
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 1e6c9442
      unknown authored
      into  bodhi.local:/opt/local/work/mysql-5.0-runtime
      
      1e6c9442
    • unknown's avatar
      Merge bodhi.local:/opt/local/work/mysql-4.1-runtime · 9d139ae9
      unknown authored
      into  bodhi.local:/opt/local/work/mysql-5.0-runtime
      
      
      sql/sql_parse.cc:
        Auto merged
      9d139ae9
    • unknown's avatar
      A post-merge fix. · e394ffc5
      unknown authored
      
      sql/sql_parse.cc:
        A post-merge fix (broken alter_table.test): restore Svoj's fix
        for Bug#23404 lost during merge.
      e394ffc5
    • unknown's avatar
      Raise version number after cloning 5.0.34 · f6015ed5
      unknown authored
      f6015ed5
    • unknown's avatar
      Merge trift2.:/MySQL/M50/mysql-5.0 · 932a29e7
      unknown authored
      into  trift2.:/MySQL/M50/push-5.0
      
      
      VC++Files/libmysqld/libmysqld.dsp:
        Auto merged
      VC++Files/mysql.dsw:
        Auto merged
      VC++Files/mysqldemb/mysqldemb.dsp:
        Auto merged
      VC++Files/sql/mysqld.dsp:
        Auto merged
      VC++Files/sql/mysqldmax.dsp:
        Auto merged
      innobase/buf/buf0buf.c:
        Auto merged
      innobase/dict/dict0dict.c:
        Auto merged
      innobase/fil/fil0fil.c:
        Auto merged
      innobase/ha/ha0ha.c:
        Auto merged
      innobase/include/hash0hash.h:
        Auto merged
      innobase/lock/lock0lock.c:
        Auto merged
      innobase/log/log0recv.c:
        Auto merged
      mysys/my_read.c:
        Auto merged
      scripts/make_binary_distribution.sh:
        Auto merged
      support-files/MySQL-shared-compat.spec.sh:
        Auto merged
      932a29e7
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · a2ce56e7
      unknown authored
      into  mockturtle.local:/home/dlenev/src/mysql-5.0-bg20390-2
      
      
      sql/sql_select.cc:
        Auto merged
      a2ce56e7
    • unknown's avatar
      Merge bodhi.local:/opt/local/work/mysql-4.1-4968-to-push · adbcc379
      unknown authored
      into  bodhi.local:/opt/local/work/mysql-5.0-4968-to-push
      
      
      sql/mysql_priv.h:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_table.cc:
        Use local
      adbcc379
    • unknown's avatar
      Manual merge. · d8adfeeb
      unknown authored
      
      mysql-test/r/sp.result:
        Auto merged
      mysql-test/t/sp.test:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      sql/sql_list.h:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      d8adfeeb
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1-runtime · 8f28774b
      unknown authored
      into  bodhi.local:/opt/local/work/mysql-4.1-4968-to-push
      
      
      sql/mysql_priv.h:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_parse.cc:
        Manual merge.
      sql/sql_table.cc:
        Manual merge.
      8f28774b
    • unknown's avatar
      Fix for bug#20390 "SELECT FOR UPDATE does not release locks · 9cfd0e4e
      unknown authored
      of untouched rows in full table scans".
      
      SELECT ... FOR UPDATE/LOCK IN SHARE MODE statements as well as
      UPDATE/DELETE statements which were executed using full table
      scan were not releasing locks on rows which didn't satisfy
      WHERE condition.
      This bug surfaced in 5.0 and affected NDB tables. (InnoDB tables
      intentionally don't support such unlocking in default mode).
      
      This problem occured because code implementing join didn't call
      handler::unlock_row() for rows which didn't satisfy part of condition
      attached to this particular table/level of nested loop. So we solve
      the problem adding this call.
      Note that we already had this call in place in 4.1 but it was lost
      (actually not quite correctly placed) when we have introduced nested 
      joins.
      
      Also note that additional QA should be requested once this patch is
      pushed as interaction between handler::unlock_row() and many recent
      MySQL features such as subqueries, unions, views is not tested enough.
      
      
      mysql-test/r/ndb_lock.result:
        Enabled back part of the test that covers bug #20390 "SELECT FOR
        UPDATE does not release locks of untouched rows in full table scans".
        Adjusted test in such way that it now covers both execution paths
        in which we unlock non-matching rows inspected during table scan.
      mysql-test/t/ndb_lock.test:
        Enabled back part of the test that covers bug #20390 "SELECT FOR
        UPDATE does not release locks of untouched rows in full table scans".
        Adjusted test in such way that it now covers both execution paths
        in which we unlock non-matching rows inspected during table scan.
      sql/sql_select.cc:
        evaluate_join_record() should call handler::unlock_row() for records
        which don't satisfy condition which was pushed-down to this table/level
        of nested loop.
        We just put back the thing that we already have in 4.1 and which was lost
        when we have introduced nested joins.
      9cfd0e4e
  9. 12 Jan, 2007 9 commits
  10. 11 Jan, 2007 3 commits
    • unknown's avatar
      Merge bodhi.local:/opt/local/work/mysql-4.1-runtime · 090f88f9
      unknown authored
      into  bodhi.local:/opt/local/work/mysql-5.0-runtime
      
      
      sql/item_func.cc:
        Auto merged
      090f88f9
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 39205fb3
      unknown authored
      into  bodhi.local:/opt/local/work/mysql-5.0-runtime
      
      
      heap/hp_block.c:
        Auto merged
      mysql-test/r/view.result:
        Auto merged
      server-tools/instance-manager/listener.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/sp_head.cc:
        Auto merged
      sql/sp_head.h:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      sql/sql_prepare.cc:
        Auto merged
      sql/sql_string.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      tests/mysql_client_test.c:
        Auto merged
      heap/hp_write.c:
        SCCS merged
      39205fb3
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · 22c61cba
      unknown authored
      into  bodhi.local:/opt/local/work/mysql-4.1-runtime
      
      
      sql/item_func.cc:
        Auto merged
      22c61cba