An error occurred fetching the project authors.
  1. 25 Feb, 2006 1 commit
    • unknown's avatar
      Fixed compiler warnings from gcc 4.0.2: · f5f01b15
      unknown authored
      - Added empty constructors and virtual destructors to many classes and structs
      - Removed some usage of the offsetof() macro to instead use C++ class pointers
      
      
      configure.in:
        Added comment
      ndb/include/ndbapi/NdbDictionary.hpp:
        Fixed compiler warnings from gcc 4.0.2
      sql/field.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/handler.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/item.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/item_cmpfunc.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/log_event.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/mysql_priv.h:
        Fixed compiler warnings from gcc 4.0.2
        For find_table_in_list I fixed it to use proper C++ class pointers instead of C style pointers
      sql/opt_range.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/parse_file.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sp_rcontext.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/spatial.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_base.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_cache.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_class.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_parse.cc:
        Fixed compiler warnings from gcc 4.0.2
        (Not pretty, but seams to work...)
      sql/sql_select.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_update.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/table.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/tztime.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/tztime.h:
        Fixed compiler warnings from gcc 4.0.2
      f5f01b15
  2. 24 Feb, 2006 1 commit
    • unknown's avatar
      Fixes to embedded server to be able to run tests with it · 0afb6ff6
      unknown authored
      (Needed for "list of pushes" web page and autopush)
      
      
      include/mysql.h:
        Fix to embedded server to be able to run tests on it
      libmysql/libmysql.c:
        Fix to embedded server to be able to run tests on it
      libmysqld/emb_qcache.cc:
        Fix to embedded server to be able to run tests on it
      libmysqld/embedded_priv.h:
        Fix to embedded server to be able to run tests on it
      libmysqld/lib_sql.cc:
        Fix to embedded server to be able to run tests on it
      libmysqld/libmysqld.c:
        Fix to embedded server to be able to run tests on it
      mysql-test/mysql-test-run.sh:
        Fix to embedded server to be able to run tests on it
      mysql-test/r/binlog.result:
        Updated test for embedded server
      mysql-test/r/ctype_cp932.result:
        Updated test for embedded server
      mysql-test/r/innodb.result:
        Updated test for embedded server
      mysql-test/r/mysqltest.result:
        Updated test for embedded server
      mysql-test/r/query_cache.result:
        Updated test for embedded server
      mysql-test/r/query_cache_notembedded.result:
        Updated test for embedded server
      mysql-test/r/sp-error.result:
        Updated test for embedded server
      mysql-test/r/sp.result:
        Updated test for embedded server
      mysql-test/r/subselect.result:
        Updated test for embedded server
      mysql-test/r/view.result:
        Updated test for embedded server
      mysql-test/r/view_grant.result:
        Updated test for embedded server
      mysql-test/t/backup.test:
        Updated test for embedded server
      mysql-test/t/binlog.test:
        Updated test for embedded server
      mysql-test/t/blackhole.test:
        Updated test for embedded server
      mysql-test/t/compress.test:
        Updated test for embedded server
      mysql-test/t/ctype_cp932.test:
        Updated test for embedded server
      mysql-test/t/delayed.test:
        Updated test for embedded server
      mysql-test/t/handler.test:
        Updated test for embedded server
      mysql-test/t/innodb.test:
        Updated test for embedded server
      mysql-test/t/mysql.test:
        Updated test for embedded server
      mysql-test/t/mysql_client_test.test:
        Updated test for embedded server
      mysql-test/t/mysqltest.test:
        Updated test for embedded server
      mysql-test/t/query_cache.test:
        Updated test for embedded server
      mysql-test/t/query_cache_notembedded.test:
        Updated test for embedded server
      mysql-test/t/read_only.test:
        Updated test for embedded server
      mysql-test/t/skip_grants.test:
        Updated test for embedded server
      mysql-test/t/sp-destruct.test:
        Updated test for embedded server
      mysql-test/t/sp-error.test:
        Updated test for embedded server
      mysql-test/t/sp-threads.test:
        Updated test for embedded server
      mysql-test/t/sp.test:
        Updated test for embedded server
      mysql-test/t/subselect.test:
        Updated test for embedded server
      mysql-test/t/temp_table.test:
        Updated test for embedded server
      mysql-test/t/view.test:
        Updated test for embedded server
      mysql-test/t/view_grant.test:
        Updated test for embedded server
      mysql-test/t/wait_timeout.test:
        Updated test for embedded server
      mysys/mf_dirname.c:
        Review fix: Don't access data outside of array
      mysys/my_bitmap.c:
        Remove compiler warnings
      scripts/mysql_fix_privilege_tables.sql:
        Add flush privileges to .sql script so that one doesn't have to reboot mysqld when one runs the mysql_fix_privilege_script
      sql-common/client.c:
        Updated test for embedded server
      sql/item.cc:
        Remove DBUG_PRINT statement that can cause crashes when running with --debug
      sql/mysqld.cc:
        Fix to embedded server to be able to run tests on it
      sql/protocol.cc:
        Fix to embedded server to be able to run tests on it
        (Trivial reconstruction of code)
      sql/protocol.h:
        Fix to embedded server to be able to run tests on it
      sql/sql_base.cc:
        Better comment
      sql/sql_class.cc:
        Fix to embedded server to be able to run tests on it
      sql/sql_class.h:
        Fix to embedded server to be able to run tests on it
      sql/sql_cursor.cc:
        Fix to embedded server to be able to run tests on it
      sql/sql_parse.cc:
        Fix to embedded server to be able to run tests on it
        Don't crash for disabled commands when using embedded server
      sql/sql_prepare.cc:
        Fix to embedded server to be able to run tests on it
      mysql-test/r/ctype_cp932_notembedded.result:
        New BitKeeper file ``mysql-test/r/ctype_cp932_notembedded.result''
      mysql-test/r/innodb_notembedded.result:
        New BitKeeper file ``mysql-test/r/innodb_notembedded.result''
      mysql-test/r/sp.result.orig:
        New BitKeeper file ``mysql-test/r/sp.result.orig''
      mysql-test/r/sp_notembedded.result:
        New BitKeeper file ``mysql-test/r/sp_notembedded.result''
      mysql-test/r/subselect_notembedded.result:
        New BitKeeper file ``mysql-test/r/subselect_notembedded.result''
      mysql-test/t/ctype_cp932_notembedded.test:
        New BitKeeper file ``mysql-test/t/ctype_cp932_notembedded.test''
      mysql-test/t/innodb_notembedded.test:
        New BitKeeper file ``mysql-test/t/innodb_notembedded.test''
      mysql-test/t/sp.test.orig:
        New BitKeeper file ``mysql-test/t/sp.test.orig''
      mysql-test/t/sp_notembedded.test:
        New BitKeeper file ``mysql-test/t/sp_notembedded.test''
      mysql-test/t/subselect_notembedded.test:
        New BitKeeper file ``mysql-test/t/subselect_notembedded.test''
      0afb6ff6
  3. 23 Feb, 2006 1 commit
  4. 21 Feb, 2006 1 commit
    • unknown's avatar
      A fix and a test case for Bug#13134 "Length of VARCHAR() utf8 · 9cf3f255
      unknown authored
      column is increasing when table is recreated with PS/SP":
      make use of create_field::char_length more consistent in the code.
      Reinit create_field::length from create_field::char_length
      for every execution of a prepared statement (actually fixes the 
      bug).
      
      
      mysql-test/r/ps.result:
        Test results fixed (Bug#13134)
      mysql-test/t/ps.test:
        A test case for Bug#13134 "Length of VARCHAR() utf8 column is 
        increasing when table is recreated with PS/SP"
      sql/field.cc:
        Move initialization of create_field::char_length to the constructor
        of create_field.
      sql/field.h:
        Rename chars_length to char_length (to be consistent with
        how this term is used throughout the rest of the code).
      sql/sql_parse.cc:
        Initialize char_length in add_field_to_list. This function
        effectively works as another create_field constructor.
      sql/sql_table.cc:
        Reinit length from char_length for every field in 
        mysql_prepare_table. This is not needed if we're executing
        a statement for the first time, however, at subsequent executions
        length contains the number of bytes, not characters (as it's expected 
        to).
      9cf3f255
  5. 26 Jan, 2006 3 commits
    • unknown's avatar
      Fixed on BUG#16568: Continue handler with simple CASE not working correctly · af187fa2
      unknown authored
        After trying multiple inheritance (to messy and hard make it work) and
        sublassing jump_if_not (worked, but ugly), decided to on this solution
        instead:
        Inserting an abstract sp_instr_opt_meta class as parent for all instructions
        with destinations makes it possible to handle a continuation pointer for
        sp_instr_set_case_expr too.
        Note: No special test case; the fix is captured by the changed behaviour of
        bug14643_2, and bug14498_4 (formerly disabled), in sp.test.
      
      
      mysql-test/r/sp.result:
        Updated results for BUG#16568 (affects results for bug14643_2 and bug14498_4)
      mysql-test/t/sp.test:
        Enabled test bug14498_4 for BUG#16568.
      sql/sp_head.cc:
        Changed type of some parameters and variables (sp_instr_opt_meta instead of sp_instr_jump*).
        Added consistency check of m_ip member in instructions in sp_head::show_routine_code().
        Updated print() method of, and added opt_mark() and opt_move() methods to
        sp_instr_set_case_expr, to handle the new continuation destination.
      sql/sp_head.h:
        New abstract class between sp_instr and instructions with destinations, in particular
        sp_instr_set_case_expr, for continuation destination handling.
        Changed type of some parameters and variables (sp_instr_opt_meta instead of sp_instr_jump*).
        Added opt_mark(), opt_move() and set_destination() methods to
        sp_instr_set_case_expr.
      sql/sql_parse.cc:
        Fixed small bug at show_routine_code() call (tested return value the wrong way).
      sql/sql_yacc.yy:
        sp_instr_set_case_expr is now added to backpatch list (for the new cont. destination).
      af187fa2
    • unknown's avatar
      Fixed BUG#16303: erroneus stored procedures and functions should be droppable · cce719fb
      unknown authored
        Use a special lookup function for DROP, which doesn't attempt to parse the
        definition.
      
      
      mysql-test/r/sp-destruct.result:
        Updated test result for BUG#16303.
      mysql-test/t/sp-destruct.test:
        Added test case for BUG#16303.
      sql/sp.cc:
        New function sp_routine_exists_in_table() for DROP PROCEDURE/FUNCTION; which doesn't
        want to parse the definition, only know if it exists.
        
        Renamed sp_exists_routine to sp_exist_routines and added comment,
        and changed the misnamed parameter/variable 'tables'/'table' to
        'routines'/'routine'.
      sql/sp.h:
        New function sp_routine_exists_in_table() for DROP PROCEDURE/FUNCTION.
        
        Renamed sp_exists_routine to sp_exist_routines,
        and changed the misnamed parameter 'tables' to 'routines'.
      sql/sql_acl.cc:
        Call to sp_exists_routine() renamed to sp_exist_routines().
      sql/sql_parse.cc:
        Use the new sp_routine_exists_in_table() instead of sp_find_routine(), since we don't
        want the routine definition parsed when doing DROP PROCEDURE/FUNCTION.
      cce719fb
    • unknown's avatar
      BUG#15699 importing the fix from 5.0 · 956a5b6d
      unknown authored
      sql/sql_parse.cc:
        BUG#15699,16487 merge of the fix made in 5.0
      mysql-test/r/rpl_multi_update4.result:
        New BitKeeper file ``mysql-test/r/rpl_multi_update4.result''
      mysql-test/t/rpl_multi_update4-slave.opt:
        New BitKeeper file ``mysql-test/t/rpl_multi_update4-slave.opt''
      mysql-test/t/rpl_multi_update4.test:
        New BitKeeper file ``mysql-test/t/rpl_multi_update4.test''
      mysql-test/r/rpl_ignore_table.result:
        New BitKeeper file ``mysql-test/r/rpl_ignore_table.result''
      956a5b6d
  6. 23 Jan, 2006 1 commit
    • unknown's avatar
      BUG#15699, failure to apply ignore rule for unexisting table. · 1dcfe028
      unknown authored
        
      Since replication rules execute after `mysql_multi_update_prepare' returns we
      delay to `break' in case this functions returns non-zero (some tables are not found) 
      for to examine if there is an ignore rule for a not-found table. By doing that
      it is guaranteed do/ignore replication rules logically preceed opening table routine.
      
      
      sql/sql_parse.cc:
        BUG#15699. We delay to `break' in case of unexisted tables for multi-update.
        First it is checked whether an ignore rule for such a table exists.
        
        More to the fix:
        if (opt_readonly && ...' in two places got be idented because it were
        enclosed explicitly into corresponding `else' groups. For that 
        the preceding lines with `else' were changed in to be 
        `else 
         {'.
        This grouping is necessary to avoid any inattentive
        insertion in between of `else' and belonging to the else 
        `if (opt_readonly && ...' statement.
      mysql-test/r/rpl_multi_update4.result:
        New BitKeeper file ``mysql-test/r/rpl_multi_update4.result''
      mysql-test/t/rpl_multi_update4-slave.opt:
        New BitKeeper file ``mysql-test/t/rpl_multi_update4-slave.opt''
      mysql-test/t/rpl_multi_update4.test:
        New BitKeeper file ``mysql-test/t/rpl_multi_update4.test''
      1dcfe028
  7. 10 Jan, 2006 3 commits
    • unknown's avatar
      Fix for BUG#15110: mysqldump --triggers: does not include DEFINER clause · d4d29edb
      unknown authored
      There are two main idea of this fix:
        - introduce a common function for server and client to split user value
          (<user name>@<host name>) into user name and host name parts;
        - dump DEFINER clause in correct format in mysqldump.
      
      
      BitKeeper/etc/ignore:
        added client/my_user.c libmysqld/my_user.c sql/my_user.c
      client/Makefile.am:
        Use my_user.c in linking of mysqldump executable.
      client/mysqldump.c:
        Fix for BUG#15110(mysqldump --triggers: does not include DEFINER clause)
      include/Makefile.am:
        Add my_user.c
      include/mysql_com.h:
        Introduce a constant for max user length.
      libmysqld/Makefile.am:
        Add my_user.c
      mysql-test/r/mysqldump.result:
        Update result file.
      sql-common/Makefile.am:
        Add my_user.c
      sql/Makefile.am:
        Add my_user.c
      sql/sp.cc:
        Use constant for max user length.
      sql/sp_head.cc:
        Use common function to parse user value.
      sql/sql_acl.cc:
        Use constant for max user length.
      sql/sql_parse.cc:
        Use constant for max user length.
      sql/sql_show.cc:
        Use constant for max user length.
      sql/sql_trigger.cc:
        Use constant for max user length.
      include/my_user.h:
        A header file for parse_user().
      sql-common/my_user.c:
        A new file for parse_user() implementation.
      d4d29edb
    • unknown's avatar
      Changed function prototype. · 26e7bf4a
      unknown authored
      26e7bf4a
    • unknown's avatar
      Fixed refresh_status function. · 55499cad
      unknown authored
      sql/sql_class.cc:
        Improved documentation on add_to_status().
      sql/sql_parse.cc:
        Changed refresh status to take thd as argument to avoid current_thd.
        Removed add_to_status away from loop, as it is not necessary for each
        variable, only required for each thread. In this case only the current
        thread.
      55499cad
  8. 05 Jan, 2006 1 commit
    • unknown's avatar
      Review fixes of new pushed code · 64206b18
      unknown authored
      - Fixed tests
      - Optimized new code
      - Fixed some unlikely core dumps
      - Better bug fixes for:
        - #14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
        - #14850 (ERROR 1062 when a quering a view using a Group By on a column that can be null
      
      
      mysql-test/r/create.result:
        Update results after removing wrong warnings for CREATE ... SELECT
        New tests
      mysql-test/r/handler.result:
        Drop used tables
      mysql-test/r/kill.result:
        Make test portable
      mysql-test/r/mysqlshow.result:
        Drop tables used by previous test
      mysql-test/r/trigger.result:
        Reuse old procedure name
      mysql-test/r/view.result:
        Extra tests
      mysql-test/t/create.test:
        New tests to test fix of removing wrong warnings for CREATE ... SELECT
      mysql-test/t/disabled.def:
        Enable 'kill' test (should now be portable)
      mysql-test/t/handler.test:
        Drop used tables
      mysql-test/t/kill.test:
        Make test portable even if kill doesn't work at once
      mysql-test/t/mysqlshow.test:
        Drop tables used by previous test
      mysql-test/t/trigger.test:
        Reuse old procedure name
      mysql-test/t/view.test:
        Extra tests
      sql/field.cc:
        Removed compiler warning
      sql/ha_federated.cc:
        my_snprintf -> strmake()
        (Simple optimization)
      sql/ha_ndbcluster.cc:
        Indentation cleanups and trival optimization
      sql/item.cc:
        Moved save_org_in_field() to item.cc to make it easier to test
        Remove setting of null_value as this is not needed
      sql/item.h:
        Moved save_org_in_field() to item.cc to make it easier to test
      sql/log_event.cc:
        Remove inline of slave_load_file_stem()
        Added 'extension' parameter to slave_load_file_stem() to get smaller code
        Removed not critical (or needed) DBUG_ASSERT()'s
        Cleaned up usage of slave_load_file_stem() to not depend on constant string lengths
        Indentation fixes
      sql/opt_range.cc:
        Moved code from declaration to function body
        (To make it more readable)
      sql/parse_file.cc:
        Fixed DBUG_PRINT
      sql/sp.cc:
        Simple cleanups
        - Removed not needed {} level
        - Ensure saved variables starts with old_
      sql/sp_head.cc:
        Indentation fixes
        Remove core dump when using --debug when m_next_cached_sp == 0
        Fixed compiler warnings
        Trivial optimizations
      sql/sp_head.h:
        Changed argument to set_definer() to const
        Added THD argument to recursion_level_error() to avoid call to current_thd
      sql/sql_acl.cc:
        Removed not needed test (first_not_own_table is the guard)
      sql/sql_base.cc:
        Removed extra empty line
      sql/sql_handler.cc:
        Don't test table version in mysql_ha_read() as this is already tested in lock_tables()
        Moved call to insert_fields to be after lock_table() to guard aganst reopen of tables
        (Better fix for Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash)
      sql/sql_insert.cc:
        Mark fields that are set in CREATE ... SELECT as used
        (Removed wrong warnings about field not having a default value)
      sql/sql_parse.cc:
        Removed not needed test of 'tables' (first_not_own_table is the guard)
        Simplify code
      sql/sql_select.cc:
        Use group->field to check if value is null instead of item called by 'save_org_in_field'
        This is a better bug fix for #14850 (ERROR 1062 when a quering a view using a Group By on a column that can be null)
      sql/sql_trigger.cc:
        Move sql_modes_parameters outside of function
        Indentation fixes
        Fixed compiler warning
        Ensure that thd->lex->query_tables_own_last is set properly before calling check_table_access()
        (This allows us to remove the extra test in check_grant() and check_table_access())
      64206b18
  9. 03 Jan, 2006 1 commit
    • unknown's avatar
      many warnings (practically safe but annoying) corrected · 307c0b77
      unknown authored
      client/mysqladmin.cc:
        don't use the handler after it's closed
      client/mysqlbinlog.cc:
        memory leak
      client/mysqldump.c:
        many "ignore return value" warnings, one "NULL dereference"
      cmd-line-utils/libedit/history.c:
        memory leak
      include/my_base.h:
        cleanup
      libmysql/libmysql.c:
        "return value ignored" warning
      myisam/mi_delete.c:
        "return value ignored" warning
      myisam/myisampack.c:
        "out-of-bound access" warning
      myisam/sort.c:
        "double free" warning
      mysys/default_modify.c:
        "double free" warning
      mysys/mf_iocache2.c:
        "return value ignored" warnings
      mysys/my_bitmap.c:
        s/return/DBUG_RETURN/
      mysys/my_error.c:
        memory leak
      server-tools/instance-manager/parse.cc:
        "NULL dereference" warning
      sql-common/client.c:
        "NULL dereference" warning
      sql/field.cc:
        deadcode, "NULL dereference", "uninitialized" warnings
      sql/field.h:
        unused parameters removed from constructor
      sql/ha_myisam.cc:
        "return value ignored" warnings
      sql/item.cc:
        "return value ignored" warnings
        changed constructor
      sql/item_func.cc:
        "return value ignored" warnings
      sql/log_event.cc:
        uninitialized warning
      sql/opt_range.cc:
        "double free" and uninitialized warnings
      sql/opt_range.h:
        "return value ignored" warning
      sql/repl_failsafe.cc:
        "return value ignored" warning
      sql/set_var.cc:
        "return value ignored" warning
      sql/slave.cc:
        "return value ignored" warnings
      sql/slave.h:
        new prototype
      sql/sql_acl.cc:
        deadcode and "NULL dereference" warnings
      sql/sql_db.cc:
        "return value ignored" warning
      sql/sql_handler.cc:
        "NULL dereference" warning
      sql/sql_help.cc:
        "NULL dereference" warning
      sql/sql_insert.cc:
        "return value ignored" warning
      sql/sql_parse.cc:
        "return value ignored" warning
        one more DBUG_ASSERT
      sql/sql_repl.cc:
        "return value ignored" and memory leak warnings
      sql/sql_show.cc:
        "return value ignored" and "NULL dereference"  warnings
      sql/sql_test.cc:
        "return value ignored" warning
      sql/table.cc:
        memory leak
      sql/uniques.cc:
        "return value ignored" warning
        endspaces deleted
      307c0b77
  10. 20 Dec, 2005 1 commit
    • unknown's avatar
      BUG#5390 - problems with merge tables · 5113bdff
      unknown authored
      Problem #1: INSERT...SELECT, Version for 5.0.
      Extended the unique table check by a check of lock data.
      Merge sub-tables cannot be detected by doing name checks only.
      
      
      mysql-test/r/create.result:
        BUG#5390 - problems with merge tables
        Removed a duplicate test.
      mysql-test/r/merge.result:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT
        Added test results.
      mysql-test/t/create.test:
        BUG#5390 - problems with merge tables
        Removed a duplicate test.
      mysql-test/t/merge.test:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT
        Added tests.
      sql/lock.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 5.0.
        Added a new function to find a duplicate lock in a list of tables.
      sql/mysql_priv.h:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 5.0.
        Added the thread handle to unique_table().
        Added a declaration for the new function.
      sql/sql_base.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 5.0.
        Added the thread handle to unique_table().
        Added a call to the new mysql_lock_have_duplicate(),
        which needs the thread handle, to unique_table().
      sql/sql_delete.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 5.0.
        Added the thread handle to unique_table().
      sql/sql_insert.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 5.0.
        Added the thread handle to unique_table().
      sql/sql_load.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 5.0.
        Added the thread handle to unique_table().
      sql/sql_parse.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 5.0.
        Added the thread handle to unique_table().
      sql/sql_update.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 5.0.
        Added the thread handle to unique_table().
        Replaced a call to find_table_in_local_list() by
        the newly extended unique_table().
      5113bdff
  11. 07 Dec, 2005 4 commits
    • unknown's avatar
      e30b5c78
    • unknown's avatar
      BUG#5390 - problems with merge tables · f6cac54b
      unknown authored
      Problem #1: INSERT...SELECT, Version for 4.1.
      INSERT ... SELECT with the same table on both sides (hidden
      below a MERGE table) does now work by buffering the select result.
      The duplicate detection works now after open_and_lock_tables() 
      on the locks.
      I did not find a test case that failed without the change in
      sql_update.cc. I made the change anyway as it should in theory
      fix a possible MERGE table problem with multi-table update.
      
      
      libmysqld/ha_blackhole.cc:
        BUG#5390 - problems with merge tables
        No idea, how the symlink change made it into my patch.
      mysql-test/r/create.result:
        BUG#5390 - problems with merge tables
        Removed a duplicate test.
      mysql-test/r/merge.result:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 4.1.
        Added test results.
      mysql-test/t/create.test:
        BUG#5390 - problems with merge tables
        Removed a duplicate test.
      mysql-test/t/merge.test:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 4.1.
        Added tests.
      sql/lock.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 4.1.
        Added a new function to find a duplicate lock in a list of tables.
      sql/mysql_priv.h:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 4.1.
        Added a declaration for the new function.
      sql/sql_parse.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 4.1.
        Changed the duplicate tables detection for INSERT ... SELECT
        to use the new function, which does also work for MERGE tables.
      sql/sql_update.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT, Version for 4.1.
        Changed the duplicate tables detection for UPDATE
        to use the new function, which does also work for MERGE tables.
      f6cac54b
    • unknown's avatar
      17d5f37b
    • unknown's avatar
      Patch for WL#2894: Make stored routine variables work · 6b2f1309
      unknown authored
      according to the standard.
      
      The idea is to use Field-classes to implement stored routines
      variables. Also, we should provide facade to Item-hierarchy
      by Item_field class (it is necessary, since SRVs take part
      in expressions).
      
      The patch fixes the following bugs:
        - BUG#8702: Stored Procedures: No Error/Warning shown for inappropriate data 
          type matching; 
       
        - BUG#8768: Functions: For any unsigned data type, -ve values can be passed 
          and returned; 
       
        - BUG#8769: Functions: For Int datatypes, out of range values can be passed 
          and returned; 
       
        - BUG#9078: STORED PROCDURE: Decimal digits are not displayed when we use 
          DECIMAL datatype; 
       
        - BUG#9572: Stored procedures: variable type declarations ignored; 
       
        - BUG#12903: upper function does not work inside a function; 
       
        - BUG#13705: parameters to stored procedures are not verified; 
       
        - BUG#13808: ENUM type stored procedure parameter accepts non-enumerated
          data; 
       
        - BUG#13909: Varchar Stored Procedure Parameter always BINARY string (ignores 
          CHARACTER SET); 
       
        - BUG#14161: Stored procedure cannot retrieve bigint unsigned;
      
        - BUG#14188: BINARY variables have no 0x00 padding;
      
        - BUG#15148: Stored procedure variables accept non-scalar values;
      
      
      mysql-test/r/ctype_ujis.result:
        Explicitly specify correct charset.
      mysql-test/r/schema.result:
        Drop our test database to not affect this test if some test
        left it cause of failure.
      mysql-test/r/show_check.result:
        Drop our test database to not affect this test if some test
        left it cause of failure.
      mysql-test/r/skip_name_resolve.result:
        Ignore columns with unpredictable values.
      mysql-test/r/sp-big.result:
        Add cleanup statement.
      mysql-test/r/sp-dynamic.result:
        Add cleanup statements.
      mysql-test/r/sp.result:
        Update result file.
      mysql-test/r/sum_distinct-big.result:
        Update result file.
      mysql-test/r/type_newdecimal-big.result:
        Update result file.
      mysql-test/t/ctype_ujis.test:
        Explicitly specify correct charset.
      mysql-test/t/schema.test:
        Drop our test database to not affect this test if some test
        left it cause of failure.
      mysql-test/t/show_check.test:
        Drop our test database to not affect this test if some test
        left it cause of failure.
      mysql-test/t/skip_name_resolve.test:
        Ignore columns with unpredictable values.
      mysql-test/t/sp-big.test:
        Add cleanup statement.
      mysql-test/t/sp-dynamic.test:
        Add cleanup statements.
      mysql-test/t/sp.test:
        Non-scalar values prohibited for assignment to SP-vars;
        polishing.
      mysql-test/t/type_newdecimal-big.test:
        Update type specification so that the variables
        can contain the large values used in the test.
      sql/field.cc:
        Extract create_field::init() to initialize an existing
        instance of create_field from new_create_field().
      sql/field.h:
        Extract create_field::init() to initialize an existing
        instance of create_field from new_create_field().
      sql/item.cc:
        - Introduce a new class: Item_sp_variable -- a base class
          of stored-routine-variables classes;
        - Introduce Item_case_expr -- an Item, which is used to access
          to the expression of CASE statement;
      sql/item.h:
        - Introduce a new class: Item_sp_variable -- a base class
          of stored-routine-variables classes;
        - Introduce Item_case_expr -- an Item, which is used to access
          to the expression of CASE statement;
      sql/item_func.cc:
        Pass the Field (instead of Item) for the return value of
        a function to the function execution routine.
      sql/item_func.h:
        Pass the Field (instead of Item) for the return value of
        a function to the function execution routine.
      sql/mysql_priv.h:
        Move create_virtual_tmp_table() out of sql_select.h.
      sql/sp.cc:
        Use create_result_field() instead of make_field().
      sql/sp_head.cc:
        - Add a function to map enum_field_types to Item::Type;
        - Add sp_instr_push_case_expr instruction -- an instruction
          to push CASE expression into the active running context;
        - Add sp_instr_pop_case_expr instruction -- an instruction
          to pop CASE expression from the active running context;
        - Adapt the SP-execution code to using Fields instead of Items
          for SP-vars;
        - Use create_field structure for field description instead of
          a set of members.
      sql/sp_head.h:
        - Add a function to map enum_field_types to Item::Type;
        - Add sp_instr_push_case_expr instruction -- an instruction
          to push CASE expression into the active running context;
        - Add sp_instr_pop_case_expr instruction -- an instruction
          to pop CASE expression from the active running context;
        - Adapt the SP-execution code to using Fields instead of Items
          for SP-vars;
        - Use create_field structure for field description instead of
          a set of members.
      sql/sp_pcontext.cc:
        - Change rules to assign an index of SP-variable: use
          transparent index;
        - Add an operation to retrieve a list of defined SP-vars
          from the processing context recursively.
      sql/sp_pcontext.h:
        - Change rules to assign an index of SP-variable: use
          transparent index;
        - Add an operation to retrieve a list of defined SP-vars
          from the processing context recursively.
      sql/sp_rcontext.cc:
        - Change rules to assign an index of SP-variable: use
          transparent index;
        - Use a tmp virtual table to store SP-vars instead of Items;
        - Provide operations to work with CASE expresion.
      sql/sp_rcontext.h:
        - Change rules to assign an index of SP-variable: use
          transparent index;
        - Use a tmp virtual table to store SP-vars instead of Items;
        - Provide operations to work with CASE expresion.
      sql/sql_class.cc:
        - Reflect Item_splocal ctor changes;
        - Item_splocal::get_offset() has been renamed to get_var_idx().
      sql/sql_class.h:
        Polishing.
      sql/sql_parse.cc:
        Extract create_field::init() to initialize an existing
        instance of create_field from new_create_field().
      sql/sql_select.cc:
        Take care of BLOB columns in create_virtual_tmp_table().
      sql/sql_select.h:
        Move create_virtual_tmp_table() out of sql_select.h.
      sql/sql_trigger.cc:
        Use boolean constants for boolean type instead of numerical ones.
      sql/sql_yacc.yy:
        Provide an instance of create_field for each SP-var.
      mysql-test/include/sp-vars.inc:
        The definitions of common-procedures, which are created
        under different circumstances.
      mysql-test/r/sp-vars.result:
        Result file for the SP-vars test.
      mysql-test/sp-vars.test:
        A new test for checking SP-vars functionality.
      6b2f1309
  12. 04 Dec, 2005 1 commit
    • unknown's avatar
      A set of Netware related patches. · 60f2e7a9
      unknown authored
      client/mysql.cc:
        Fixed option name.
      client/mysqladmin.c:
        Fixed option name.
      client/mysqlbinlog.cc:
        Fixed option name.
      client/mysqlcheck.c:
        Fixed option name.
      client/mysqldump.c:
        Fixed option name.
      client/mysqlimport.c:
        Fixed option name.
      client/mysqlshow.c:
        Fixed option name.
      isam/isamchk.c:
        Fixed option name.
      myisam/myisamchk.c:
        Fixed option name.
      myisam/myisampack.c:
        Fixed option name.
      sql/sql_parse.cc:
        Fix problem with kill connection on NetWare.
      60f2e7a9
  13. 03 Dec, 2005 2 commits
    • unknown's avatar
      Set thread_stack after return from end_thread() · bca61bcf
      unknown authored
      Fixes core dump when reusing thread when running debug binary
      
      
      sql-bench/bench-init.pl.sh:
        Use ENGINE= instead of TYPE=
      sql-bench/server-cfg.sh:
        Use ENGINE= instead of TYPE=
      sql/mysqld.cc:
        Set thread_stack (to avoid core dump in store_globlas)
      sql/sql_parse.cc:
        Set thread_stack after return from end_thread()
      bca61bcf
    • unknown's avatar
      this has nothing to do with the bug#13012. · da8b9967
      unknown authored
      it's about mysql_admin_commands not being reexecution-safe
      (and CHECK still isn't)
      
      
      mysql-test/r/sp-error.result:
        optimize is now allowed in SP
      mysql-test/r/sp.result:
        test repair/optimize/analyze in SP
      mysql-test/t/backup.test:
        clean up after itself
      mysql-test/t/sp-error.test:
        optimize is now allowed in SP
      mysql-test/t/sp.test:
        test repair/optimize/analyze in SP
      sql/sp_head.cc:
        all mysql_admin commands return result set
      sql/sql_parse.cc:
        all mysql_admin commands modify table list and we should restore it for SP
      sql/sql_table.cc:
        optimization - don't execute views when no view is expected/allowed
      sql/sql_yacc.yy:
        optimize is now allowed in SP
      da8b9967
  14. 29 Nov, 2005 1 commit
    • unknown's avatar
      BUG#5390 - problems with merge tables · 38b7ede9
      unknown authored
      Problem #1: INSERT...SELECT
      INSERT ... SELECT with the same table on both sides (hidden
      below a MERGE table) does now work by buffering the select result.
      The duplicate detection works now after open_and_lock_tables() 
      on the locks.
      I did not find a test case that failed without the change in
      sql_update.cc. I made the change anyway as it should in theory
      fix a possible MERGE table problem with multi-table update.
      
      
      mysql-test/r/create.result:
        BUG#5390 - problems with merge tables
        Removed a duplicate test.
      mysql-test/r/merge.result:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT
        Added test results.
      mysql-test/t/create.test:
        BUG#5390 - problems with merge tables
        Removed a duplicate test.
      mysql-test/t/merge.test:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT
        Added tests.
      sql/lock.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT
        Added a new function to find a duplicate lock in a list of tables.
      sql/mysql_priv.h:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT
        Added a declaration for the new function.
      sql/sql_parse.cc:
        BUG#5390 - problems with merge tables
        Problem #1: INSERT...SELECT
        Changed the duplicate tables detection for INSERT ... SELECT
        to use the new function, which does also work for MERGE tables.
      sql/sql_update.cc:
        BUG#5390 - problems with merge tables
        Changed the duplicate tables detection for UPDATE
        to use the new function, which does also work for MERGE tables.
      38b7ede9
  15. 28 Nov, 2005 1 commit
    • unknown's avatar
      WL#2486 - Natural/using join according to SQL:2003. · 4fd41f7c
      unknown authored
      Post-review fixes according to Monty's review.
      
      
      sql/item.h:
        Unite all code that stores and restores the state of a name resolution context
        into a class to represent the state, and methods to save/restore that
        state.
      sql/mysql_priv.h:
        Reorder parameters so that length is after the name of a field,
        and database is before table name.
      sql/sql_acl.cc:
        Reorder parameters so that length is after the name of a field,
        and database is before table name.
      sql/sql_base.cc:
        * Reorder parameters so that length is after the name of a field,
          and database is before table name.
        * Added new method - Field_iterator_table_ref::get_natural_column_ref
          to avoid unnecessary code when it is knwon that no new columns will
          be created when accessing natural join columns.
      sql/sql_insert.cc:
        Unite all code that stores and restores the state of a name resolution context
        into a class to represent the state, and methods to save/restore that
        state.
      sql/sql_lex.cc:
        Removed obsolete comment.
      sql/sql_lex.h:
        Return error from push_contex() if there is no memory.
      sql/sql_list.h:
        Extended base_list_iterator, List_iterator, and List_iterator_fast with an
        empty constructor, and init() methods, so that one doesn't have to construct
        a new iterator object every time one needs to iterate over a new list.
      sql/sql_parse.cc:
        Moved common functionality from the parser into one function, and renamed
        the function to better reflect what it does.
      sql/sql_yacc.yy:
        Moved common functionality from the parser into one function, and renamed
        the function to better reflect what it does.
      sql/table.cc:
        * Extended base_list_iterator, List_iterator, and List_iterator_fast with an
          empty constructor, and init() methods, so that one doesn't have to construct
          a new iterator object every time one needs to iterate over a new list.
        * Added new method Field_iterator_table_ref::get_natural_column_ref to be
          used in cases when it is known for sure that no new columns should be
          created.
      sql/table.h:
        - column_ref_it no longer allocated for each new list of columns
        - new method get_natural_join_column for faster/simpler access
          to natural join columns.
      4fd41f7c
  16. 25 Nov, 2005 1 commit
    • unknown's avatar
      Fixed BUG#14233: Crash after tampering with the mysql.proc table · d4088df5
      unknown authored
        Post-review version. Some minor review fixes, but also changed the way
        some errors are handled: Don't return specific parse errors; instead
        always use the more general "table corrupt" error (amended accordingly).
      
      
      mysql-test/r/sp-destruct.result:
        Updated results.
      mysql-test/r/sp-error.result:
        Updated for fully qualified name in "no return" error message.
      mysql-test/t/sp-destruct.test:
        Adopted the more consistent error handling for a corrupted mysql.proc table.
        (No more "parse error" et al).
      sql/share/errmsg.txt:
        Changed ER_SP_PROC_TABLE_CORRUPT to be more explicit.
      sql/sp.cc:
        Review fixes.
        Changed the handling of parse errors, and added the routine name to the "table corrupt" error message.
      sql/sql_base.cc:
        Review changes: Change error tests and added comments.
      sql/sql_parse.cc:
        Mored ER_SP_NORETURN test of functions to sql_yacc.yy for more general error handling.
      sql/sql_yacc.yy:
        Mored ER_SP_NORETURN test of functions from sql_parse.cc for more general error handling.
      d4088df5
  17. 24 Nov, 2005 1 commit
    • unknown's avatar
      Don't use PATH_MAX for FN_REFLEN as this uses too much stack space · 97bfd41f
      unknown authored
      Larger stack size neaded for open table on x86 64 bit
      Fix failing test cases
      Deleted symlink from bk
      
      
      BitKeeper/etc/ignore:
        added libmysqld/ha_blackhole.cc
      BitKeeper/deleted/.del-ha_blackhole.cc~727c69ef7846623a:
        Delete: libmysqld/ha_blackhole.cc
      include/my_global.h:
        Don't use PATH_MAX for FN_REFLEN as this uses too much stack space.
        (With a PATH_MAX of 4096, we use 80K for opening a table as there is several objects of size FN_REFLEN on stack)
      mysql-test/r/federated.result:
        Update results after error message changes
      mysql-test/r/grant.result:
        Update results after error message changes
      mysql-test/r/grant2.result:
        Update results after error message changes
      sql/ha_federated.cc:
        Fix error messages to be more consistent
      sql/mysql_priv.h:
        Stack size to have when opening a table
        (This was needed on x86 64 bit Linux)
      sql/share/errmsg.txt:
        Remove quotes around error string for federated as two quotes in the output looks strange
      sql/sql_base.cc:
        More correct stack size
      sql/sql_parse.cc:
        Set thread_stack before store_globals()
      sql/unireg.h:
        More correct MAX_DBKEY_LENGTH
      97bfd41f
  18. 23 Nov, 2005 3 commits
    • unknown's avatar
      Fix result of ROW_COUNT() after 'EXECUTE prepstmt'. (Bug #14956) · 0f64a622
      unknown authored
      mysql-test/r/ps.result:
        Add new results
      mysql-test/t/ps.test:
        Add new test
      sql/sql_parse.cc:
        Don't reset row_count after processing EXECUTE statement.
      0f64a622
    • unknown's avatar
      Always initialize THD::thread_stack: it's used in · 0633a41c
      unknown authored
      check_stack_overrun().
      
      
      sql/slave.cc:
        Move initialization of THD::thread_stack before THD::store_globals()
      sql/sql_acl.cc:
        Initialize THD::thread_stack in artificial THDs used
        to load gratns subsystem.
      sql/sql_class.cc:
        Add an assert that THD::thread_stack is assigned.
      sql/sql_insert.cc:
        Add initialization of THD::thread_stack (delayed insert
        thread).
      sql/sql_parse.cc:
        Move initialization of THD::thread_stack before
        THD::store_globals().
      sql/sql_udf.cc:
        Add initialization for THD::thread_stack (an artificial
        THD used to initialize UDF subsystem).
      sql/tztime.cc:
        Add initialization for THD::thread_stack (an artificial
        THD used to initialize timezones).
      0633a41c
    • unknown's avatar
      postmerge fix · 4aea839b
      unknown authored
      4aea839b
  19. 22 Nov, 2005 1 commit
    • unknown's avatar
      Recursion support made for SP (BUG#10100). · 164ce4c5
      unknown authored
      client/mysqltest.c:
        An expected error messages hiding from the log if disable_result_log is in force.
      mysql-test/r/sp-dynamic.result:
        The test expanded for case of allowed/disalowed recursion.
      mysql-test/r/sp-error.result:
        Error messages changed.
        Test of bug11394() made with allowed recursion.
      mysql-test/r/sp.result:
        Tests for recursion.
      mysql-test/r/trigger.result:
        Check that triggers are not affected by this patch.
      mysql-test/r/variables.result:
        Test of max_sp_recursion_depth variable.
      mysql-test/t/sp-dynamic.test:
        The test expanded for case of allowed/disalowed recursion.
      mysql-test/t/sp-error.test:
        Error messages changed.
        Test of bug11394() made with allowed recursion.
      mysql-test/t/sp.test:
        Tests for recursion.
      mysql-test/t/trigger.test:
        Check that triggers are not affected by this patch.
      mysql-test/t/variables.test:
        Test of max_sp_recursion_depth variable.
      sql/item_func.cc:
        sp_find_function() and sp_find_procedure() joined to sp_find_routine()
          function as it was mentioned in TODO.
      sql/mysqld.cc:
        max_sp_recursion_depth variable added.
      sql/set_var.cc:
        max_sp_recursion_depth variable added.
      sql/share/errmsg.txt:
        An error message changed.
        An error message added.
      sql/sp.cc:
        sp_find_function() and sp_find_procedure() joined to sp_find_routine()
          function as it was mentioned in TODO.
        Temory LEX is allocated on a stack, not on a heap.
        Recursion support added for stored procedures.
      sql/sp.h:
        sp_find_function() and sp_find_procedure() joined to sp_find_routine()
          function as it was mentioned in TODO.
      sql/sp_head.cc:
        Initialization of new sp_head fields to get correct list of instances
          contained one instance only.
        Stack requirement for SP instruction is increased.
        Stack free space is checked before mem root initialisation to avoid
          memory leak.
        Pointer to the free instance management added before and after
          SP execution.
      sql/sp_head.h:
        New sp_head variables added to support inst of instances of SP
          for recursion and pointer on ths first free to use instance.
      sql/sql_base.cc:
        open_table() consume a lot of stack space so we check free stack space before it.
      sql/sql_class.h:
        max_sp_recursion_depth variable added.
      sql/sql_parse.cc:
        sp_find_function() and sp_find_procedure() joined to sp_find_routine()
          function as it was mentioned in TODO.
      164ce4c5
  20. 20 Nov, 2005 1 commit
    • unknown's avatar
      Inefficient usage of String::append() fixed. · fe63e095
      unknown authored
      Bad examples of usage of a string with its length fixed.
      The incorrect length in the trigger file configuration descriptor
        fixed (BUG#14090).
      A hook for unknown keys added to the parser to support old .TRG files.
      
      
      sql/field.cc:
        Inefficient usage of String::append() fixed.
        Bad examples of usage of a string with its length fixed.
      sql/ha_berkeley.cc:
        A bad example of usage of a string with its length fixed.
      sql/ha_federated.cc:
        Inefficient usage of String::append() fixed.
      sql/ha_myisammrg.cc:
        Bad examples of usage of a string with its length fixed.
      sql/handler.cc:
        Inefficient usage of String::append() fixed.
      sql/item.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item.h:
        A bad example of usage of a string with its length fixed.
      sql/item_cmpfunc.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_func.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_strfunc.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_subselect.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_sum.cc:
        Bad examples of usage of a string with its length fixed.
        Inefficient usage of String::append() fixed.
      sql/item_timefunc.cc:
        Inefficient using of String::append() fixed.
        Bad examples of usage of a string with its length fixed.
      sql/item_uniq.h:
        Bad examples of usage of a string with its length fixed.
      sql/key.cc:
        Bad examples of usage of a string with its length fixed.
      sql/log.cc:
        Bad examples of usage of a string with its length fixed.
      sql/log_event.cc:
        Bad examples of usage of a string with its length fixed.
      sql/mysqld.cc:
        The dummy parser hook allocated.
      sql/opt_range.cc:
        Inefficient usage of String::append() fixed.
      sql/parse_file.cc:
        Bad examples of usage of a string with its length fixed.
        A hook for unknown keys added to the parser.
      sql/parse_file.h:
        A hook for unknown keys added to the parser.
      sql/protocol.cc:
        A bad example of usage of a string with its length fixed.
      sql/repl_failsafe.cc:
        Bad examples of usage of a string with its length fixed.
      sql/share/errmsg.txt:
        A warning for old format config file.
      sql/slave.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sp.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sp_head.cc:
        Bad examples of usage of a string with its length fixed.
      sql/spatial.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_acl.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_analyse.cc:
        Bad examples of usage of a string with its length fixed.
        Inefficient usage of String::append() fixed.
      sql/sql_lex.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_load.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_parse.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_prepare.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_select.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_show.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_string.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_string.h:
        The macro definition moved to sql_string.h to
          be accessible in all parts of server.
      sql/sql_table.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_trigger.cc:
        Bad examples of usage of a string with its length fixed.
        The incorrect length in the trigger file configuration descriptor
          fixed (BUG#14090).
        The hook for processing incorrect sql_mode record added.
      sql/sql_view.cc:
        A dummy  hook used for parsing views.
      sql/structs.h:
        The macro definition moved to sql_string.h to be
          accessible in all parts of server.
      sql/table.cc:
        A bad example of usage of a string with its length fixed.
      sql/tztime.cc:
        A bad example of usage of a string with its length fixed.
      fe63e095
  21. 19 Nov, 2005 1 commit
    • unknown's avatar
      Fix for bug #13825 "Triggers: crash if release savepoint" and for general · 11d4d7e6
      unknown authored
      handling of savepoints in stored routines.
      
      Fixed ha_rollback_to_savepoint()/ha_savepoint()/ha_release_savepoint()
      functions to properly handle savepoints inside of stored functions and
      triggers.
      Also now when we invoke stored function or trigger we create new savepoint
      level. We destroy it at the end of function/trigger execution and return back
      to old savepoint level.
      
      
      mysql-test/r/sp_trans.result:
        Added test for bug #13825 "Triggers: crash if release savepoint" and for
        general handling of savepoints in stored routines.
      mysql-test/t/sp_trans.test:
        Added test for bug #13825 "Triggers: crash if release savepoint" and for
        general handling of savepoints in stored routines.
      sql/ha_innodb.cc:
        innobase_savepoint():
          Replaced check which always failed due to similar check in caller
          with assertion.
      sql/handler.cc:
        ha_rollback_to_savepoint()/ha_savepoint()/ha_release_savepoint():
          Changed functions to properly support handling of savepoints
          inside of stored functions and triggers.
      sql/sql_class.cc:
        THD::reset_sub_statement_state()/restore_sub_statement_state():
          When we invoke stored function or trigger we should create new savepoint
          level. We should destroy it at the end of function/trigger execution and
          return back to old savepoint level. To support this behavior we should
          save and reset list of current savepoints on entering function and restore
          old list when we leave it.
      sql/sql_class.h:
        Sub_statement_state:
          When we invoke stored function or trigger we should create new savepoint
          level. We should destroy it at the end of function/trigger execution and
          return back to old savepoint level. To support this behavior added "savepoint"
          member which is used to save/restore list of current savepoints on
          entering/leaving function.
      sql/sql_parse.cc:
        mysql_execute_command():
          Changed processing of SQLCOM_SAVEPOINT so now it is not ignored when
          we are in autocommit mode and savepoint is set inside of stored
          function or trigger.
      11d4d7e6
  22. 18 Nov, 2005 1 commit
    • unknown's avatar
      Post-review fixes, mainly fixing all print() methods for sp_instr* classes. · 6726a6b8
      unknown authored
      Also added mysql-test files:
       include/is_debug_build.inc
       r/is_debug_build.require
       r/sp-code.result
       t/sp-code.test
      
      
      sql/sp_head.cc:
        Review fixes:
        - Some minor editorial changes
        - Fixed all print() methods for instructions:
          - reserve() enough space
          - check return value from reserve()
          - use qs_append, with length arg, whenever possible
      sql/sp_pcontext.cc:
        Review fixes.
        Also fixed bug in find_cursor().
      sql/sp_pcontext.h:
        Changed parameter names (review fix).
      sql/sql_parse.cc:
        Moved comment. (Review fix)
      mysql-test/include/is_debug_build.inc:
        New BitKeeper file ``mysql-test/include/is_debug_build.inc''
      mysql-test/r/is_debug_build.require:
        New BitKeeper file ``mysql-test/r/is_debug_build.require''
      mysql-test/r/sp-code.result:
        New BitKeeper file ``mysql-test/r/sp-code.result''
      mysql-test/t/sp-code.test:
        New BitKeeper file ``mysql-test/t/sp-code.test''
      6726a6b8
  23. 17 Nov, 2005 2 commits
    • unknown's avatar
      Background: · 91ab7076
      unknown authored
      Since long, the compiled code of stored routines has been printed in the trace file
      when starting mysqld with the "--debug" flag. (At creation time only, and only in
      debug builds of course.) This has been helpful when debugging stored procedure
      execution, but it's a bit awkward to use. Also, the printing of some of the
      instructions is a bit terse, in particular for sp_instr_stmt where only the command
      code was printed.
      
      This improves the printout of several of the instructions, and adds the debugging-
      only commands "show procedure code <name>" and "show function code <name>".
      (In non-debug builds they are not available.)
      
      
      sql/lex.h:
        New symbol for debug-only command (e.g. show procedure code).
      sql/sp_head.cc:
        Fixed some minor debug-mode bugs in show_create_*().
        New method for debugging: sp_head::show_routine_code() - returns the "assembly code"
        for a stored routine as a result set.
        Improved the print() methods for many sp_instr* classes, particularly for
        sp_instr_stmt where the query string is printed as well (up to a max length, just
        to give a hint of which statement it is). Also print the names of variables and
        cursors in some instruction.
      sql/sp_head.h:
        New debugging-only method in sp_head: show_routine_code().
        Added offset member to sp_instr_cpush for improved debug printing.
      sql/sp_pcontext.cc:
        Moved find_pvar(uint i) method from sp_pcontext.h, and made it work for all
        frames, not just the first one. (For debugging purposes)
        Added a similar find_cursor(uint i, ...) method, for debugging.
      sql/sp_pcontext.h:
        Moved find_pvar(uint i) method to sp_pcontext.cc.
        Added a similar find_cursor(uint i, ...) method, for debugging.
      sql/sql_lex.h:
        Added new sql_command codes for debugging.
      sql/sql_parse.cc:
        Added new commands for debugging, e.g. "show procedure code".
      sql/sql_yacc.yy:
        Added new commands for debugging purposes:
        "show procedure code ..." and "show function code ...".
        These are only enabled in debug builds, otherwise they result in a syntax error.
        (I.e. they don't exist)
      91ab7076
    • unknown's avatar
      A fix and a test case for Bug#14077 "Failure to replicate a stored · b6707610
      unknown authored
      function with a cursor". Enable execution of SELECT queries in SP on slave.
      
      
      mysql-test/r/rpl_sp.result:
        Test results were fixed (Bug#14077).
      mysql-test/t/rpl_sp.test:
        Add a test case for Bug#14077 "Failure to replicate a stored 
        function with a cursor".
      sql/sql_parse.cc:
        Do not rewrite SELECTs with DOs on slave: if this SELECT was for a stored
        routine cursor, slave must be able to execute the SELECT in order to
        open a cursor.
        At the moment the bug is present only in stored functions and stored
        procedures called from stored functions, because, due to
        stored procedure unfolding for replication, top level stored procedures
        are never executed on slave.
      b6707610
  24. 11 Nov, 2005 2 commits
    • unknown's avatar
      Fixes bug #14569. When no db is selected as current and we do create procedure db.sp()... · 1c677f8c
      unknown authored
      we changing current db temporarily and restore it when sp is created. however thd->db
      in this case becomes empty string rather than NULL and so all checks of thd->db == NULL 
      will be false. So if after this we'll issue create procedure sp2()... without specifying
      db it will succeed and create sp with db=NULL, which causes mysqldto crash on 
      show procedure status statement.
      
      This patch fixes the problem.
      
      
      mysql-test/r/sp-error.result:
        Result for bug #14569.
      mysql-test/t/sp-error.test:
        Test for bug #14569.
      sql/sql_db.cc:
        Fixes bug #14569. When no db is selected as current and we do create procedure db.sp()...
        we changing current db temporarily and restore it when sp is created. however thd->db
        in this case becomes empty string rather than NULL and so all checks of thd->db == NULL 
        will be false. This patch fixes this issue.
      sql/sql_parse.cc:
        Fixes bug #14569. Reverted from initial patch to check thd->db for null values only.
      1c677f8c
    • unknown's avatar
      Fixes bug #14569. In addition to check current db of not being NULL value · cb384116
      unknown authored
      it is added a check of not being empty value. When modifying SP with Admin 
      application on win32 it does not pass curent database so sp is stored with
      db=null which causes a crash later on show procedure status;
      
      
      cb384116
  25. 10 Nov, 2005 2 commits
    • unknown's avatar
      WL#2818 (Add creator to the trigger definition for privilege · 7dbea7df
      unknown authored
      checks on trigger activation)
      
      
      mysql-test/r/information_schema.result:
        Update result file: a new column DEFINER has been added to
        INFORMATION_SCHEMA.TRIGGERS.
      mysql-test/r/mysqldump.result:
        Update result file: a new column DEFINER has been added to
        INFORMATION_SCHEMA.TRIGGERS.
      mysql-test/r/rpl_ddl.result:
        Update result file: a new column DEFINER has been added to
        INFORMATION_SCHEMA.TRIGGERS.
      mysql-test/r/rpl_sp.result:
        Update result file: a new clause DEFINER has been added to
        CREATE TRIGGER statement.
      mysql-test/r/rpl_trigger.result:
        Results for new test cases were added.
      mysql-test/r/skip_grants.result:
        Error message has been changed.
      mysql-test/r/trigger.result:
        Added DEFINER column.
      mysql-test/r/view.result:
        Error messages have been changed.
      mysql-test/r/view_grant.result:
        Error messages have been changed.
      mysql-test/t/mysqldump.test:
        Drop created procedure to not affect further tests.
      mysql-test/t/rpl_trigger.test:
        Add tests for new column in information schema.
      mysql-test/t/skip_grants.test:
        Error tag has been renamed.
      mysql-test/t/view.test:
        Error tag has been renamed.
      mysql-test/t/view_grant.test:
        Error tag has been changed.
      sql/item_func.cc:
        Fix typo in comments.
      sql/mysql_priv.h:
        A try to minimize copy&paste:
          - introduce operations to be used from sql_yacc.yy;
          - introduce an operation to be used from trigger and
            view processing code.
      sql/share/errmsg.txt:
        - Rename ER_NO_VIEW_USER to ER_MALFORMED_DEFINER in order to
          be shared for view and trigger implementations;
        - Fix a typo;
        - Add a new error code for trigger warning.
      sql/sp.cc:
        set_info() was split into set_info() and set_definer().
      sql/sp_head.cc:
        set_info() was split into set_info() and set_definer().
      sql/sp_head.h:
        set_info() was split into set_info() and set_definer().
      sql/sql_acl.cc:
        Add a new check: exit from the cycle if the table is NULL.
      sql/sql_lex.h:
        - Rename create_view_definer to definer, since it is used for views
          and triggers;
        - Change st_lex_user to LEX_USER, since st_lex_user is a structure.
          So, formally, it should be "struct st_lex_user", which is longer
          than just LEX_USER;
        - Add trigger_definition_begin.
      sql/sql_parse.cc:
        - Add a new check: exit from the cycle if the table is NULL;
        - Implement definer-related functions.
      sql/sql_show.cc:
        Add DEFINER column.
      sql/sql_trigger.cc:
        Add DEFINER support for triggers.
      sql/sql_trigger.h:
        Add DEFINER support for triggers.
      sql/sql_view.cc:
        Rename create_view_definer to definer.
      sql/sql_yacc.yy:
        Add support for DEFINER-clause in CREATE TRIGGER statement.
        
        Since CREATE TRIGGER and CREATE VIEW can be similar at the start,
        yacc is unable to distinguish between them. So, had to modify both
        statements in order to make it parsable by yacc.
      mysql-test/r/trigger-compat.result:
        Result file for triggers backward compatibility test.
      mysql-test/r/trigger-grant.result:
        Result file of the test for WL#2818.
      mysql-test/t/trigger-compat.test:
        Triggers backward compatibility test: check that the server
        still can load triggers w/o definer attribute and modify
        tables with such triggers (add a new trigger, etc).
      mysql-test/t/trigger-grant.test:
        Test for WL#2818 -- check that DEFINER support in triggers
        works properly
      7dbea7df
    • unknown's avatar
      WL#2971 "change log-bin-trust-routine-creators=0 to apply only to functions". · 5d9c8e95
      unknown authored
      Indeed now that stored procedures CALL is not binlogged, but instead the invoked substatements are,
      the restrictions applied by log-bin-trust-routine-creators=0 are superfluous for procedures.
      They still need to apply to functions where function calls are written to the binlog (for example as "DO myfunc(3)").
      We rename the variable to log-bin-trust-function-creators but allow the old name until some future version (and issue a warning if old name is used).
      
      
      mysql-test/mysql-test-run.pl:
        update to new option name
      mysql-test/mysql-test-run.sh:
        update to new option name
      mysql-test/mysql_test_run_new.c:
        update to new option name
      mysql-test/r/rpl_sp.result:
        result update
      mysql-test/t/rpl_sp-slave.opt:
        we need to skip this error to not hit BUG#14769
      mysql-test/t/rpl_sp.test:
        Test update:
        1) as log-bin-trust-routine-creators now affects only functions, the testing of this option, which was
        mainly done on procedures, is moved to functions
        2) cleanup is simplified; and instead of many SHOW BINLOG EVENTS we do a big one in the end, which is more
        maintainable.
        3) we test a few more function and procedures cases to see how they replicate.
        4) removing out-of-date comments
      sql/item_func.cc:
        This warning is wrong since binlogging of functions was changed in August. If a function fails
        in the middle, it will be binlogged with its error code (i.e. properly).
      sql/mysql_priv.h:
        variable name changed
      sql/mysqld.cc:
        option name changes. A precision about --read-only.
      sql/set_var.cc:
        a new class sys_var_trust_routine_creators to be able to issue a "this is a deprecated variable" warning if used.
      sql/set_var.h:
        new class to be able to issue a "this is a deprecated variable" warning if used.
      sql/share/errmsg.txt:
        routine -> function
      sql/sp.cc:
        log-bin-trust-routine-creators now applies only to functions.
      sql/sql_parse.cc:
        1) sending ER_FAILED_ROUTINE_BREAK_BINLOG is wrong since August as we don't binlog CALL anymore but instead binlog the substatements;
        the clear_error() goes away too as it was necessary only when we created a binlog event from the "CALL" statement.
        2) log-bin-trust-routine-creators now applies only to functions.
      sql/sql_trigger.cc:
        comments.
      5d9c8e95
  26. 02 Nov, 2005 1 commit
    • unknown's avatar
      found problem removed · 3c76331f
      unknown authored
      sql/sql_parse.cc:
        allow query_tables_own_last work correctly
      sql/table.cc:
        fixed returning value for libmysqld
      3c76331f
  27. 31 Oct, 2005 1 commit
    • unknown's avatar
      postreview fixes · d32e0486
      unknown authored
      sql/item_func.cc:
        some optimisation
      sql/sql_acl.cc:
        some optimisation
      sql/sql_base.cc:
        some optimisation
      sql/sql_parse.cc:
        some optimisation
      sql/table.cc:
        some optimisation
      d32e0486