An error occurred fetching the project authors.
  1. 18 Apr, 2006 1 commit
    • unknown's avatar
      Fixed BUG#18949: Test case sp-goto is disabled · 661165ee
      unknown authored
        Removed sp-goto.test, sp-goto.result and all (disabled) GOTO code.
        Also removed some related code that's not needed any more (no possible
        unresolved label references any more, so no need to check for them).
        NB: Keeping the ER_SP_GOTO_IN_HNDLR in errmsg.txt; it might become useful
            in the future, and removing it (and thus re-enumerating error codes)
            might upset things. (Anything referring to explicit error codes.)
      
      
      BitKeeper/deleted/.del-sp-goto.result~f343103c63f64b7a:
        Delete: mysql-test/r/sp-goto.result
      BitKeeper/deleted/.del-sp-goto.test~5054d3f729692d3d:
        Delete: mysql-test/t/sp-goto.test
      mysql-test/t/disabled.def:
        sp-goto.test no longer exists.
      sql/lex.h:
        Removed (disabled) GOTO definitions.
      sql/sp_head.cc:
        Removed sp_head::check_backpatch() and simplified sp_head::backpatch().
        Without GOTO, unresolved label references are not possible, so no need
        to check for them.
      sql/sp_head.h:
        Removed sp_head::check_backpatch(). (Not needed with no GOTO)
      sql/sp_pcontext.cc:
        SP_LAB_GOTO was renamed to SP_LAB_IMPL
      sql/sp_pcontext.h:
        Removed SP_LAB_REF (no longer needed) and renamed SP_LAB_GOTO
        to SP_LAB_IMPL, since it's only used for implicit labels now.
      sql/sql_yacc.yy:
        Removed GOTO symbols and (disabled) code, and the no longer needed
        sp_head::check_backpatch() calls.
      661165ee
  2. 07 Apr, 2006 1 commit
    • unknown's avatar
      Renaming sp_pcontext members and methods; less cryptic and more consistent. · 148cf113
      unknown authored
      Also added comments, and fixing some coding style (mostly in comments too).
      There are no functional changes, so no tests or documentation needed.
      (This was originally part of a bugfix, but it was decided to not include this
       in that patch; instead it's done separately.)
      
      
      sql/sp_head.cc:
        Renaming sp_pcontext members and methods; less cryptic and more consistent.
      sql/sp_head.h:
        Renaming sp_pcontext members and methods; less cryptic and more consistent.
      sql/sp_pcontext.cc:
        Renaming sp_pcontext members and methods; less cryptic and more consistent.
        Also added comments, and fixing some coding style (mostly in comments too).
      sql/sp_pcontext.h:
        Renaming sp_pcontext members and methods; less cryptic and more consistent.
        Also added comments, and fixing some coding style (mostly in comments too).
      sql/sp_rcontext.cc:
        Renaming sp_pcontext members and methods; less cryptic and more consistent.
      sql/sp_rcontext.h:
        Renaming sp_pcontext members and methods; less cryptic and more consistent.
      sql/sql_yacc.yy:
        Renaming sp_pcontext members and methods; less cryptic and more consistent.
      148cf113
  3. 21 Mar, 2006 1 commit
    • unknown's avatar
      BUG#18293 (Values in stored procedures written to binlog unescaped): · 83ba974a
      unknown authored
      Generating character set-independent quoting of strings for the
      binary log when executing statements from inside stored procedure.
      
      
      mysql-test/r/ctype_cp932_binlog.result:
        Result change
      mysql-test/t/ctype_cp932_binlog.test:
        Adding check that string literals are written correctly for multi-byte
        character sets.
      sql/item.cc:
        Cutting out character set-independent string escaping code and putting it
        in a separate function.
      sql/log_event.cc:
        Adding characters set-independent code to separate function.
      sql/mysql_priv.h:
        Adding new function.
      sql/sp_head.cc:
        Escaping string value representing a string item.
      83ba974a
  4. 02 Mar, 2006 2 commits
    • unknown's avatar
      Fix for BUG#13198: SP executes if definer does not exist. · 3dd927cf
      unknown authored
      Basically, this fix contains a test case and removing of a workaround
      for replication. This fix became possible after pushing WL#2897
      (Complete definer support in stored routines).
      
      
      mysql-test/r/sp-security.result:
        Updated the result file to contain results of test for BUG#13198.
      mysql-test/t/sp-security.test:
        Added a test case for BUG#13198.
      sql/sp_head.cc:
        Removed the workaround for replication, since WL#2897 is pushed and
        now definer attribute/clause is fully supported in stored routines.
      3dd927cf
    • unknown's avatar
      Implementation of WL#2897: Complete definer support in the stored routines. · 9a1fed13
      unknown authored
      The idea is to add DEFINER-clause in CREATE PROCEDURE and CREATE FUNCTION
      statements. Almost all support of definer in stored routines had been already
      done before this patch.
      
      NOTE: this patch changes behaviour of dumping stored routines in mysqldump.
      Before this patch, mysqldump did not dump DEFINER-clause for stored routines
      and this was documented behaviour. In order to get full information about stored
      routines, one should have dumped mysql.proc table. This patch changes this
      behaviour, so that DEFINER-clause is dumped.
      
      Since DEFINER-clause is not supported in CREATE PROCEDURE | FUNCTION statements
      before this patch, the clause is covered by additional version-specific comments.
      
      
      client/mysqldump.c:
        Updated the code for dumping stored routines: cover DEFINER-clause
        into version-specific comment.
      mysql-test/r/gis.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/information_schema.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/mysqldump.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/rpl_ddl.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/rpl_sp.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/rpl_trigger.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/sp-security.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/sp.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/r/sql_mode.result:
        Updated result file after adding DEFINER-clause.
      mysql-test/t/sp-security.test:
        Updated result file after adding DEFINER-clause.
      sql/sp.cc:
        Added DEFINER-clause.
      sql/sp_head.cc:
        Added a new convenient variant of set_definer() operation.
      sql/sp_head.h:
        Updated result file after adding DEFINER-clause.
      sql/sql_lex.h:
        Renamed trigger_definition_begin into stmt_definition_begin to be used for
        triggers and stored routines.
      sql/sql_parse.cc:
        Check DEFINER-clause.
      sql/sql_trigger.cc:
        Renamed trigger_definition_begin into stmt_definition_begin to be used for
        triggers and stored routines.
      sql/sql_yacc.yy:
        Added DEFINER-clause.
      9a1fed13
  5. 18 Feb, 2006 1 commit
    • unknown's avatar
      Fix for BUG#14769 "Function fails to replicate if fails half-way (slave stops)": · 8470ae9c
      unknown authored
      if the function, invoked in a non-binlogged caller (e.g. SELECT, DO), failed half-way on the master,
      slave would stop and complain that error code between him and master mismatch. 
      To solve this, when a stored function is invoked in a non-binlogged caller (e.g. SELECT, DO), we binlog the function
      call as SELECT instead of as DO (see revision comment of sp_head.cc for more).
      And: minor wording change in the help text.
      This cset will cause conflicts in 5.1, I'll merge.
      
      
      mysql-test/r/rpl_sp.result:
        result update
      mysql-test/t/rpl_sp-slave.opt:
        bug just fixed so option not needed
      mysql-test/t/rpl_sp.test:
        test for more half-failed functions with DO and SELECT, to test the bug of this changeset.
        cleanup at the end.
      sql/mysqld.cc:
        function -> stored function (change suggested by Paul)
      sql/sp_head.cc:
        When a function updates data and is called from a non-binlogged statement (SELECT, DO), we binlog it 
        as SELECT myfunc(), and not DO myfunc() like before.
      8470ae9c
  6. 09 Feb, 2006 1 commit
    • unknown's avatar
      Bug#16878 dump of trigger · 2caa5608
      unknown authored
       - Pass "in_comment" variable on to new lex in sp_head::reset_lex
       - Add testcases for dumping and reloading trigger without BEGIN/END
      
      
      mysql-test/r/mysqldump.result:
        Update test result
      mysql-test/t/mysqldump.test:
        Add test for dumping trigger without begin/end, and test that the output from mysqldump can be reloaded.
      sql/sp_head.cc:
        If already in a comment before parsing a substatement, set in_comment in the new lex as well.
        This will handle cases where the comment starts before the substatement, which is common in 
        output from mysqldump to mask away syntax not supported by earlier versions of MySQL.
        Ex:
        /*!50003 CREATE TRIGGER `tr1` BEFORE INSERT ON `t1` FOR EACH ROW
        set new.created=now() */;
        ^=== sp_head::reset_lex is called when already in comment
      2caa5608
  7. 26 Jan, 2006 1 commit
    • 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
  8. 25 Jan, 2006 1 commit
    • unknown's avatar
      Fixed BUG#15737: Stored procedure optimizer bug with LEAVE · 7ee65fcf
      unknown authored
        Second version.
        The problem was that the optimizer didn't work correctly with forwards jumps
        to "no-op" hpop and cpop instructions.
        Don't generate "no-op" instructions (hpop 0 and cpop 0), it isn't actually
        necessary.
      
      
      mysql-test/r/sp-code.result:
        Updated results for new test case (BUG#15737)
      mysql-test/t/sp-code.test:
        New test case (BUG#15737)
      sql/sp_head.cc:
        Removed backpatch methods from sp_instr_hpop/cpop, since they're not needed any more.
        Added more documentation to sp_head::optimize()
      sql/sp_head.h:
        Removed backpatch and opt_mark methods from sp_instr_hpop/cpop, since they're not needed
        any more.
        Added comments to optimizer methods in sp_instr.
      sql/sql_yacc.yy:
        Don't generate "no-op" hpop and cpop instructions for LEAVE, it's not necessary.
        Just generate them when needed.
      7ee65fcf
  9. 20 Jan, 2006 1 commit
    • unknown's avatar
      Fix for BUG#15588: String overrun during sp-vars.test · b688b196
      unknown authored
      The bug appears after implementation of WL#2984
      (Make stored routine variables work according to the standard).
      
      
      mysql-test/r/type_varchar.result:
        Update result file.
      mysql-test/t/type_varchar.test:
        Add a test for BUG#15588.
      sql/field.cc:
        - use memmove() instead of memcpy() -- after implementation of WL#2984
          (Make stored routine variables work according to the standard) it is
          possible to store in the field the value from this field. For instance,
          this can happen for the following statement:
            SET sp_var = SUBSTR(sp_var, 1, 3);
      sql/sp_head.cc:
        - Work correctly with String:
          - String length has to be be reset before use;
          - qs_append() does not allocate memory, so the memory should
            be reserved beforehand.
      sql/sql_select.cc:
        Polishing: should have been done in WL#2984.
      b688b196
  10. 19 Jan, 2006 1 commit
  11. 12 Jan, 2006 1 commit
    • unknown's avatar
      Fix for bug #12198 "Temporary table aliasing does not work inside stored · c12a3dfe
      unknown authored
      functions".
      
      We should ignore alias when we check if table was already marked as temporary
      when we calculate set of tables to be prelocked. Otherwise we will erroneously
      treat tables which are used in same routine and have same name but different
      alias as non-temporary.
      
      
      mysql-test/r/sp.result:
        Added test for bug #12198 "Temporary table aliasing does not work inside stored
        functions" and other tests which cover handling of temporary tables in prelocked
        mode.
      mysql-test/t/sp.test:
        Added test for bug #12198 "Temporary table aliasing does not work inside stored
        functions" and other tests which cover handling of temporary tables in prelocked
        mode.
      sql/sp_head.cc:
        sp_head::merge_table_list():
          We should ignore alias when we check if table was already marked as temporary
          when we calculate set of tables to be prelocked. Otherwise we will erroneously
          treat tables which are used in same routine and have same name but different
          alias as non-temporary.
      c12a3dfe
  12. 11 Jan, 2006 1 commit
    • unknown's avatar
      Fixing BUG#15658: Server crashes after creating function as empty string · 1e968057
      unknown authored
        Empty strings (and names with trailing spaces) should not be allowed.
      
      
      mysql-test/r/sp-error.result:
        New testcase for BUG#15658
      mysql-test/t/sp-error.test:
        New testcase for BUG#15658
      sql/share/errmsg.txt:
        New error message for bad stored routine names.
      sql/sp_head.cc:
        Added function for checking SP names. (Mustn't be empty or contain trailing spaces.)
      sql/sp_head.h:
        Added function for checking SP names.
      sql/sql_yacc.yy:
        Check db and name for stored routines.
      1e968057
  13. 10 Jan, 2006 1 commit
    • 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
  14. 06 Jan, 2006 1 commit
  15. 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
  16. 12 Dec, 2005 1 commit
  17. 07 Dec, 2005 3 commits
    • unknown's avatar
      Fix a compilation failure. · 5213f589
      unknown authored
      5213f589
    • 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
    • unknown's avatar
      Fix for bug #11555 "Stored procedures: current SP tables locking make · 361977c0
      unknown authored
      impossible view security".
      
      We should not expose names of tables which are explicitly or implicitly (via
      routine or trigger) used by view even if we find that they are missing.
      So during building of list of prelocked tables for statement we track which
      routines (and therefore tables for these routines) are used from views. We
      mark elements of LEX::routines set which correspond to routines used in views
      by setting Sroutine_hash_entry::belong_to_view member to point to TABLE_LIST
      object for topmost view which uses routine. We propagate this mark to all
      routines which are used by this routine and which we add to this set. We also
      mark tables used by such routine which we add to the list of tables for
      prelocking as belonging to this view.
      
      
      mysql-test/r/sp-error.result:
        Added test for bug #11555 "Stored procedures: current SP tables locking make 
        impossible view security".
      mysql-test/r/view.result:
        We should not expose tables which are expicitly/implicitly used in view in
        check table statement.
      mysql-test/t/sp-error.test:
        Added test for bug #11555 "Stored procedures: current SP tables locking make 
        impossible view security".
      mysql-test/t/view.test:
        Removed comment obsoleted by bugfix.
      sql/sp.cc:
        We should not expose names of tables which are explicitly or implicitly
        (via routine or trigger) used by view even if we find that they are missing.
        So during building of list of prelocked tables for statement we track which
        routines (and therefore tables for these routines) are used from views. We
        mark elements of LEX::routines set which correspond to routines used in views
        by setting Sroutine_hash_entry::belong_to_view member to point to TABLE_LIST
        object for topmost view which uses routine. We propagate this mark to all
        routines which are used by this routine and which we add to this set. We also
        mark tables used by such routine which we add to the list of tables for
        prelocking as belonging to this view.
      sql/sp.h:
        sp_cache_routines_and_add_tables_for_view()/for_triggers():
          To be able to determine correctly uppermost view which uses this view/table
          with trigger we have to pass pointer to TABLE_LIST object instead of pointer
          to view's LEX or to Table_triggers_list object.
      sql/sp_head.cc:
        sp_head::add_used_tables_to_table_list():
          Added new argument which allows to mark tables which are added to table
          list for prelocking as belonging to view (this allows properly hide names
          of tables which are used in routines used by views).
      sql/sp_head.h:
        sp_head::add_used_tables_to_table_list():
          Added new argument which allows to mark tables which are added to table
          list for prelocking as belonging to view (this allows properly hide names
          of tables which are used in routines used by views).
      sql/sql_base.cc:
        open_tables():
          sp_cache_routines_and_add_tables_for_view()/for_triggers() now accept
          pointer to table list element as last argument, this allows them to determine
          correctly uppermost view which uses this view/table with trigger.
      sql/sql_trigger.h:
        Table_triggers_list:
          sp_cache_routines_and_add_tables_for_triggers() now accept pointer to table
          list element as last argument, this allows to determine correctly uppermost
          view which uses this table with trigger.
      361977c0
  18. 06 Dec, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#15392 "Server crashes during · 8c2d8ac7
      unknown authored
       prepared statement execute
      
      
      mysql-test/r/sp.result:
        Test results fixed: a fix for Bug#15392
      mysql-test/t/sp.test:
        A test case for Bug#15392 "Server crashes during prepared
        statement execute". No test case for error in
        Item_func_set_user_var::update as the only possible one is OOM.
      sql/sp_head.cc:
        A fix for Bug#15392 "Server crashes during prepared statement
        execute": the bug was caused by mysql_change_db() call
        which was overwriting the error state of 'ret'.
        Later in the code, suv->fix_fields() would discover
        thd->net.report_error and return it without completing
        its work. As the return value of fix_fields() was ignored,
        the server would afterwards crash in suv->update().
        The fix makes sure that a possible internal error
        is raised in reset_lex_and_exec_core and then is
        handled in sp_head::execute_procedure.
      8c2d8ac7
  19. 03 Dec, 2005 1 commit
    • 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
  20. 02 Dec, 2005 2 commits
    • unknown's avatar
      Bug#13012: REPAIR/BACKUP/RESTORE TABLE cause "packet out of order" in SP. · 17a024b0
      unknown authored
      Mark them properly as result-returning statements
      
      
      17a024b0
    • unknown's avatar
      Now we shall store only position (index of first character) · 42022710
      unknown authored
      of SELECT from query begining, to be independet of query buffer
      allocation.
      Correct procedure used to find beginning of the current statement
      during parsing (BUG#14885).
      
      
      mysql-test/r/view.result:
        BUG#14885 test suite.
      mysql-test/t/view.test:
        BUG#14885 test suite.
      sql/sp_head.cc:
        The debug print statement fixed to prevent crash in case of NULL
        in m_next_cached_sp.
      sql/sql_lex.h:
        Now we shall store only position (index of first character)
        of SELECT from query beginning.
      sql/sql_view.cc:
        Position of the SELECT used to output it to .frm.
      sql/sql_yacc.yy:
        Now we shall store only position (index of first character)
        of SELECT from query beginning.
        Correct procedure used to find beginning of the current statement
        during parsing.
      42022710
  21. 01 Dec, 2005 1 commit
    • unknown's avatar
      Fix for bug #14304: auto_increment field incorrect set from within stored... · f853fbc9
      unknown authored
      Fix for bug #14304: auto_increment field incorrect set from within stored procedure (insert select).
      
      
      sql/sp_head.cc:
        Fix for bug #14304: auto_increment field incorrect set from within stored procedure (insert select).
        - call thd->cleanup_after_query() to clean next_insert_id.
      sql/sql_class.cc:
        Fix for bug #14304: auto_increment field incorrect set from within stored procedure (insert select).
        - save/restore clear_next_insert_id
      sql/sql_class.h:
        Fix for bug #14304: auto_increment field incorrect set from within stored procedure (insert select).
        - clear_next_insert_id added
      f853fbc9
  22. 22 Nov, 2005 4 commits
    • 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
    • unknown's avatar
      Fix for BUG#13549 "Server crash with nested stored procedures · 6574612d
      unknown authored
      if inner routine has more local variables than outer one, and
      one of its last variables was used as argument to NOT operator".
      
      THD::spcont was non-0 when we were parsing stored routine/trigger
      definition during execution of another stored routine. This confused
      methods of Item_splocal and forced them use wrong runtime context.
      Fix ensures that we always have THD::spcont equal to zero during
      routine/trigger body parsing. This also allows to avoid problems
      with errors which occur during parsing and SQL exception handlers.
      
      
      mysql-test/r/sp.result:
        Test suite for bug#13549.
      mysql-test/r/trigger.result:
        Test suite for bug#13549.
      mysql-test/t/sp.test:
        Test suite for bug#13549.
      mysql-test/t/trigger.test:
        Test suite for bug#13549.
      sql/item.cc:
        Protection against using wrong context by SP local variable.
      sql/item.h:
        Protection against using wrong context by SP local variable.
      sql/protocol.cc:
        An incorrect macro name fixed.
      sql/protocol.h:
        An incorrect macro name fixed.
      sql/sp.cc:
        Do not allow SP which we are parsing to use other SP
        context (BUG#13549).
      sql/sp_head.cc:
        Protection against using wrong context by SP local variable.
      sql/sp_rcontext.h:
        Protection against using wrong context by SP local variable.
      sql/sql_cache.h:
        An incorrect macro name fixed.
      sql/sql_class.cc:
        Protection against using wrong context by SP local variable.
      sql/sql_class.h:
        Protection against using wrong context by SP local variable.
      sql/sql_trigger.cc:
        Do not allow Trigger which we are parsing to use
        other SP context (BUG#13549).
      sql/sql_yacc.yy:
        Protection against using wrong context by SP local variable.
      6574612d
    • unknown's avatar
      Post-merge fixes in sp_head.cc (print methods). · 899ca897
      unknown authored
      sql/sp_head.cc:
        Post-merge fixes.
        Use STRING_WITH_LEN in all print methods.
      899ca897
    • unknown's avatar
      Some final cleanup of the sp_instr print methods. · 6553362b
      unknown authored
      sql/sp_head.cc:
        Use a #define constant for reserving string space for numbers in print methods.
        Added some comments.
      6553362b
  23. 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
  24. 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
  25. 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
      Fix for bug #13399 Crash when executing PS/SP which should activate trigger · d518f702
      unknown authored
      which is now dropped" and bug #12329 "Bogus error msg when executing PS with
      stored procedure after SP was re-created".
      
      
      mysql-test/r/sp-error.result:
        Added test for bug #12329 "Bogus error msg when executing PS with stored
        procedure after SP was re-created".
      mysql-test/r/trigger.result:
        Added test for bug #13399 Crash when executing PS/SP which should activate
        trigger which is now dropped".
      mysql-test/t/sp-error.test:
        Added test for bug #12329 "Bogus error msg when executing PS with stored
        procedure after SP was re-created".
      mysql-test/t/trigger.test:
        Added test for bug #13399 Crash when executing PS/SP which should activate
        trigger which is now dropped".
      sql/sp_head.cc:
        sp_head::add_used_tables_to_table_list():
          We have to copy database/table names and alias to PS/SP memory since current
          instance of sp_head object can pass away before next execution of PS/SP for
          which tables are added to prelocking list.
          This will be fixed by introducing of proper invalidation mechanism once new
          TDC is ready.
      d518f702
  26. 16 Nov, 2005 1 commit
    • unknown's avatar
      Issuing error about presence of commit/rollback statements in stored functions... · 8a661e77
      unknown authored
      Issuing error about presence of commit/rollback statements in stored functions and triggers added to SP parsing procedure (BUG#13627)
      
      The crash mentioned in original bug report is already prevented by one
      of previous patches (fix for bug #13343 "CREATE|etc TRIGGER|VIEW|USER
      don't commit the transaction (inconsistency)"), this patch only improve
      error returning.
      
      
      mysql-test/r/sp-error.result:
        Test that statements which implicitly commit transaction
      mysql-test/t/sp-error.test:
        Test that statements which implicitly commit transaction
      sql/sp_head.cc:
        We set the new flag about commit/rollback statements presence
      sql/sp_head.h:
        The new flag about commit/rollback presence added
        A comment fixed
      sql/sql_yacc.yy:
        Removed commit/rollback-statement-present errors spread by this file, only one check left which check flags of a SP
      8a661e77
  27. 15 Nov, 2005 1 commit
    • unknown's avatar
      Fixed BUG#14723: Dumping of stored functions seems to cause corruption · 738038e7
      unknown authored
                       in the function body
        Changed the way the end of query was found from the lex state.
        The routine body was not extracted correctly when using the
        /*!version ... */ wrapper (in dump files); for some types of routines
        (e.g. with a label at the first begin), the trailing "*/" was not skipped.
        This is a recommit for the 5.0.16-release tree.
      
      
      mysql-test/r/sp.result:
        New test case for BUG#14723.
      mysql-test/t/sp.test:
        New test case for BUG#14723.
      sql/sp_head.cc:
        Changed the way the end of the definition and body is found from the lex state.
        In the case of /*!version */ wrappers we must take the trailing " */" into account.
      738038e7
  28. 11 Nov, 2005 1 commit
    • unknown's avatar
      Fixed BUG#14723: Dumping of stored functions seems to cause corruption · 425207c9
      unknown authored
                       in the function body
        Changed the way the end of query was found from the lex state.
        The routine body was not extracted correctly when using the
        /*!version ... */ wrapper (in dump files); for some types of routines
        (e.g. with a label at the first begin), the trailing "*/" was not skipped.
      
      
      mysql-test/r/sp.result:
        New test case for BUG#14723.
      mysql-test/t/sp.test:
        New test case for BUG#14723.
      sql/sp_head.cc:
        Changed the way the end of the definition and body is found from the lex state.
        In the case of /*!version */ wrappers we must take the trailing " */" into account.
      425207c9
  29. 10 Nov, 2005 1 commit
    • 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
  30. 08 Nov, 2005 1 commit
    • unknown's avatar
      Fixed BUG#14643: Stored Procedure: Continuing after failed var. · 850cfe78
      unknown authored
                       initialization crashes server.
        Make sure variables are initialized to something (like null) when
        the default initialization fails and a continue handler is in effect.
      
      
      mysql-test/r/sp.result:
        New test case for BUG#14643.
      mysql-test/t/sp.test:
        New test case for BUG#14643.
      sql/sp_head.cc:
        Make sure variables are initialized to something (like null) when
        the default initialization fails and a continue handler is in effect.
        If this also fails (out of memory), we have to abort without letting
        the handler catch.
      850cfe78
  31. 04 Nov, 2005 1 commit
    • unknown's avatar
      Fixed BUG#14498: Stored procedures: hang if undefined variable and exception · 898adb8c
      unknown authored
        The problem was to continue at the right place in the code after the
        test expression in a flow control statement fails with an exception
        (internally, the test in sp_instr_jump_if_not), and the exception is
        caught by a continue handler. Execution must then be resumed after the
        the entire flow control statement (END IF, END WHILE, etc).
      
      
      mysql-test/r/sp.result:
        New test case for BUG#14498.
      mysql-test/t/sp.test:
        New test case for BUG#14498.
        (Note that one call is disabled at the moment. Depends on BUG#14643.)
      sql/sp_head.cc:
        Added a continuation destination for sp_instr_jump_if_not, for the case when
        an error in the test expression causes a continue handler to catch.
        This includes new members in sp_instr_jump_if_not, adjustment of the optmizer
        (mark and move methods), and separate backpatching code (since we can't use
        the normal one for this).
        
        Also removed the class sp_instr_jump, since it's never used.
        
        ...and added some comments to the optimizer.
      sql/sp_head.h:
        Added a continuation destination for sp_instr_jump_if_not, for the case when
        an error in the test expression causes a continue handler to catch.
        This includes new members in sp_instr_jump_if_not, adjustment of the optmizer
        (mark and move methods), and separate backpatching code (since we can't use
        the normal one for this).
        
        Also removed the class sp_instr_jump, since it's never used.
      sql/sql_yacc.yy:
        Added backpatching of the continue destination for all conditional statements
        (using sp_instr_jump_if_not).
      898adb8c
  32. 21 Oct, 2005 1 commit
    • unknown's avatar
      Post-review fix. · d9b0a62e
      unknown authored
      sql/sp_head.cc:
        Post-review fix; changed string copying method (+ fixed comment typo and indention).
      d9b0a62e