1. 30 Oct, 2007 1 commit
  2. 29 Oct, 2007 1 commit
    • unknown's avatar
      Bug #27571 asynchronousity in setting mysql_`query`::error and · 95f3db7b
      unknown authored
                 Query_log_event::error_code
      
      A query can perform completely having the local var error of mysql_$query
      zero, where $query in insert, update, delete, load,
      and be  binlogged with error_code e.g KILLED_QUERY while there is no
      reason do to so.
      That can happen because Query_log_event consults thd->killed flag to
      evaluate error_code.
      
      Fixed with implementing a scheme suggested and partly implemented at
      time of bug@22725 work-on. error_status is cached immediatly after the
      control leaves the main rows-loop and that instance always corresponds
      to `error' the local of mysql_$query functions. The cached value
      is passed to Query_log_event constructor, not the default thd->killed
      which can be changed in between of the caching and the constructing.
      
      
      mysql-test/r/binlog_killed.result:
        results changed
      mysql-test/t/binlog_killed.test:
        Demonstrating that effective killing during rows-loop execution leads to the speficied actions:
        binlogging with the error for a query modified a not-transactional table or
        rolling back effects for transactional table;
        
        fixing possible non-determinism with ID when query_log_enabled;
        
        leave commented out tests for multi-update,delete due to another bug;
        
        removing an obsolete tests template;
        
        changing system rm to --remove_file.
      sql/log_event.cc:
        adding killed status arg
      sql/log_event.h:
        added killed status arg
      sql/sql_delete.cc:
        deploying the update part patch for delete, multi-delete
      sql/sql_insert.cc:
        deploying the update-part patch for insert..select
      sql/sql_load.cc:
        deploying the update-part patch for load data.
        simulation added.
      sql/sql_update.cc:
        Impementing the fix as described in the comments left by bug@22725.
        Also simulation of killing after the loop that would affect binlogging in the old code.
      mysql-test/t/binlog_killed_bug27571-master.opt:
        post rows-loop killing simulation's options
      mysql-test/t/binlog_killed_bug27571.test:
        Checking that if killing happens inbetween of the end of rows loop and
        recording into binlog that will not lead to recording any error incl
        the killed error.
      mysql-test/t/binlog_killed_simulate-master.opt:
        simulation options
      mysql-test/t/binlog_killed_simulate.test:
        tests for 
        a query (update is choosen) being killed after the row-loop;
        load data killed within the loop - effective killed error in the event is gained.
      95f3db7b
  3. 26 Oct, 2007 2 commits
    • unknown's avatar
      Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.0-rpl · 2d380a83
      unknown authored
      into  kindahl-laptop.dnsalias.net:/home/bk/b12691-mysql-5.0-rpl
      
      
      sql/slave.cc:
        Auto merged
      2d380a83
    • unknown's avatar
      BUG#12691 (Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER): · f01321fd
      unknown authored
        
      Adding code to keep skipping events while inside a transaction. Execution
      will start just after the transaction has been skipped.
      
      
      sql/slave.cc:
        Adding code to set the thd->options flag for the slave SQL thread
        even when BEGIN, ROLLBACK, COMMIT, and XID events are being skipped.
            
        Adding code to not decrease the slave skip counter from 1 to 0 if we
        are inside a transaction. This will keep the counter at 1, and keep
        skipping events, until a transaction terminator is read. At that point,
        the slave skip counter will be decreased to 0, and events will be read
        and executed instead of read and skipped.
      mysql-test/r/rpl_slave_skip.result:
        New BitKeeper file ``mysql-test/r/rpl_slave_skip.result''
      mysql-test/t/rpl_slave_skip-slave.opt:
        New BitKeeper file ``mysql-test/t/rpl_slave_skip-slave.opt''
      mysql-test/t/rpl_slave_skip.test:
        New BitKeeper file ``mysql-test/t/rpl_slave_skip.test''
      f01321fd
  4. 24 Oct, 2007 3 commits
  5. 21 Oct, 2007 2 commits
    • unknown's avatar
      Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl · e8b8b089
      unknown authored
      into  dsl-hkibras1-ff5fc300-23.dhcp.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.0/bug26199-create_proc_syntax_slave
      
      
      e8b8b089
    • unknown's avatar
      Bug #26199 Replication Failure on Slave when using stored procs with bit-type parameters. · 6cfd9a4f
      unknown authored
      The value of the actual argument of BIT-type-arg stored procedure was binlogged as non-escaped
      sequence of bytes corresponding to internal representation of the bit value.
      
      The patch enforces binlogging of the bit-argument as a valid literal: prefixing the quoted bytes
      sequence with _binary.
      Note, that behaviour of Item_field::var_str for field_type() of MYSQL_TYPE_BIT is exceptional
      in that the returned string contains the binary representation even though result_type() of
      the item is INT_RESULT.
      
      
      mysql-test/r/rpl_sp_effects.result:
        testing stored function and procedure called with BIT-arg.
      mysql-test/t/rpl_sp_effects.test:
        results changed
      sql/sp_head.cc:
        Treating BIT field type specially to for its value to be prefixed and quoted.
      6cfd9a4f
  6. 19 Oct, 2007 3 commits
  7. 18 Oct, 2007 1 commit
    • unknown's avatar
      Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-base · d9274610
      unknown authored
      into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-rt-merge
      
      
      mysql-test/r/udf.result:
        Auto merged
      mysql-test/t/udf.test:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/udf_example.c:
        Auto merged
      sql/udf_example.def:
        Auto merged
      d9274610
  8. 17 Oct, 2007 4 commits
    • unknown's avatar
      Bug #29804 UDF parameters don't contain correct string length · 367fc73e
      unknown authored
          
      Previously, UDF *_init functions were passed constant strings with erroneous lengths. The length came from the containing variable's size, not the length of the value itself.
          
      Now the *_init functions get the constant as a null terminated string with the correct length supplied too.
      
      
      mysql-test/r/udf.result:
        Test case to check constants passed UDFs.
      mysql-test/t/udf.test:
        Test case to check constants passed UDFs.
      sql/item_func.cc:
        UDF _init functions are now passed the length of the constants, rather than the max length of the var containing the constant.
      sql/udf_example.c:
        Added check_const_len functions. The check_const_len_init functions checks that lengths of constants are correctly passed.
      sql/udf_example.def:
        Add new example functions to windows dll export list.
      367fc73e
    • unknown's avatar
      Fix syntax error build problem on Windows (variable was defined · a634d1bf
      unknown authored
      in middle of block)
      
      
      libmysql/libmysql.c:
        Fix syntax error - don't define new variables in the middle of a block.
        
        Also, use size_t instead of uint to avoid unnecessary casting.
      a634d1bf
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/maint/mysql-4.1-maint · d73ab388
      unknown authored
      into  polly.(none):/home/kaa/src/maint/mysql-5.0-maint
      
      
      mysql-test/r/repair.result:
        Auto merged
      mysql-test/t/repair.test:
        Auto merged
      d73ab388
    • unknown's avatar
  9. 16 Oct, 2007 7 commits
    • unknown's avatar
      Fixed broken call to my_error · 42b64243
      unknown authored
      
      sql/sql_yacc.yy:
        Fixed error message to use char*, not LEX_STRING
      42b64243
    • unknown's avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 72af57b8
      unknown authored
      into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-28318-rework
      
      
      72af57b8
    • unknown's avatar
      Implementing code review comments · 28ef3b2a
      unknown authored
      
      mysql-test/r/sp.result:
        Added tests for coverage
      mysql-test/t/sp.test:
        Added tests for coverage
      sql/sql_udf.cc:
        Code cleanup
      28ef3b2a
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/maint/mysql-4.1-maint · 9ef7b5f6
      unknown authored
      into  polly.(none):/home/kaa/src/maint/mysql-5.0-maint
      
      
      myisam/sort.c:
        Auto merged
      mysql-test/r/repair.result:
        Auto merged
      mysql-test/t/repair.test:
        Auto merged
      9ef7b5f6
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/maint/bug31174/my41-bug31174 · 99a7866a
      unknown authored
      into  polly.(none):/home/kaa/src/maint/mysql-4.1-maint
      
      
      99a7866a
    • unknown's avatar
      Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl · 666155f5
      unknown authored
      into  mysql.com:/home/bar/mysql-work/mysql-5.0.b31081
      
      
      mysql-test/t/ctype_uca.test:
        Auto merged
      666155f5
    • unknown's avatar
      Bug#28318 (CREATE FUNCTION (UDF) requires a schema) -- part II · f1d7a96b
      unknown authored
      The root cause of the issue was that the CREATE FUNCTION grammar,
      for User Defined Functions, was using the sp_name rule.
      The sp_name rule is intended for fully qualified stored procedure names,
      like either ident.ident, or just ident but with a default database
      implicitly selected.
      
      A UDF does not have a fully qualified name, only a name (ident), and should
      not use the sp_name grammar fragment during parsing.
      
      The fix is to re-organize the CREATE FUNCTION grammar, to better separate:
      - creating UDF (no definer, can have AGGREGATE, simple ident)
      - creating Stored Functions (definer, no AGGREGATE, fully qualified name)
      
      With the test case provided, another issue was exposed which is also fixed:
      the DROP FUNCTION statement was using sp_name and also failing when no database
      is implicitly selected, when droping UDF functions.
      The fix is also to change the grammar so that DROP FUNCTION works with
      both the ident.ident syntax (to drop a stored function), or just the ident
      syntax (to drop either a UDF or a Stored Function, in the current database)
      
      
      mysql-test/r/sp-error.result:
        Adjust test results
      mysql-test/r/udf.result:
        Adjust test results
      mysql-test/t/sp-error.test:
        Adjust test results
      mysql-test/t/udf.test:
        Adjust test results
      sql/sql_parse.cc:
        CREATE UDF FUNCTION does not use a fully qualified name.
      sql/sql_yacc.yy:
        Fix grammar for CREATE / DROP FUNCTION, FOR udf
        Improve error messages for select no_such_function()
      f1d7a96b
  10. 15 Oct, 2007 5 commits
  11. 13 Oct, 2007 1 commit
    • unknown's avatar
      Bug #29136 erred multi-delete on trans table does not rollback the statement · c8b6d105
      unknown authored
      similar to bug_27716, but it was stressed on in the synopsis on that there is another
      side of the artifact affecting behaviour in transaction.
      
      Fixed with deploying multi_delete::send_error() - otherwise never called - and refining its logic
      to perform binlogging job if needed.
      
      The changeset includes the following side effects:
      - added tests to check bug_23333's scenarios on the mixture of tables for multi_update;
      - fixes bug@30763 with two-liner patch and a test coinciding to one added for bug_23333.
      
      
      mysql-test/r/innodb.result:
        results changed
      mysql-test/r/mix_innodb_myisam_binlog.result:
        results changed
      mysql-test/r/multi_update.result:
        results changed
      mysql-test/t/innodb.test:
        trans table specific test added
      mysql-test/t/mix_innodb_myisam_binlog.test:
        multi-update  and multi-delete of mixure of ta and not-ta tables tests added (relates to bug_23333).
      mysql-test/t/multi_update.test:
        testing another branch of mult-delete: send_eof() (binloggin there), send_error (early return)
      sql/sql_class.h:
        a new flag to designate the fact the statement's error has been handled.
        The flag is checked by ::send_error() methods (multi_update and _delete classes)
      sql/sql_delete.cc:
        expanding multi_delete::send_error to 
        1. early return if error_handled == t
        2. binlogging locally if there was a non-trans table modified side effect
      sql/sql_parse.cc:
        adding multi_update::send_error which can perform binlogging and rollback job in needed
      sql/sql_update.cc:
        issues relating to
         
        1. bug_27716 with zeroing of `updated' to serve as the flag of early return from send_error().
           The flag is changed to be a new member error_handled; also moved outside binlogging branch.
           The reason for this change is that bug_23333 fixes were pushed after the bug_27716's and they
           left this flaw (also no test coverage).
        2. bug_30763 with assertion on trans_safe. I decide to make 2 liner fix for that bug here instead of to remove
           those two assertions. This new bug test case is the same as for multi-update on the mixure of tables.
           The rational for this fix:
           presumption for mutli_update::trans_safe to be set to zero at
           multi_update::multi_update or multi_update::initialize_tables() is incorrect.
        
           trans_safe := false should happen only when a non-transactional table gets modified. 
           Therefore, at initialization the member must be be set to true.
      c8b6d105
  12. 12 Oct, 2007 10 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint · 432d42e7
      unknown authored
      into  solace.(none):/home/mtaylor/src/mysql/mysql-5.0-maint
      
      
      432d42e7
    • unknown's avatar
      Removing 7 year old 3.23 crufty debian dir that is not in use, so as not to cause confusion. · 06553067
      unknown authored
      
      BitKeeper/deleted/.del-README.debian:
        Delete: support-files/debian/README.debian
      BitKeeper/deleted/.del-changelog~8457b43736642c:
        Delete: support-files/debian/changelog
      BitKeeper/deleted/.del-control:
        Delete: support-files/debian/control
      BitKeeper/deleted/.del-copyright~3c3485ee25f7cde0:
        Delete: support-files/debian/copyright
      BitKeeper/deleted/.del-gomi:
        Delete: support-files/debian/gomi
      BitKeeper/deleted/.del-libmysqlclient10.dirs:
        Delete: support-files/debian/libmysqlclient10.dirs
      BitKeeper/deleted/.del-libmysqlclient10.postinst:
        Delete: support-files/debian/libmysqlclient10.postinst
      BitKeeper/deleted/.del-libmysqlclient9.dirs:
        Delete: support-files/debian/libmysqlclient9.dirs
      BitKeeper/deleted/.del-libmysqlclient9.postinst:
        Delete: support-files/debian/libmysqlclient9.postinst
      BitKeeper/deleted/.del-move:
        Delete: support-files/debian/move
      BitKeeper/deleted/.del-my.cnf~c8cce985cf5872e3:
        Delete: support-files/debian/my.cnf
      BitKeeper/deleted/.del-mysql-bench.dirs:
        Delete: support-files/debian/mysql-bench.dirs
      BitKeeper/deleted/.del-aa:
        Delete: support-files/debian/patches/aa
      BitKeeper/deleted/.del-mysql-client.dirs:
        Delete: support-files/debian/mysql-client.dirs
      BitKeeper/deleted/.del-mysql-dev.dirs:
        Delete: support-files/debian/mysql-dev.dirs
      BitKeeper/deleted/.del-mysql-doc.dirs:
        Delete: support-files/debian/mysql-doc.dirs
      BitKeeper/deleted/.del-mysql-max-debug.dirs:
        Delete: support-files/debian/mysql-max-debug.dirs
      BitKeeper/deleted/.del-mysql-max-debug.postinst:
        Delete: support-files/debian/mysql-max-debug.postinst
      BitKeeper/deleted/.del-mysql-max-debug.postrm:
        Delete: support-files/debian/mysql-max-debug.postrm
      BitKeeper/deleted/.del-mysql-max-shared.dirs:
        Delete: support-files/debian/mysql-max-shared.dirs
      BitKeeper/deleted/.del-mysql-max-shared.postinst:
        Delete: support-files/debian/mysql-max-shared.postinst
      BitKeeper/deleted/.del-mysql-max-shared.postrm:
        Delete: support-files/debian/mysql-max-shared.postrm
      BitKeeper/deleted/.del-mysql-max.dirs:
        Delete: support-files/debian/mysql-max.dirs
      BitKeeper/deleted/.del-mysql-max.postinst:
        Delete: support-files/debian/mysql-max.postinst
      BitKeeper/deleted/.del-mysql-max.postrm:
        Delete: support-files/debian/mysql-max.postrm
      BitKeeper/deleted/.del-mysql-server-debug.dirs:
        Delete: support-files/debian/mysql-server-debug.dirs
      BitKeeper/deleted/.del-mysql-server-debug.postinst:
        Delete: support-files/debian/mysql-server-debug.postinst
      BitKeeper/deleted/.del-mysql-server-debug.postrm:
        Delete: support-files/debian/mysql-server-debug.postrm
      BitKeeper/deleted/.del-mysql-server-shared.dirs:
        Delete: support-files/debian/mysql-server-shared.dirs
      BitKeeper/deleted/.del-mysql-server-shared.postinst:
        Delete: support-files/debian/mysql-server-shared.postinst
      BitKeeper/deleted/.del-mysql-server-shared.postrm:
        Delete: support-files/debian/mysql-server-shared.postrm
      BitKeeper/deleted/.del-mysql-server.conffiles:
        Delete: support-files/debian/mysql-server.conffiles
      BitKeeper/deleted/.del-mysql-server.dirs:
        Delete: support-files/debian/mysql-server.dirs
      BitKeeper/deleted/.del-mysql-server.postinst:
        Delete: support-files/debian/mysql-server.postinst
      BitKeeper/deleted/.del-mysql-server.postrm:
        Delete: support-files/debian/mysql-server.postrm
      BitKeeper/deleted/.del-mysql-server.prerm:
        Delete: support-files/debian/mysql-server.prerm
      BitKeeper/deleted/.del-rules~2018e0de32c6d936:
        Delete: support-files/debian/rules
      BitKeeper/deleted/.del-shlibs:
        Delete: support-files/debian/shlibs
      BitKeeper/deleted/.del-ab:
        Delete: support-files/debian/patches/ab
      BitKeeper/deleted/.del-ac:
        Delete: support-files/debian/patches/ac
      BitKeeper/deleted/.del-ad:
        Delete: support-files/debian/patches/ad
      BitKeeper/deleted/.del-ae:
        Delete: support-files/debian/patches/ae
      BitKeeper/deleted/.del-az:
        Delete: support-files/debian/patches/az
      BitKeeper/deleted/.del-ta:
        Delete: support-files/debian/patches/ta
      BitKeeper/deleted/.del-tb:
        Delete: support-files/debian/patches/tb
      06553067
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint · ca83ea5e
      unknown authored
      into  sin.intern.azundris.com:/home/tnurnberg/30951/50-30951
      
      
      ca83ea5e
    • unknown's avatar
      Merge moksha.com.br:/Users/davi/mysql/bugs/post-rename-5.0 · 3cf3e286
      unknown authored
      into  moksha.com.br:/Users/davi/mysql/mysql-5.0-runtime
      
      
      3cf3e286
    • unknown's avatar
      Bug#31409 RENAME TABLE causes server crash or deadlock when used with HANDLER statements · 4eb4b37c
      unknown authored
      If mysql_lock_tables fails because the lock was aborted, we need to
      reset thd->some_tables_delete, otherwise we might loop indefinitely
      because handler's tables are not closed in a standard way, meaning
      that close_thread_tables() (which resets some_tables_deleted) is not
      used.
      
      This patch fixes sporadical failures of handler_myisam/innodb tests
      which were introduced by previous fix for this bug.
      
      
      sql/sql_handler.cc:
        Properly reset thd->some_tables_deleted if mysql_lock_tables
        fails for some reason.
      4eb4b37c
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/maint/bug31254/my50-bug31254 · 010d3126
      unknown authored
      into  polly.(none):/home/kaa/src/maint/mysql-5.0-maint
      
      
      010d3126
    • unknown's avatar
      Fix for bug #31254: "Max_data_length" truncated / reported wrong · 65a32e83
      unknown authored
      (compiler issue ?)
      
      Problem:
      
      Improper compile-time flags on AIX prevented use of files > 2 GB. This
      resulted in Max_data_length being truncated to 2 GB by MyISAM code.
      
      Solution:
      
      Reverted large-file changes from the fix for bug10776. We need to define
      _LARGE_FILES on AIX to have support for files > 2 GB.
      
       Since _LARGE_FILE_API is incompatible with _LARGE_FILES and may be
      automatically defined by including standards.h, we also need a
      workaround to avoid this conflict.
      
      
      config/ac-macros/large_file.m4:
        Reverted large-file changes from the fix for bug10776. We need to define
        _LARGE_FILES on AIX to have support for files > 2 GB.
      include/my_global.h:
        _LARGE_FILE_API is defined in standards.h that is automatically included
        by at least some C++ compilers on AIX. Since it is also incompatible
        with _LARGE_FILES which is required for POSIX IO calls to be
        largefile-safe, the only workaround is to explicitely #undef
        _LARGE_FILE_API.
      65a32e83
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint · e0bdce86
      unknown authored
      into  sin.intern.azundris.com:/home/tnurnberg/30951/50-30951
      
      
      e0bdce86
    • unknown's avatar
      Bug#30951: makedate returns different results depending on version of mysql · 91f6d169
      unknown authored
      makedate() will fold years below 100 into the 1970-2069 range. CS removes code
      that also wrongly folded years between 100 and 200 into that range, which should
      be left unchanged. Backport from 5.1.
      
      
      mysql-test/r/func_sapdb.result:
        Show that makedate() works correctly for 100 <= year < 200.
      mysql-test/t/func_sapdb.test:
        Show that makedate() works correctly for 100 <= year < 200.
      sql-common/my_time.c:
        Remove unnecessary date magic. Syncs behaviour with 5.1+
        and manual.
      91f6d169
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint · 0d128c07
      unknown authored
      into  sin.intern.azundris.com:/home/tnurnberg/30821/50-30821
      
      
      sql/mysqld.cc:
        Auto merged
      0d128c07