1. 07 Dec, 2005 1 commit
    • unknown's avatar
      Patch for WL#2894: Make stored routine variables work · 66ce27ca
      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.
      66ce27ca
  2. 28 Nov, 2005 1 commit
  3. 22 Nov, 2005 1 commit
    • unknown's avatar
      Recursion support made for SP (BUG#10100). · d0645e35
      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.
      d0645e35
  4. 20 Nov, 2005 1 commit
    • unknown's avatar
      Inefficient usage of String::append() fixed. · 5e047f6b
      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.
      5e047f6b
  5. 10 Nov, 2005 2 commits
    • unknown's avatar
      WL#2818 (Add creator to the trigger definition for privilege · 9da2ba78
      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
      9da2ba78
    • unknown's avatar
      WL#2971 "change log-bin-trust-routine-creators=0 to apply only to functions". · 20285580
      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.
      20285580
  6. 07 Nov, 2005 1 commit
    • unknown's avatar
      fix for BUG#7947 - failure to log DO RELEASE_LOCK() if we disconnect in the middle of · d6ba8d55
      unknown authored
      transaction while holding the lock. Also test to make sure other binlogging issues
      reported in the bug have been addressed.
      
      
      sql/item_func.cc:
        fix for BUG#7947
      mysql-test/r/rpl_bug7947.result:
        New BitKeeper file ``mysql-test/r/rpl_bug7947.result''
      mysql-test/t/rpl_bug7947.test:
        New BitKeeper file ``mysql-test/t/rpl_bug7947.test''
      d6ba8d55
  7. 02 Nov, 2005 1 commit
    • unknown's avatar
      Fixed wrong merge · 5f652893
      unknown authored
      Optimize new pushed code
      
      
      sql/item_func.cc:
        Fixed wrong merge
      sql/sql_update.cc:
        Optimize new pushed code
        (There is no reason to add extra test for not common error case if code can handle it anyway)
      5f652893
  8. 01 Nov, 2005 2 commits
    • unknown's avatar
      Reverting patch for BUG #14009 (use of abs() on null value causes problems with filesort · 5bd8c9de
      unknown authored
      Fix for bug #14536: SELECT @A,@A:=... fails with prepared statements
      
      
      mysql-test/r/func_sapdb.result:
        Correct tests after reverting patch for BUG #14009 (use of abs() on null value causes problems with filesort)
      mysql-test/r/type_newdecimal.result:
        Correct tests after reverting patch for BUG #14009 (use of abs() on null value causes problems with filesort)
      mysql-test/r/user_var.result:
        More test with SELECT @A:=
      mysql-test/t/disabled.def:
        Enable user_var.test for
      mysql-test/t/user_var.test:
        More test with SELECT @A:=
      sql/item.cc:
        Simple optimization during review of new code
      sql/item_func.cc:
        Reverting patch for BUG #14009 (use of abs() on null value causes problems with filesort)
      sql/item_timefunc.h:
        timediff() can return NULL for not NULL arguments
      sql/sql_base.cc:
        Remove usage of current_thd() in mysql_make_view()
      sql/sql_lex.h:
        Remove usage of current_thd() in mysql_make_view()
      sql/sql_select.cc:
        Fix for bug #14536: SELECT @A,@A:=... fails with prepared statements
      sql/sql_view.cc:
        Remove usage of current_thd() in mysql_make_view()
        Simple optimization of new code
      sql/sql_view.h:
        Remove usage of current_thd() in mysql_make_view()
      sql/table.cc:
        Simple optimization of new code
      5bd8c9de
    • unknown's avatar
      Review of new pushed code · ac79bc2b
      unknown authored
      Removed wrong fix for bug #14009 (use of abs() on null value causes problems with filesort)
      Mark that add_time(), time_diff() and str_to_date() can return null values
      
      
      myisam/mi_check.c:
        keyoffset is not a position (no %lx here)
      mysql-test/r/func_sapdb.result:
        Fixed test after marking that timediff() can return NULL
      sql/item_func.cc:
        Removed wrong fix for bug #14009 (use of abs() on null value causes problems with filesort)
      sql/item_timefunc.cc:
        Mark that add_time and str_to_date() can return null values
      sql/item_timefunc.h:
        Mark that time_diff can return 0
      sql/spatial.cc:
        Simple cleanups during review of new code
      ac79bc2b
  9. 31 Oct, 2005 1 commit
    • unknown's avatar
      postreview fixes · 672f2412
      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
      672f2412
  10. 27 Oct, 2005 3 commits
    • unknown's avatar
      fixe of typos, comments & layout · 03cafab5
      unknown authored
      sql/item_func.cc:
        fixed typo
      sql/sql_acl.cc:
        comment fixed
      sql/sql_parse.cc:
        comment fixed
      sql/sql_view.cc:
        layout fixed
      sql/table.cc:
        typo fixed
        layout fixed
      sql/table.h:
        typo fixed
      03cafab5
    • unknown's avatar
      support of view underlying tables and SP functions security check added (BUG#9505) (WL#2787) · 9c6c527c
      unknown authored
      mysql-test/r/information_schema.result:
        error message changed
      mysql-test/r/sp.result:
        error message changed
      mysql-test/r/sql_mode.result:
        fixed test suite
      mysql-test/r/view.result:
        error message changed
      mysql-test/r/view_grant.result:
        test of underlying view tables check
      mysql-test/t/sql_mode.test:
        fixed test suite
      mysql-test/t/view_grant.test:
        test of underlying view tables check
      sql/item.cc:
        check of underlying tables privilege added
      sql/item.h:
        Name the resolution context points to the security  context of view (if item belong to the view)
      sql/item_func.cc:
        a view error hiding for execution of prepared function belonged to a view
        fixed checking privileges if stored functions belonds to some view
      sql/mysql_priv.h:
        refult of derived table processing functions changed to bool
        Security_context added as an argument to find_field_in_table()
      sql/share/errmsg.txt:
        error message fixed
      sql/sq...
      9c6c527c
    • unknown's avatar
      Add DROP TABLE before trying to create view (in mysqldump) · 22501603
      unknown authored
      Cleaned up xxxx_gis.test's and made gis_generic.inc independent of ndb
      (Note that archive_gis.test fails, but this is independent of this patch)
      
      
      client/mysqldump.c:
        Add DROP TABLE to be able to re-run mysqldump if it fails after 'table-named-as-view' is created
      mysql-test/include/gis_generic.inc:
        Remove dependency of ndb
      mysql-test/include/have_archive.inc:
        Fix syntax
      mysql-test/include/have_geometry.inc:
        Fix syntax
      mysql-test/r/mysqldump.result:
        New test results after adding 'drop table'
      mysql-test/t/archive_gis.test:
        gis_generic tests for have_geometry.inc
      mysql-test/t/bdb_gis.test:
        gis_generic tests for have_geometry.inc
      mysql-test/t/innodb_gis.test:
        gis_generic tests for have_geometry.inc
      mysql-test/t/ndb_gis.test:
        gis_generic tests for have_geometry.inc
      sql/item_func.cc:
        Simplify code (as signal_divide_by_null sets 'null_value')
      22501603
  11. 26 Oct, 2005 1 commit
  12. 18 Oct, 2005 2 commits
  13. 17 Oct, 2005 1 commit
  14. 15 Oct, 2005 2 commits
    • unknown's avatar
      Fixed bug #12762: · e57b7261
      unknown authored
      allowed set functions aggregated in outer subqueries, allowed nested set functions.
      
      
      mysql-test/r/func_gconcat.result:
        Changed a query when fixing bug #12762.
      mysql-test/r/subselect.result:
        Added test cases for bug #12762.
        Allowed set functions aggregated in outer subqueries. Allowed nested set functions.
      mysql-test/t/func_gconcat.test:
        Changed a query when fixing bug #12762.
      mysql-test/t/subselect.test:
        Added test cases for bug #12762.
        Allowed set functions aggregated in outer subqueries. Allowed nested set functions.
      sql/item.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Added a parameter to Item::split_sum_func2 aliowing to defer splitting for set functions
        aggregated in outer subquries.
        Changed Item_field::fix_fields to calculate attributes used when checking context conditions
        for set functions.
        Allowed alliases for set functions defined in outer subqueries.
      sql/item.h:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Added a parameter to Item::split_sum_func2 aliowing to defer splitting for set functions
        aggregated in outer subquries.
      sql/item_cmpfunc.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Added a parameter to Item::split_sum_func2 aliowing to defer splitting for set functions
        aggregated in outer subquries.
      sql/item_func.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Added a parameter to Item::split_sum_func2 aliowing to defer splitting for set functions
        aggregated in outer subquries.
      sql/item_row.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Added a parameter to Item::split_sum_func2 aliowing to defer splitting for set functions
        aggregated in outer subquries.
      sql/item_strfunc.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Added a parameter to Item::split_sum_func2 aliowing to defer splitting for set functions
        aggregated in outer subquries.
      sql/item_subselect.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced next levels for subqueries and a bitmap of nesting levels showing
        in what subqueries a set function can be aggregated.
      sql/item_sum.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Added Item_sum methods to check context conditions imposed on set functions.
      sql/item_sum.h:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Added Item_sum methods to check context conditions imposed on set functions.
      sql/mysql_priv.h:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced a type of bitmaps to be used for nesting constructs.
      sql/sql_base.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced next levels for subqueries and a bitmap of nesting levels showing
        in what subqueries a set function can be aggregated.
      sql/sql_class.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced a bitmap of nesting levels showing in what subqueries a set function can be aggregated.
      sql/sql_class.h:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced a bitmap of nesting levels showing in what subqueries a set function can be aggregated.
      sql/sql_delete.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced a bitmap of nesting levels showing in what subqueries a set function can be aggregated.
      sql/sql_lex.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced next levels for subqueries and a bitmap of nesting levels showing
        in what subqueries a set function can be aggregated.
      sql/sql_lex.h:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced next levels for subqueries and a bitmap of nesting levels showing
        in what subqueries a set function can be aggregated.
      sql/sql_parse.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced next levels for subqueries.
      sql/sql_prepare.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced a bitmap of nesting levels showingin what subqueries a set function can be aggregated.
      sql/sql_select.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced next levels for subqueries and a bitmap of nesting levels showing
        in what subqueries a set function can be aggregated.
      sql/sql_update.cc:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced a bitmap of nesting levels showing in what subqueries a set function can be aggregated.
      sql/sql_yacc.yy:
        Fixed bug #12762:
        allowed set functions aggregated in outer subqueries, allowed nested set functions.
        Introduced next levels for subqueries.
      e57b7261
    • unknown's avatar
      Fix for bug #13573 (wrong data inserted for too big decimals) · b4f9b009
      unknown authored
      mysql-test/r/type_newdecimal.result:
        result fixed
      mysql-test/t/type_newdecimal.test:
        test case added
      sql/item_func.cc:
        conditions fixed
      sql/my_decimal.cc:
        overflow handling added
      sql/my_decimal.h:
        overflow handling added - so the result of operation gets maximum possible
        decimal value
      b4f9b009
  15. 11 Oct, 2005 1 commit
    • unknown's avatar
      Reviewing new pushed code · d6ccd7c7
      unknown authored
      - CHAR() now returns binary string as default
      - CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
      - Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
        (Some old systems returns ETIME and it's safer to test for both values
         than to try to write a wrapper for each old system)
      - Fixed new introduced bug in NOT BETWEEN X and X
      - Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
      - Use octet2hex() for all conversion of string to hex
      - Simplify and optimize code
      
      
      client/mysqldump.c:
        Simple optimizations of new code
        Indentation fixes
      client/mysqltest.c:
        Removed not needed variable
      include/mysql_com.h:
        Made octec2hex() more usable
      mysql-test/r/ctype_utf8.result:
        CHAR() now returns binary string as default
      mysql-test/r/func_str.result:
        CHAR() now returns binary string as default
      mysql-test/r/range.result:
        Added test to verify new introduced bug in NOT BETWEEN X and X
      mysql-test/r/user_var-binlog.result:
        CHAR() now returns binary string as default
      mysql-test/r/view.result:
        More tests of view rename
      mysql-test/t/ctype_utf8.test:
        CHAR() now returns binary string as default
      mysql-test/t/func_str.test:
        CHAR() now returns binary string as default
      mysql-test/t/range.test:
        Added test to verify new introduced bug in NOT BETWEEN X and X
      mysql-test/t/view.test:
        More tests of view rename
      mysys/mf_keycache.c:
        Indentation changes
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      mysys/my_os2cond.c:
        Fix to MySQL coding style
        Optimized functions
      mysys/thr_lock.c:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      mysys/thr_mutex.c:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      server-tools/instance-manager/instance.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      server-tools/instance-manager/thread_registry.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/ha_federated.cc:
        Use octet2hex()
      sql/ha_ndbcluster.cc:
        Removed not used variable
      sql/handler.cc:
        Simplify code
        Use *NONE* instead of 'none' for not existing storage engine
        Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
      sql/item.h:
        Remove not needed test for *ref.  (If ref is set, it should never point at 0)
      sql/item_func.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
        Simplify code
        More comments
        Require that last argument to find_and_check_access() is given
        (Made code shorter and faster)
      sql/item_strfunc.cc:
        Changed CHAR() to return result in binary collation
        CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
        
        Bar will shortly add the following syntax:
        CHAR(.... USING character_set)
        and ensure that
        CONVERT(CHAR(....) USING utf8) cuts not legal utf8 strings
        Use ocet2hex()
      sql/item_strfunc.h:
        CHAR() now returns a binary string
      sql/log_event.cc:
        Use octet2hex()
        Simplify code
      sql/parse_file.cc:
        Indentation fixes
        Use for() instead of while()
      sql/password.c:
        Make octet2hex() more generally usable by returning pointer to end 0
      sql/slave.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_base.cc:
        Indentation fixes
      sql/sql_insert.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_manager.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_parse.cc:
        Don't check thd->db when checking for function privileges
      sql/sql_prepare.cc:
        Fixed wrong merge
      sql/sql_select.cc:
        Fixed new bug for NOT BETWEEN X and X
      sql/sql_show.cc:
        Removed not used variable
      sql/sql_table.cc:
        Indentation fixed
        Removed DBUG_PRINT that is obvious from context
      sql/sql_view.cc:
        Simplify code
      sql/unireg.cc:
        Use octet2hex()
      d6ccd7c7
  16. 07 Oct, 2005 1 commit
    • unknown's avatar
      ctype_utf8.result, ctype_utf8.test: · 3333f2ff
      unknown authored
        Adding test case.
      item_func.cc:
        Bug#13751 find_in_set: Illegal mix of collations.
        Character set conversion was forgotten in find_in_set.
      
      
      sql/item_func.cc:
        Bug#13751 find_in_set: Illegal mix of collations.
        Character set conversion was forgotten in find_in_set.
      mysql-test/t/ctype_utf8.test:
        Adding test case.
      mysql-test/r/ctype_utf8.result:
        Adding test case.
      3333f2ff
  17. 06 Oct, 2005 1 commit
    • unknown's avatar
      Review of code pushed since last 5.0 pull: · 872a537c
      unknown authored
      Ensure that ccache is also used for C programs
      mysql: Ensure that 'delimiter' works the same way in batch mode as in normal mode
      mysqldump: Change to use ;; (instead of //) as a stored procedure/trigger delimiter
      Fixed test cases by adding missing DROP's and rename views to be of type 'v#'
      Removed MY_UNIX_PATH from fn_format()
      Removed current_db_used from TABLE_LIST
      Removed usage of 'current_thd' in Item_splocal
      Removed some compiler warnings
      A bit faster longlong2str code
      
      
      
      BUILD/FINISH.sh:
        Ensure that ccache is also used for C programs
      BUILD/SETUP.sh:
        Ensure that ccache is also used for C programs
      client/mysql.cc:
        More debugging
        Ensure that 'delimiter' works the same way in batch mode as in normal mode.
        Compare 'delimiter' command case-insensitive.
        The above fixes the delimiter bugs so that we can now use ;; as a trigger/SP function delimiter in mysqldump.
      client/mysqldump.c:
        Indentation fixes
        Use ;; as a delmimiter for stored procedures and tri...
      872a537c
  18. 21 Sep, 2005 2 commits
    • unknown's avatar
      sql/item_func.cc · 314e6f63
      unknown authored
        remove extra ";" after function
      
      
      sql/item_func.cc:
        remove extra ";" after function
      314e6f63
    • unknown's avatar
      postmerge fixes · 20647176
      unknown authored
      libmysqld/lib_sql.cc:
        struct st_security_context nad to class Security_context
      sql/item_func.cc:
        fixed method call, name and contence to be compatible with new code
      sql/item_func.h:
        fixed method to be compatible wit new code
      sql/sql_parse.cc:
        fixed typo
        removed compiler warnings
      20647176
  19. 20 Sep, 2005 2 commits
    • unknown's avatar
      WL#2787 (Add view definer/owner to the view definition (.frm) to check... · a95d74bb
      unknown authored
      WL#2787 (Add view definer/owner to the view definition (.frm) to check privileges on used tables and stored routines when using a VIEW.)
      Part 2 postreview fixes.
      
      
      sql/ha_innodb.cc:
        Renamed structure st_security_context to class Security_context
      sql/item_func.cc:
        Renamed structure st_security_context to class Security_context
      sql/item_strfunc.cc:
        fixed USER() function
      sql/log.cc:
        variable used to optimize access to security context
      sql/mysql_priv.h:
        Renamed structure st_security_context to class Security_context
      sql/mysqld.cc:
        main security context used direcly
      sql/sp_head.cc:
        Renamed structure st_security_context to class Security_context
        removed unneed variable
      sql/sp_head.h:
        Comment inmroved
        Renamed structure st_security_context to class Security_context
      sql/sql_acl.cc:
        Renamed structure st_security_context to class Security_context
        fixed function comment and return value
        variable used to optimize access to security context
        Renamed method of Security_ontext
      sql/sql_acl.h:
        fixed return value type
      sql/sql_class.cc:
        Renamed structure st_security_context to class Security_context
      sql/sql_class.h:
        Renamed structure st_security_context to class Security_context
        Method renamed
      sql/sql_db.cc:
        Renamed structure st_security_context to class Security_context
        fixed layout
      sql/sql_parse.cc:
        registration of wanted access for underlying tables
      sql/sql_show.cc:
        Renamed structure st_security_context to class Security_context
        fixed layout
      sql/sql_yacc.yy:
        Renamed structure st_security_context to class Security_context
      a95d74bb
    • unknown's avatar
      item_func.cc: · 930b6b7d
      unknown authored
        Fixed mistake in fix for bug#12812
      
      
      sql/item_func.cc:
        Fixed mistake in fix for bug#12812
      930b6b7d
  20. 19 Sep, 2005 1 commit
    • unknown's avatar
      Fix bug #12812 create view calling a function works without execute right on function · 3652f2f1
      unknown authored
      Execution rigths on function was checked just before function execution,
      thus it was unknown on prepare stage whether user have right to execute 
      particular function.
      
      Added access rights checking function which is called right after fixing
      Item_func_sp.
      This have additional effect that if user don't have rights for execution
      query will fail on earlier stage and will not waste resources on optimizing
      with failing on execution stage.
      
      
      sql/item_func.h:
        Fix bug#12812 create view calling a function works without execute right on function
      sql/item_func.cc:
        Fix bug#12812 create view calling a function works without execute right on function
        Added function Item_func_sp::check_access() which checks access rights.
        Added function Item_func_sp::fix_field() which calls check_access() after fixing.
        Item_func_sp::execute() now calls to check_access() to check access rights.
      mysql-test/t/sp.test:
        Test case for bug#12812 create view calling a function works without execute right on function
      mysql-test/r/sp.result:
        Test case for bug#12812 create view calling a function works without execute right on function
      3652f2f1
  21. 15 Sep, 2005 1 commit
    • unknown's avatar
      WL#2787 (part 2, ver 3 (merged)) changed securety context switching · e80e4b10
      unknown authored
      libmysqld/lib_sql.cc:
        changed securety context switching
      mysql-test/r/rpl_sp.result:
        now it show real information from changed security context of SP (checked)
      sql/ha_innodb.cc:
        changed securety context switching
      sql/item.cc:
        changed securety context switching
      sql/item_func.cc:
        changed securety context switching
      sql/item_strfunc.cc:
        changed securety context switching
      sql/log.cc:
        changed securety context switching
      sql/mysql_priv.h:
        changed securety context switching
      sql/mysqld.cc:
        changed securety context switching
      sql/repl_failsafe.cc:
        changed securety context switching
      sql/set_var.cc:
        changed securety context switching
      sql/slave.cc:
        changed securety context switching
      sql/sp.cc:
        changed securety context switching
      sql/sp_head.cc:
        changed securety context switching
        in case of inability to switch context  we return error now
      sql/sp_head.h:
        changed securety context switching
      sql/sql_acl.cc:
        changed securety context switching
      sql/sql_acl.h:
        changed securety context switching
      sql/sql_base.cc:
        changed securety context switching
      sql/sql_class.cc:
        changed securety context switching
      sql/sql_class.h:
        changed securety context switching
      sql/sql_db.cc:
        changed securety context switching
      sql/sql_insert.cc:
        changed securety context switching
      sql/sql_parse.cc:
        changed securety context switching
      sql/sql_show.cc:
        changed securety context switching
      sql/sql_trigger.cc:
        changed securety context switching
      sql/sql_view.cc:
        changed securety context switching
      sql/sql_yacc.yy:
        changed securety context switching
      e80e4b10
  22. 14 Sep, 2005 1 commit
  23. 07 Sep, 2005 1 commit
    • unknown's avatar
      Fix for BUG#12637: Make SPs+user variables replication work: · c4dc984a
      unknown authored
      * Allocate thd->user_var_events elements on appropriate mem_root
      * If several SP statements are binlogged as a single statement, collect all user var
        accesses they make (grep for StoredRoutinesBinlogging for details)
      
      
      mysql-test/r/rpl_sp_effects.result:
        Testcase for BUG#12637
      mysql-test/r/sp.result:
        re-enabled test case for BUG#12297
      mysql-test/t/rpl_sp_effects.test:
        Testcase for BUG#12637
      mysql-test/t/sp.test:
        re-enabled test case for BUG#12297
      sql/item_func.cc:
        Fix for BUG#12637: Make SPs+user variables replication work:
        * Allocate thd->user_var_events elements on appropriate mem_root
        * If several SP statements are binlogged as a single statement, collect all user var
          accesses they make.
      sql/log.cc:
        Fix for BUG#12637: Make SPs+user variables replication work:
        * Allocate thd->user_var_events elements on appropriate mem_root
        * If several SP statements are binlogged as a single statement, collect all user var
          accesses they make.
      sql/sp_head.cc:
        Fix for BUG#12637: Make SPs+user variables replication work:
        * Allocate thd->user_var_events elements on appropriate mem_root
        * If several SP statements are binlogged as a single statement, collect all user var
          accesses they make.
      sql/sp_head.h:
        Remove compiler warning.
      sql/sql_class.h:
        Fix for BUG#12637: Make SPs+user variables replication work.
      sql/sql_parse.cc:
        Fix for BUG#12637: Make SPs+user variables replication work.
      c4dc984a
  24. 06 Sep, 2005 1 commit
  25. 02 Sep, 2005 2 commits
    • unknown's avatar
      Implement WL#2661 "Prepared Statements: Dynamic SQL in Stored Procedures". · 9fbcfd67
      unknown authored
      The idea of the patch is to separate statement processing logic,
      such as parsing, validation of the parsed tree, execution and cleanup, 
      from global query processing logic, such as logging, resetting
      priorities of a thread, resetting stored procedure cache, resetting
      thread count of errors and warnings.
      This makes PREPARE and EXECUTE behave similarly to the rest of SQL
      statements and allows their use in stored procedures.
      This patch contains a change in behaviour:
      until recently for each SQL prepared statement command, 2 queries
      were written to the general log, e.g.
      [Query]   prepare stmt from @stmt_text;
      [Prepare] select * from t1 <-- contents of @stmt_text
      The chagne was necessary to prevent [Prepare] commands from being written
      to the general log when executing a stored procedure with Dynamic SQL.
      We should consider whether the old behavior is preferrable and probably
      restore it.
      This patch refixes Bug#7115, Bug#10975 (partially), Bug#10605 (various bugs
      in Dynamic SQL reported before it was disabled).
      
      
      mysql-test/r/not_embedded_server.result:
        Since we don't want to log Dynamic SQL in stored procedures,
        now the general log gets only one log entry per SQL statement.
      mysql-test/r/sp-error.result:
        - remove obsolete tests
        - a better error message for the case when a stored procedure that
        returns a result set is called from a function
      mysql-test/r/trigger.result:
        - a better error message for the case when a stored procedure that
        returns a result set is called from a trigger
      mysql-test/t/sp-error.test:
        - a better error message for the case when a stored procedure that
          returns a result set is called from a function.
        - move the comment to its place (end of file).
      mysql-test/t/trigger.test:
        - a better error message for the case when a stored procedure that
        returns a result set is called from a trigger
      sql/item_func.cc:
        - we need to pass sql_command explicitly to get_var_with_binlog, because
        when creating a query for SQL prepared statement thd->lex->sql_command
        points at SQLCOM_EXECUTE, which is not listed in the list of update
        queries.
      sql/log_event.h:
        - remove an extra copy of the previous sentence
      sql/mysql_priv.h:
        - fix declarations of sql_prepare.cc API
      sql/share/errmsg.txt:
        - a new error message, when one attempts to execute a prepared statement
        which is currently being executed (this can happen only in Dynamic SQL
        at the moment).
      sql/sp_head.cc:
        - extend sp_multi_results_command to return different flags for a
        command (and rename it)
        - add support for SQLCOM_PREPARE,SQLCOM_EXECUTE, SQLCOM_DEALLOCATE
          to sp_get_flags_for_command
        - replace multiple boolean sp_head members with uint m_flags
        - a fix for a crash when user variables are used in a stored procedure
          and binlog is on. A temporary fix for Bug#12637 "SP crashes the server 
         if it has update query with user var & binlog is enabled", which actually
         stands for stored functions: now instead of a crash we break
         replication if a user variable is used in a stored function which 
         is executed in prelocked mode.
      sql/sp_head.h:
        - replace multiple boolean flags of sp_head with uint m_flags;
        - add flag CONTAINS_DYNAMIC_SQL
        - use this flag to error if a stored procedure with Dynamic SQL is
          called from a function or trigger.
      sql/sql_class.cc:
        - Statement_map::insert should not delete a statement if it exists,
          now it's done externally to be able to handle the case when the
          statement being deleted is in use.
        - remove extra code (free_list is already reset in free_items)
      sql/sql_lex.cc:
        - add lex->stmt_prepare_mode; we can't rely on thd->command any more,
          because we don't reset it any more (Dynamic SQL requirement is that
          PS are as little intrusive as possible).
      sql/sql_lex.h:
        - declare bool LEX::stmt_prepare_mode
      sql/sql_parse.cc:
        - move prepared statement code to sql_prepare.cc
        - change declarations (refactored code)
        - better error message when one attempts to use Dynamic SQL or a 
          stored procedure that returns a result set in a function or trigger.
      sql/sql_prepare.cc:
        - major refactoring to ensure PREPARE/EXECUTE commands do not reset global THD
          state and allow their use in stored procedures.
        - add Prepared_statement::flags and use it to ensure no recursive execution
          of a prepared statement is possible
        - better comments
      sql/sql_yacc.yy:
        - enable PREPARE/EXECUTE/DEALLOCATE in stored procedures
        - produce an error message on attempt to use PREPARE/EXECUTE/DEALLOCATE
          in a stored function or trigger
      mysql-test/r/sp-dynamic.result:
        - sp-dynamic.test results
      mysql-test/t/sp-dynamic.test:
        - a new test for PREPARE/EXECUTE/DEALLOCATE in stored procedures.
      9fbcfd67
    • unknown's avatar
      Rename: · 8857d641
      unknown authored
      - current_arena to stmt_arena: the thread may have more than one
      'current' arenas: one for runtime data, and one for the parsed 
      tree of a statement. Only one of them is active at any moment.
      - set_item_arena -> set_query_arena, because Item_arena was renamed to 
      Query_arena a while ago
      - set_n_backup_item_arena -> set_n_backup_active_arena;
      the active arena is the arena thd->mem_root and thd->free_list
      are currently pointing at.
      - restore_backup_item_arena -> restore_active_arena (with the same
      rationale)
      - change_arena_if_needed -> activate_stmt_arena_if_needed; this
      method sets thd->stmt_arena active if it's not done yet.
      
      
      sql/item.cc:
        Rename.
      sql/item_cmpfunc.cc:
        Rename.
      sql/item_func.cc:
        Rename.
      sql/item_subselect.cc:
        Rename.
      sql/item_subselect.h:
        Remove an unused forward declaration.
      sql/item_sum.h:
        Remove an unused forward declaration.
      sql/mysql_priv.h:
        Remove an unused forward declaration.
      sql/sp.cc:
        Rename.
      sql/sp_head.cc:
        Rename.
      sql/sql_base.cc:
        Rename.
      sql/sql_class.cc:
        Rename.
      sql/sql_class.h:
        Rename.
      sql/sql_lex.cc:
        Rename.
      sql/sql_parse.cc:
        Rename.
      sql/sql_prepare.cc:
        Rename.
      sql/sql_select.cc:
        Rename.
      sql/sql_show.cc:
        Rename.
      sql/sql_union.cc:
        Rename.
      sql/sql_view.cc:
        Rename.
      sql/table.cc:
        Rename.
      8857d641
  26. 29 Aug, 2005 1 commit
    • unknown's avatar
      fix for bug #12841 · dd62a4bd
      unknown authored
      (Server crash on DO IFNULL(NULL,NULL)
      (fixes also "SELECT CAST(IFNULL(NULL,NULL) as DECIMAL)" unreported
       crash)
      (new revampled fix with suggestions from Igor)
      
      
      mysql-test/r/select.result:
        result of test for bug 12841
      mysql-test/t/select.test:
        test for bug #12841
        (Server crash on DO IFNULL(NULL,NULL)
      sql/item_func.cc:
        don't use the return value of ::str_op() without checking it
        whether checking it for NULL. (fixes bug #12841 as well as
        another not reported bug, but existing one - test case added).
        All other places where ::str_op() is used are safe.
      dd62a4bd
  27. 27 Aug, 2005 1 commit
    • unknown's avatar
      func_str.result, null.result: · e1ebf33f
      unknown authored
        Corrected results after the fix for bug #12791.
      func_test.result, func_test.test:
        Added test cases for bug #12791.
      item_func.h, item_func.cc:
        Fixed bug #12791.
        Made LEAST/GREATES fully Oracle compliant.
        LEAST/GREATEST did not return NULL if only some
        arguments were NULLs. This did not comply with Oracle.
      
      
      sql/item_func.cc:
        Fixed bug #12791.
        Made LEAST/GREATES fully Oracle compliant.
        LEAST/GREATEST did not return NULL if only some
        arguments were NULLs. This did not comply with Oracle.
      sql/item_func.h:
        Fixed bug #12791.
        Made LEAST/GREATES fully Oracle compliant.
        LEAST/GREATEST did not return NULL if only some
        arguments were NULLs. This did not comply with Oracle.
      mysql-test/t/func_test.test:
        Added test cases for bug #12791.
      mysql-test/r/func_test.result:
        Added test cases for bug #12791.
      mysql-test/r/null.result:
        Corrected results after the fix for bug #12791.
      mysql-test/r/func_str.result:
        Corrected results after the fix for bug #12791.
      e1ebf33f
  28. 25 Aug, 2005 1 commit
    • unknown's avatar
      Fix for BUG#12335 (SP replication) : New binlogging strategy for stored PROCEDUREs/FUNCTIONs. · b45f0cd0
      unknown authored
      "Interleaved SPs execution is now binlogged properly, "SELECT spfunc()" is binlogged too.
      The known remaining issue is binlogging/replication of "a routine is deleted while it is executed" scenario.
      
      
      mysql-test/r/rpl_sp.result:
        Fix for BUG#12335: updated test cases/results
      mysql-test/t/rpl_sp.test:
        Fix for BUG#12335: updated test cases/results
      sql/item.cc:
        Fix for BUG#12335 (SP replication): 
         - Added Item_name_const 'function'
         - Addede 'delete reuse' to call dtor on item reuse
      sql/item.h:
        Fix for BUG#12335 (SP replication) : Added Item_name_const 'function' + code cleanup
      sql/item_create.cc:
         Fix for BUG#12335 (SP replication) : Added Item_name_const 'function'
      sql/item_create.h:
         Fix for BUG#12335 (SP replication) : Added Item_name_const 'function'
      sql/item_func.cc:
        Fix for BUG#12335 (SP replication) : binary log is now constrolled from within execute_function.
      sql/lex.h:
        Fix for BUG#12335 ...
      b45f0cd0
  29. 18 Aug, 2005 1 commit
  30. 16 Aug, 2005 1 commit
    • unknown's avatar
      Fix SLEEP() to be interruptable. (Bug #12582) · 030f0781
      unknown authored
      include/my_global.h:
        Add set_timespec_nsec() for setting higher-resolution time.
      sql/item_func.cc:
        Use pthread_cond_timedwait() for SLEEP() so that it can be killed
        using the normal thread/query-killing code.
      030f0781
  31. 15 Aug, 2005 1 commit
    • unknown's avatar
      Save and clear run context before executing a stored function or trigger and restore it afterwards. · 262075d1
      unknown authored
      This allows us to use statement replication with functions and triggers
      The following things are fixed with this patch:
      - NOW() and automatic timestamps takes the value from the main event for functions and triggers (which allows these to replicate with statement level logging)
      - No side effects for triggers or functions with auto-increment values(), last_insert_id(), rand() or found_rows()
      - Triggers can't return result sets
      
      Fixes bugs:
      #12480: NOW() is not constant in a trigger
      #12481: Using NOW() in a stored function breaks statement based replication
      #12482: Triggers has side effects with auto_increment values
      #11587: trigger causes lost connection error
      
      
      mysql-test/r/trigger.result:
        Added test fpr big
      mysql-test/t/sp-error.test:
        Changed error message numbers
      mysql-test/t/trigger.test:
        Added test for trigger returning result (#11587)
      sql/item_func.cc:
        Store the first used seed value for RAND() value.
        (This makes rand() replicatable in functions and triggers)
        Save and clear run context before executing a stored function and restore it afterwards.
        This removes side effects of stored functions for RAND(), auto-increment values and NOW() and makes most stored function replicatable
      sql/share/errmsg.txt:
        Reuse error message also for triggers
      sql/sp_head.cc:
        If in function or trigger, don't change value of NOW()
        (This allows us to use statement replication with functions that directly or indirectly uses timestamps)
      sql/sql_class.cc:
        Added framework for storing and retrieving run context while exceuting triggers or stored functions.
      sql/sql_class.h:
        Added framework for storing and retrieving run context while exceuting triggers or stored functions.
      sql/sql_parse.cc:
        If in function or trigger, don't change value of NOW()
        (This allows us to use statement replication with functions that directly or indirectly uses timestamps)
      sql/sql_trigger.cc:
        Moved process_triggers function from sql_trigger.h
        Use reset/restore sub_statement_state while executing triggers to avoid side effects and make them replicatable
      sql/sql_trigger.h:
        Moved process_triggers function from sql_trigger.h
        Use reset/restore sub_statement_state while executing triggers to avoid side effects and make them replicatable
      sql/sql_yacc.yy:
        Give error message if trigger can return a result set (Bug #11587)
      tests/fork_big2.pl:
        Removed return from end of lines
      mysql-test/r/rpl_trigger.result:
        New BitKeeper file ``mysql-test/r/rpl_trigger.result''
      mysql-test/t/rpl_trigger.test:
        New BitKeeper file ``mysql-test/t/rpl_trigger.test''
      262075d1