An error occurred fetching the project authors.
  1. 14 Sep, 2005 1 commit
  2. 07 Sep, 2005 1 commit
    • unknown's avatar
      Fix for BUG#12637: Make SPs+user variables replication work: · eb769e54
      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.
      eb769e54
  3. 06 Sep, 2005 1 commit
  4. 02 Sep, 2005 2 commits
    • unknown's avatar
      Implement WL#2661 "Prepared Statements: Dynamic SQL in Stored Procedures". · c910050a
      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.
      c910050a
    • unknown's avatar
      Rename: · dc922213
      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.
      dc922213
  5. 29 Aug, 2005 1 commit
    • unknown's avatar
      fix for bug #12841 · c38e297b
      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.
      c38e297b
  6. 27 Aug, 2005 1 commit
    • unknown's avatar
      func_str.result, null.result: · 28920f59
      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.
      28920f59
  7. 25 Aug, 2005 1 commit
    • unknown's avatar
      Fix for BUG#12335 (SP replication) : New binlogging strategy for stored PROCEDUREs/FUNCTIONs. · 8a5e5274
      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 (SP replication) : Added Item_name_const 'function'
      sql/log.cc:
        Fix for BUG#12335 (SP replication) : Added MYSQL_LOG::{start|stop}_union_events to allow
        one to temporary disable binlogging but collect a 'union' information about binlog write
        calls.
      sql/mysql_priv.h:
        Fix for BUG#12335 (SP replication)
      sql/sp_head.cc:
        Fix for BUG#12335 (SP replication) : Now we use different SP binlogging strategy, grep for 
        StoredRoutinesBinlogging for details
      sql/sp_head.h:
        Comments added
      sql/sp_pcontext.h:
        Comments added
      sql/sp_rcontext.h:
        Comments added
      sql/sql_class.cc:
        Fix for BUG#12335 (SP replication) : Now we use different SP binlogging strategy, grep for 
        StoredRoutinesBinlogging for details
      sql/sql_class.h:
        Fix for BUG#12335 (SP replication) : Added MYSQL_LOG::{start|stop}_union_events to allow
        one to temporary disable binlogging but collect a 'union' information about binlog write
        calls.
      sql/sql_delete.cc:
        Fix for BUG#12335: check THD::query_str_binlog_unsuitable when writing to binlog.
      sql/sql_insert.cc:
        Fix for BUG#12335: check THD::query_str_binlog_unsuitable when writing to binlog.
      sql/sql_lex.cc:
        Fix for BUG#12335 (SP replication): Add ability to extract previous returned token from
        the tokenizer.
      sql/sql_lex.h:
        Fix for BUG#12335 (SP replication): Add ability to extract previous returned token from
        the tokenizer.
      sql/sql_parse.cc:
        Fix for BUG#12335 (SP replication) : Now we use different SP binlogging strategy, grep for 
        StoredRoutinesBinlogging for details
      sql/sql_update.cc:
        Fix for BUG#12335: check THD::query_str_binlog_unsuitable when writing to binlog.
      sql/sql_yacc.yy:
        Fix for BUG#12335 (SP replication) : When creating Item_splocal, remember where it is located
        in the query.
      8a5e5274
  8. 18 Aug, 2005 1 commit
  9. 16 Aug, 2005 1 commit
    • unknown's avatar
      Fix SLEEP() to be interruptable. (Bug #12582) · cbdd54e4
      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.
      cbdd54e4
  10. 15 Aug, 2005 1 commit
    • unknown's avatar
      Save and clear run context before executing a stored function or trigger and restore it afterwards. · a914b527
      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''
      a914b527
  11. 12 Aug, 2005 1 commit
    • unknown's avatar
      Add SLEEP(seconds) function, which always returns 0 after the given · 7eebb751
      unknown authored
      number of seconds (which can include microseconds). (Bug #6760)
      
      
      mysql-test/r/func_misc.result:
        Add new results
      mysql-test/t/func_misc.test:
        Add new regression test.
      sql/item_create.cc:
        Add create_func_sleep()
      sql/item_create.h:
        Add create_func_sleep()
      sql/item_func.cc:
        Add sleep() implementation
      sql/item_func.h:
        Add class for sleep() function
      sql/lex.h:
        Handle SLEEP() function
      7eebb751
  12. 30 Jul, 2005 1 commit
    • unknown's avatar
      Added Non-prelocked SP execution: Now a PROCEDURE doesn't enter/leave prelocked mode for · 11abe15e
      unknown authored
      its body, but lets each statement to get/release its own locks. This allows a broader set
      of statements to be executed inside PROCEDUREs (but breaks replication)
      This patch should fix BUG#8072, BUG#8766, BUG#9563, BUG#11126
      
      
      mysql-test/r/sp-security.result:
        Drop tables this test attempts to create
      mysql-test/r/sp-threads.result:
        Update test results
      mysql-test/r/sp.result:
        Disabled a test that triggers BUG#11986, cleanup used tables when tests start.
      mysql-test/r/view.result:
        Enabled a test case that now works with prelocking-free SPs
      mysql-test/t/sp-security.test:
        Drop tables this test attempts to create
      mysql-test/t/sp.test:
        Disabled a test that triggers BUG#11986, cleanup used tables when tests start.
      mysql-test/t/view.test:
        Enabled a test case that now works with prelocking-free SPs
      sql/handler.cc:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt
      sql/item_func.cc:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt
      sql/sp.cc:
        Non-prelocked SP execution: Added support for skipping prelocking of procedure body for
        "CALL proc(...)" statements.
      sql/sp.h:
        Non-prelocked SP execution: Added support for skipping prelocking of procedure body for
        "CALL proc(...)" statements.
      sql/sp_cache.h:
        Added comments
      sql/sp_head.cc:
        Non-prelocked SP execution:
        * Try to unlock tables after PROCEDURE arguments have been evaluated.
        * Make sp_lex_keeper be able to execute in 2 modes: A) when already in prelocked mode
          B) when its statement enters/leaves prelocked mode itself.
      sql/sp_head.h:
        Non-prelocked SP execution:  Make sp_lex_keeper to additionally keep list of tables it 
        needs to prelock when its statement enters/leaves prelocked mode on its own.
      sql/sql_base.cc:
        Non-prelocked SP execution: Make open_tables() to
         * detect 'CALL proc(...)' and not to do prelocking for procedure body statements.
         * Make lex->query_tables_last to point precisely to a boundary in lex->query_tables 
           list where 'own' tables and views' tables end and added-for-prelocking tables begin.
           (it was not true before - view's tables could end up after query_tables_own_last)
      sql/sql_class.cc:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt
      sql/sql_class.h:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt
      sql/sql_lex.cc:
        Non-prelocked SP execution: More rigourous cleanup in st_lex::cleanup_after_one_table_open()
      sql/sql_parse.cc:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt, remove outdated comments
      sql/sql_trigger.h:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt
      11abe15e
  13. 26 Jul, 2005 1 commit
    • unknown's avatar
      func_gconcat.result, func_gconcat.test: · 8624bcfd
      unknown authored
        Adding test
      item_sum.cc:
        Adding a call for collation/charset aggregation,
            to collect attributes from the arguments. The actual bug fix.
      item_func.h, item_func.cc, item.h, item.cc:
        - Removing collation aggrgation functions from Item_func class
            in item.cc, and adding it as non-class functions in item.cc
            to be able to reuse this code for group_concat.
            - Adding replacement for these functions into Item_func class
            as wrappers for moved functions, to minizize patch size,
      
      
      sql/item.cc:
        - Removing collation aggrgation functions from Item_func class
            in item.cc, and adding it as non-class functions in item.cc
            to be able to reuse this code for group_concat.
            - Adding replacement for these functions into Item_func class
            as wrappers for moved functions, to minizize patch size,
      sql/item.h:
        - Removing collation aggrgation functions from Item_func class
            in item.cc, and adding it as non-class functions in item.cc
            to be able to reuse this code for group_concat.
            - Adding replacement for these functions into Item_func class
            as wrappers for moved functions, to minizize patch size,
      sql/item_func.cc:
        - Removing collation aggrgation functions from Item_func class
            in item.cc, and adding it as non-class functions in item.cc
            to be able to reuse this code for group_concat.
            - Adding replacement for these functions into Item_func class
            as wrappers for moved functions, to minizize patch size,
      sql/item_func.h:
        - Removing collation aggrgation functions from Item_func class
            in item.cc, and adding it as non-class functions in item.cc
            to be able to reuse this code for group_concat.
            - Adding replacement for these functions into Item_func class
            as wrappers for moved functions, to minizize patch size,
      sql/item_sum.cc:
        Adding a call for collation/charset aggregation,
            to collect attributes from the arguments. The actual bug fix.
      mysql-test/t/func_gconcat.test:
        Adding test
      mysql-test/r/func_gconcat.result:
        Adding test
      8624bcfd
  14. 25 Jul, 2005 1 commit
    • unknown's avatar
      Don't force column header to @@session.var_name if @@local.var_name · f8a6e9d3
      unknown authored
      was used. (Bug #10724)
      
      
      mysql-test/r/key_cache.result:
        Updated results
      mysql-test/r/ps_1general.result:
        Updated results
      mysql-test/r/user_var.result:
        Add new results
      mysql-test/r/variables.result:
        Update results
      mysql-test/t/user_var.test:
        Add new regression test
      sql/item_func.cc:
        Don't set name explicitly in get_system_var(), let it get set by the
        select_item: rule in sql_parse.yy or other callers of get_system_var().
      sql/sql_parse.cc:
        Set the name on the Item returned by get_system_var().
      f8a6e9d3
  15. 19 Jul, 2005 1 commit
    • unknown's avatar
      Simple fixes during review of new code · 3a31f7b9
      unknown authored
      include/my_global.h:
        Added floatget() to read unaligned flaot
      mysql-test/r/select.result:
        Added test for found_rows()
      mysql-test/t/select.test:
        Added test for found_rows()
      sql/des_key_file.cc:
        Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition
      sql/field_conv.cc:
        Added optimizzed varsion of do_cut_string (for simple character sets)
      sql/item_func.cc:
        Simplify code (and ensure DBUG_ENTER is excuted before main code)
      sql/item_strfunc.cc:
        Safe calculation of max_length
        This was needed as max_length can now be 1<<32-1 (after konstantins recent patch to fix BLOB_LENGTH)
        Remove init_des_key_file() as this is not initialized in mysqld.cc
      sql/item_timefunc.cc:
        Safe calculation of max_length
        This was needed as max_length can now be 1<<32-1 (after konstantins recent patch to fix BLOB_LENGTH)
      sql/log_event.cc:
        Simplify code
      sql/mysql_priv.h:
        Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition
      sql/mysqld.cc:
        Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition
        Revert wrong patch of calling close_connection() in first close_connections() loop. (Bug #7403)
        Instead we now print a warning for closed connections only if mysqld is sarted with --warnings
        Added comments to make the close_connections() logic clearer
      sql/sql_prepare.cc:
        Use floatget() and doubleget() to protect against unaligned data
      sql/sql_select.cc:
        Fixed some cases unlikely cases where found_rows() would return wrong for queries that would return 0 or 1 rows
      3a31f7b9
  16. 16 Jul, 2005 1 commit
    • unknown's avatar
      After-merge fixes (4.1 -> 5.0). · 7bdc4dd0
      unknown authored
      mysql-test/r/sp.result:
        Test results fixed: rewritten test for Bug#6129
      mysql-test/r/view.result:
        Push a change to the result file from Sanja's patch.
      mysql-test/t/sp.test:
        Rewrite the test for Bug#6129 (now that stored procedures don't
        evaluate system variables at parse, the test produced different results).
        The old test failed with 1 in the second invocation (the old
        result was wrong).
      sql/item_func.cc:
        After-merge fix.
      sql/item_func.h:
        After-merge fix.
      sql/mysql_priv.h:
        After-merge fix.
      sql/mysqld.cc:
        Rollback the patch for Bug#7403 (it breaks the test suite).
      7bdc4dd0
  17. 15 Jul, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#9359 "Prepared statements take snapshot · e83e1053
      unknown authored
       of system vars at PREPARE time": implement a special Item
      to handle system variables. This item substitutes itself with 
      a basic constant containing variable value at fix_fields.
      
      
      mysql-test/r/ps.result:
        - test results fixed (Bug#9359).
      mysql-test/t/ps.test:
        - add a test case for Bug#9359 "Prepared statements take snapshot
         of system vars at PREPARE time"
      sql/item_func.cc:
        - implement Item_func_get_system_var: we should not evaluate system
        variables in the parser, but instead should create an item which 
        is evaluated to a constant at execute.
        - remove an unused function
      sql/item_func.h:
        Add a new item, Item_func_get_system_var
      sql/mysql_priv.h:
        Move necessary declarations to make set_var.h objects visible in 
        item_func.h
      sql/set_var.cc:
        - we should not print to network from get_system_var: if it's called
        from prepared statement prepare, we get packets out of order when using
        the binary protocol. Instead report the error to be sent to the user later.
        This is a backport from 5.0.
      sql/set_var.h:
        - declaration of enum_var_type moved to mysql_priv.h
      e83e1053
  18. 14 Jul, 2005 2 commits
    • unknown's avatar
      Get rid of checking for ETIME return value of pthread_cond_timedwait. · e4f2bd46
      unknown authored
      ETIME was returned by cond_timedwait (sic, the pre-POSIX1001b function) on 
      Solaris 2.6 and 2.7. pthread_cond_timedwait on Solaris returns ETIMEDOUT.
      The standard requirement is that the only additional return value
      of pthred_cond_timedwait compared to pthread_cond_wait is ETIMEDOUT.
      Let us not bloat the application code with redundant checks,
      and if we're ever to work on a platform that returns a non-standard 
      value, we should write a wrapper for that platform (like we do, e.g., for
      Windows).
      
      
      mysys/my_os2cond.c:
        - fix our implementation of pthread_cond_timedwait on OS2 to return
          ETIMEDOUT instead of ETIME.
      sql/item_func.cc:
        - don't check for ETIME
      sql/slave.cc:
        - don't check for ETIME
      sql/sql_insert.cc:
        - don't check for ETIME
      e4f2bd46
    • unknown's avatar
      Fix for BUG#11869: In Item_func_match::fix_index() handle the case when there is no · c0bcf503
      unknown authored
        source table present (this happens for ORDER BY after UNION)
      
      
      mysql-test/r/fulltext_order_by.result:
        Testcase for BUG#11869
      mysql-test/t/fulltext_order_by.test:
        Testcase for BUG#11869
      c0bcf503
  19. 13 Jul, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#9379 (collation of a parameter marker is · 98248f04
      unknown authored
      binary).
      
      
      mysql-test/r/ps.result:
        Test results fixed (Bug#9379)
      mysql-test/t/ps.test:
        A test case for Bug#9379 (collation of a parameter marker is binary)
      sql/item.cc:
        - set Item_param::collation to str_value collation, if Item_param
        is assigned a string. Reset it to default in Item_param::reset() (on 
        the next execution it can be assigned a number).
      sql/item_func.cc:
        - now that item collation can change between executions
        (if this item is Item_param), we need to register the change
        of the execution tree in the rollback list.
      98248f04
  20. 09 Jul, 2005 1 commit
    • unknown's avatar
      Enable support of access to tables from triggers. Thus fix bug #8406 "Triggers · 14b1f91b
      unknown authored
      crash if referencing a table" and several other related bugs.
      Fix for bug #11834 "Re-execution of prepared statement with dropped function
      crashes server." which was spotted during work on previous bugs.
      
      Also couple of nice cleanups:
      - Replaced two separate hashes for stored routines used by statement with one.
      - Now instead of doing one pass through all routines used in statement for
        caching them and then doing another pass for adding their tables to table
        list, we do only one pass during which do both things.
      
      
      mysql-test/r/sp-error.result:
        Added test for bug #11834 "Re-execution of prepared statement with dropped
        function crashes server" also covering handling of prepared statements
        which use stored functions but does not require prelocking.
      mysql-test/r/sp.result:
        Updated test for LOCK TABLES with views in table list.
        (Old version of statement used in this test will work ok now, since prelocking
         algorithm was tuned and will lock only one multi-set of tables for each routine
         even if this routine is used in several different views).
      mysql-test/r/trigger.result:
        Added several tests for triggers using tables.
      mysql-test/t/sp-error.test:
        Added test for bug #11834 "Re-execution of prepared statement with dropped
        function crashes server" also covering handling of prepared statements
        which use stored functions but does not require prelocking.
      mysql-test/t/sp.test:
        Updated comment about recursive views to reflect current situation.
        Updated test for LOCK TABLES with views in table list.
        (Old version of statement used in this test will work ok now, since prelocking
         algorithm was tuned and will lock only one multi-set of tables for each routine
         even if this routine is used in several different views).
      mysql-test/t/trigger.test:
        Added several tests for triggers using tables.
      sql/item_func.cc:
        Item_func_sp::cleanup():
          By next statement execution stored function can be dropped or altered so
          we can't assume that sp_head object for it will be still valid.
      sql/sp.cc:
        - Added Sroutine_hash_entry structure that represents element in the set of
          stored routines used by statement or routine. We can't as before use
          LEX_STRING for this purprose because we want link all elements of this set
          in list.
        - Replaced sp_add_to_hash() with sp_add_used_routine() which takes into account
          that now we use one hash for stored routines used by statement instead of two
          and which mantains list linking all elelemnts in this hash.
        - Renamed sp_merge_hash() to sp_update_sp_used_routines().
        - Introduced sp_update_stmt_used_routines() for adding elements to the set of
          routines used by statement from another similar set for statement or routine.
          This function will also mantain list linking elements of destination set.
        - Now instead of one sp_cache_routines() function we have family of 
          sp_cache_routines_and_add_tables() functions which are also responsible for
          adding tables used by routines being cached to statement table list. Nice
          optimization - thanks to list linking all elements in the hash of routines
          used by statement we don't need to perform several iterations over this hash
          (as it was before in cases when we have added new elements to it).
      sql/sp.h:
        Added declarations of functions used for manipulations with set (hash) of stored
        routines used by statement.
      sql/sp_head.cc:
        sp_name::init_qname():
          Now sp_name also holds key identifying routine in the set (hash) of
          stored routines used by statement. 
        sp_head:
          Instead of two separate hashes sp_funs/m_spprocs representing sets of stored
          routines used by this routine we use one hash - m_sroutines. 
        sp_instr_set_trigger_field:
          Added support for subqueries in assignments to row accessors in triggers.
        Removed definition of sp_add_sp_tables_to_table_list() and auxilary functions 
        since now we don't have separate stage on which we add tables used by routines
        used by statement to table list for prelocking. We do it on the same stage as
        we load those routines in SP cache. So all this functionality moved to
        sp_cache_routines_and_add_tables() family of functions.
      sql/sp_head.h:
        sp_name:
          Now this class also holds key identifying routine in the set (hash) of stored
          routines used by statement. 
        sp_head:
          Instead of two separate hashes sp_funs/m_spprocs representing sets of stored
          routines used by this routine we use one hash - m_sroutines. 
        sp_instr_set_trigger_field:
          Added support for subqueries in assignments to row accessors in triggers.
        Removed declaration of sp_add_sp_tables_to_table_list() since now we don't have
        separate stage on which we add tables used by routines used by statement to
        table list for prelocking. We do it on the same stage as we load those routines
        in SP cache.
      sql/sql_base.cc:
        open_tables():
        - LEX::spfuns/spprocs hashes were replaced with one LEX::sroutines hash.
        - Now instead of doing one pass through all routines used in statement for
          caching them and then doing another pass for adding their tables to table
          list, we do only one pass during which do both things. It is easy to do
          since all routines in the set of routines used by statement are linked in
          the list. This also allows us to calculate table list for prelocking more
          precisely.
        - Now triggers properly inform prelocking algorithm about tables they use.
      sql/sql_lex.cc:
        lex_start():
          Replaced LEX::spfuns/spprocs with with one LEX::sroutines hash.
          Added LEX::sroutines_list list linking all elements in this hash.
        st_lex::st_lex():
          Moved definition of LEX constructor to sql_lex.cc file to be able
          use sp_sroutine_key declaration from sp.h in it.
      sql/sql_lex.h:
        LEX:
          Replaced two separate hashes for stored routines used by statement with one.
          Added list linking all elements in this hash to be able to iterate through all
          elements and add new elements to this hash at the same time.
          Moved constructor definition to sql_lex.cc.
      sql/sql_parse.cc:
        mysql_execute_command():
          Replaced LEX::spfuns/spprocs with one LEX::sroutines hash.
      sql/sql_trigger.cc:
        Added missing GNU GPL notice.
        Table_triggers_list::check_n_load()
          Added initialization of sroutines_key which stores key representing
          triggers of this table in the set (hash) of routines used by this statement.
      sql/sql_trigger.h:
        Added missing GNU GPL notice.
        Table_triggers_list:
          Added sroutines_key member to store key representing triggers of this
          table in the set (hash) of routines used by this statement.
          Declared sp_cache_routines_and_add_tables_for_triggers() as friend since
          it needs access to sroutines_key and trigger bodies.
      sql/sql_yacc.yy:
        - Now we use sp_add_used_routine() instead of sp_add_to_hash() for adding
          elements to the set of stored routines used in statement.
        - Enabled support of subqueries as right sides in assignments to triggers' row
          accessors.
      14b1f91b
  21. 07 Jul, 2005 1 commit
  22. 04 Jul, 2005 1 commit
    • unknown's avatar
      Fixes during review of new code · 306ebf7b
      unknown authored
      - Mostly indentation fixes
      - Added missing test
      - Ensure that Item_func_case() checks for stack overruns
      - Use real_item() instead of (Item_ref*) item
      - Fixed wrong error handling
      
      
      myisam/mi_unique.c:
        Improved comments
      myisam/myisampack.c:
        Updated version number
      mysql-test/r/group_by.result:
        Added test that was lost during earlier merge
      mysql-test/r/information_schema.result:
        Safety fix: Drop procedures before used
      mysql-test/t/group_by.test:
        Added test that was lost during earlier merge
      mysql-test/t/information_schema.test:
        Safety fix: Drop procedures before used
      mysys/hash.c:
        Updated comment
      sql/field.cc:
        false -> FALSE
      sql/ha_ndbcluster.cc:
        Fix some style issues
        - No () around argument to 'case'
        - Space before ( in switch and if
        - Removed 'goto'
        - Added {}
        - Added () to make expressions easier to read
        - my_snprintf -> strmov
      sql/handler.cc:
        if( -> if (
      sql/item.cc:
        Indentation changes
      sql/item.h:
        false -> FALSE
      sql/item_cmpfunc.cc:
        Ensure that Item_func_case() check for stack overrun properly
      sql/item_cmpfunc.h:
        Ensure that Item_func_case() check for stack overrun properly
      sql/item_func.cc:
        Indentation fixes
        Fixed wrong goto label
      sql/mysqld.cc:
        Remove test for opt_disable_networking as this flag can never be set here
      sql/opt_range.cc:
        Simplify code
      sql/sql_class.h:
        Move define out from middle of class definition
      sql/sql_parse.cc:
        Remove extra empty lines
      sql/sql_select.cc:
        use real_item() instead of (Item_ref*) item
        Modifed function comment to be align with others
        Simple optimization
      sql/sql_union.cc:
        Portability fix:
        Don't use 'bool_variable|=...'
      sql/sql_view.cc:
        Move List_iterator_fast out from loops (rewind is faster than creating a new itearator)
      strings/ctype-utf8.c:
        if( -> if (
      strings/ctype.c:
        Remove disabled code
      strings/decimal.c:
        Indentation fixes
      strings/xml.c:
        Indentation fixes
      306ebf7b
  23. 01 Jul, 2005 1 commit
    • unknown's avatar
      Name resolution context added (BUG#6443) · b4f595b9
      unknown authored
      include/my_bitmap.h:
        new bitmap operation
      mysql-test/r/view.result:
        added warnings
        Correct inserting data check (absence of default value) for view underlying tables (BUG#6443)
      mysql-test/t/view.test:
        Correct inserting data check (absence of default value) for view underlying tables (BUG#6443)
      mysys/my_bitmap.c:
        new bitmap operation
      sql/field.h:
        index of field in table added
      sql/item.cc:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/item.h:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/item_cmpfunc.cc:
        table list removed from fix_fields() arguments
      sql/item_cmpfunc.h:
        table list removed from fix_fields() arguments
      sql/item_func.cc:
        table list removed from fix_fields() arguments
      sql/item_func.h:
        table list removed from fix_fields() arguments
      sql/item_row.cc:
        table list removed from fix_fields() arguments
      sql/item_row.h:
        table list removed from fix_fields() arguments
      sql/item_strfunc.cc:
        fixed server crash on NULL argument
      sql/item_strfunc.h:
        table list removed from fix_fields() arguments
      sql/item_subselect.cc:
        table list removed from fix_fields() arguments
      sql/item_subselect.h:
        table list removed from fix_fields() arguments
      sql/item_sum.cc:
        table list removed from fix_fields() arguments
      sql/item_sum.h:
        table list removed from fix_fields() arguments
      sql/item_timefunc.cc:
        table list removed from fix_fields() arguments
      sql/item_timefunc.h:
        table list removed from fix_fields() arguments
      sql/item_uniq.h:
        table list removed from fix_fields() arguments
      sql/log_event.cc:
        Name resolution context added
      sql/log_event.h:
        Name resolution context added
      sql/mysql_priv.h:
        Name resolution context added
      sql/set_var.cc:
        table list removed from fix_fields() arguments
      sql/share/errmsg.txt:
        new error message
      sql/sp.cc:
        Name resolution context added
      sql/sp_head.cc:
        table list removed from fix_fields() arguments
      sql/sp_head.h:
        Name resolution context added
      sql/sql_base.cc:
        table list removed from fix_fields() arguments
        Name resolution context added
      sql/sql_class.cc:
        renamed variable
      sql/sql_delete.cc:
        Name resolution context added
      sql/sql_derived.cc:
        Name resolution context added
      sql/sql_do.cc:
        table list removed from fix_fields() arguments
      sql/sql_handler.cc:
        Name resolution context added
      sql/sql_help.cc:
        Name resolution context added
      sql/sql_insert.cc:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/sql_lex.cc:
        Name resolution context added
      sql/sql_lex.h:
        removed resolve mode (information stored into name resolution context)
      sql/sql_load.cc:
        table list removed from fix_fields() arguments
      sql/sql_olap.cc:
        Name resolution context added
      sql/sql_parse.cc:
        Name resolution context added
      sql/sql_prepare.cc:
        table list removed from fix_fields() arguments
      sql/sql_select.cc:
        table list removed from fix_fields() arguments
      sql/sql_show.cc:
        Name resolution context added
      sql/sql_trigger.cc:
        table list removed from fix_fields() arguments
      sql/sql_udf.h:
        table list removed from fix_fields() arguments
      sql/sql_union.cc:
        Name resolution context added
      sql/sql_update.cc:
        Name resolution context added
      sql/sql_view.cc:
        Name resolution context added
      sql/sql_view.h:
        table list removed from fix_fields() arguments
      sql/sql_yacc.yy:
        Name resolution context added
      sql/table.cc:
        Name resolution context added
        merged view processing moved
      sql/table.h:
        merged view processing moved
      b4f595b9
  24. 23 Jun, 2005 3 commits
    • unknown's avatar
      removed unneed line · 2460a01b
      unknown authored
      2460a01b
    • unknown's avatar
      fixed environment restoring in case of error during SP function execution (BUG#9503) · a5e742fe
      unknown authored
      #define macro improvement
      
      
      mysql-test/r/sp-security.result:
        BUG#9503: reseting correct parameters of thread after error in SP function
      mysql-test/t/sp-security.test:
        BUG#9503: reseting correct parameters of thread after error in SP function
      sql/item_func.cc:
        fixed environment restoring in case of error during SP function execution
      sql/protocol.cc:
        added debug print
      sql/sql_class.h:
        fixed #defines to force them to be alvaise in piar, and variable name made more complex for accident repeating in other code
      a5e742fe
    • unknown's avatar
      Fix multiplication of abs() by a negative value. (Bug #11402) · 5841d70a
      unknown authored
      mysql-test/r/func_math.result:
        Add new results
      mysql-test/t/func_math.test:
        Add new regression test
      sql/item_func.cc:
        Don't set result of abs() to unsigned. Result should still be
        a signed value, even if always positive.
      5841d70a
  25. 21 Jun, 2005 1 commit
    • unknown's avatar
      fixed view fields names check and generation (changed after Trudy review:... · 612de7c6
      unknown authored
      fixed view fields names check and generation (changed after Trudy review: underlying field names treat as user set ones) (BUG#7448)
      
      
      mysql-test/r/view.result:
        test of view field names generation
      mysql-test/t/view.test:
        test of view field names generation
      sql/item.cc:
        add a flag that indicates that the name of the item was an auto-generated one and so can be changed in a view
      sql/item.h:
        add a flag that indicates that the name of the item was an auto-generated one and so can be changed in a view
        layout fixed
      sql/item_func.cc:
        line made less then 80 columns
      sql/sql_view.cc:
        fixed checking of duplicates of view fields:
        1) case-insensitive system charset/collation is used now to compare view filds
        2) in case if the duplicate field name was of an auto-generated one, we create another unique name for it
      sql/sql_yacc.yy:
        add a flag that indicates that the name of the item was an auto-generated one and so can be changed in a view
      612de7c6
  26. 17 Jun, 2005 1 commit
    • unknown's avatar
      fixed printing of sum(distinct ) & avg(distinct ) & cast(... as decimal) (BUG#7015, BUG#11387) · 467ca505
      unknown authored
      mysql-test/r/view.result:
        using sum(distinct ), cast(... as decimal) & avg(distinct ) in views
      mysql-test/t/view.test:
        using sum(distinct ), cast(... as decimal) & avg(distinct ) in views
      sql/item.h:
        Add a comment for Item::print
      sql/item_func.cc:
        Use functype(), not func_name() for item equvalence detection
      sql/item_func.h:
        Missed function typoes added
        Add a comment for Item_func::func_name()
        style fix
      sql/item_strfunc.cc:
        Use functype(), not func_name() for item equvalence detection
      sql/item_strfunc.h:
        Add missing func_name and func_type
      sql/item_sum.cc:
        Item_sum func_name report beggining of function till first argument
      sql/item_sum.h:
        Item_sum func_name report beggining of function till first argument
      sql/item_timefunc.cc:
        Use functype(), not func_name() for item equvalence detection
      sql/item_timefunc.h:
        Add missing func_name and func_type
      sql/item_uniq.h:
        Add missing func_name
      467ca505
  27. 15 Jun, 2005 2 commits
    • unknown's avatar
      renamed: · f1e42a0b
      unknown authored
        Item_buff -> Cached_item
        Item_arena -> Query_arena
        TEST_ASSERT -> YYERROR_UNLESS
      
      
      sql/item.h:
        renamed:
          Item_buff -> Cached_item
      sql/item_buff.cc:
        renamed:
          Item_buff -> Cached_item
      sql/item_func.cc:
        renamed:
          Item_arena -> Query_arena
      sql/item_subselect.cc:
        renamed:
          Item_arena -> Query_arena
      sql/sp_head.cc:
        renamed:
          Item_arena -> Query_arena
      sql/sp_head.h:
        renamed:
          Item_arena -> Query_arena
      sql/sql_base.cc:
        renamed:
          Item_arena -> Query_arena
      sql/sql_class.cc:
        renamed:
          Item_arena -> Query_arena
      sql/sql_class.h:
        renamed:
          Item_arena -> Query_arena
      sql/sql_lex.cc:
        renamed:
          Item_arena -> Query_arena
      sql/sql_prepare.cc:
        renamed:
          Item_arena -> Query_arena
      sql/sql_select.cc:
        renamed:
          Item_arena -> Query_arena
      sql/sql_select.h:
        renamed:
          Item_buff -> Cached_item
          Item_arena -> Query_arena
      sql/sql_union.cc:
        renamed:
          Item_arena -> Query_arena
      sql/sql_view.cc:
        renamed:
          Item_arena -> Query_arena
      sql/sql_yacc.yy:
        renamed:
          TEST_ASSERT -> YYERROR_UNLESS
      sql/table.cc:
        renamed:
          Item_arena -> Query_arena
      f1e42a0b
    • unknown's avatar
      Fix for bug #10337 (cast(NULL DECIMAL) crashes the server) · e4cdb193
      unknown authored
      mysql-test/r/cast.result:
        test result fixed
      mysql-test/t/cast.test:
        test case added
      sql/item_func.cc:
        checks for NULL added
      strings/decimal.c:
        we need to return specified 'scale' for the rounded decimal
      e4cdb193
  28. 14 Jun, 2005 1 commit
  29. 10 Jun, 2005 2 commits
    • unknown's avatar
      Post-merge fix. · bea2fe87
      unknown authored
      bea2fe87
    • unknown's avatar
      Post review and additional fix for BUG#10968: Stored procedures: crash if long loop. · 03949f8c
      unknown authored
        Fixed valgrind complaints. This fixes the memory leak problems for
        procedured, and partially for functions. There's still a leak involving
        results from functions that turned out to be too involved, so it will be
        fixed separately.
      
      
      mysql-test/r/sp.result:
        Fixed some minor mistake (spotted while debugging).
      mysql-test/t/sp.test:
        Fixed some minor mistake (spotted while debugging).
      sql/item_func.cc:
        Moved Item_func_sp::cleanup() from item_func.h to ease debugging,
        and made a debug output come out right.
      sql/item_func.h:
        Moved Item_func_sp::cleanup() to item_func.cc to ease debugging.
      sql/sp_head.cc:
        Fixed valgrind problems with the previous memory leak fix (unit cleanup and
        putting result field in a differen mem_root), and removed prealloc flag from
        init_alloc_root() calls.
      sql/sp_rcontext.cc:
        New mem_root pointer used for return fields from functions.
      sql/sp_rcontext.h:
        New mem_root pointer used for return fields from functions.
      03949f8c
  30. 09 Jun, 2005 1 commit
  31. 07 Jun, 2005 2 commits
    • unknown's avatar
      Fix for bug #10015 "Crash in InnoDB if stored routines are used". · 49357ae8
      unknown authored
      We should not allow explicit or implicit transaction commits inside
      of stored functions or triggers (so in autocommit mode we should not
      do commits after execution of sub-statement).
      Also since we don't support nested statement transactions in 5.0,
      we shouldn't commit or rollback stmt transactions while we are inside
      stored functions or triggers. This should be fixed in later (>=5.1)
      releases.
      
      
      mysql-test/r/sp_trans.result:
        Added test for bug #10015 "Crash in InnoDB if stored routines are used"
        and for general transaction handling inside of functions.
      mysql-test/t/sp_trans.test:
        Added test for bug #10015 "Crash in InnoDB if stored routines are used"
        and for general transaction handling inside of functions.
      sql/handler.cc:
        ha_trans_commit()/ha_trans_rollback():
          Since we don't support nested statement transactions in 5.0,
          we can't commit or rollback stmt transactions while we are inside
          stored functions or triggers. So we simply do nothing now.
          This should be fixed in later ( >= 5.1) releases.
      sql/item_func.cc:
        Item_func_sp::execute():
          Set THD::transaction.in_sub_stmt flag to TRUE during stored function
          execution to prevent commits and rollbacks for statement level
          transactions, since doing them will ruin such transaction for
          stateemtn which calls this function.
      sql/share/errmsg.txt:
        Added error message which says that statements doing explicit or implicit
        commits are disallowed in triggers and stored functions.
      sql/sql_base.cc:
        close_thread_tables():
          Clarified comment about committing of statement transactions in
          prelocked mode.
      sql/sql_class.h:
        THD::transaction:
          Added in_sub_stmt method which indicates that we are executing
          statements from trigger or stored function now, and thus
          statement transaction belongs to statement which invoked this
          routine and we should not commit or rollback it while executing
          these sub-statements.
      sql/sql_parse.cc:
        end_active_trans()/begin_trans()/end_trans():
          We should not commit or rollback global (non-stmt) transaction
          if we are executing stored function or trigger. These checks will
          catch situation when we are trying to do commit or rollback in stored
          procedure which is called from function or trigger.
      sql/sql_trigger.h:
        Table_triggers_list::process_triggers():
          Set THD::transaction.in_sub_stmt flag to TRUE during trigger
          execution to prevent commits and rollbacks for statement level
          transactions, since doing them will ruin such transaction for
          stateemtn which invokes this trigger.
      sql/sql_yacc.yy:
        Prohibited usage of statements which do explicit or implicit commit or
        rollback inside of stored functions and triggers.
      49357ae8
    • unknown's avatar
      After merge fixes · e90b64cd
      unknown authored
      mysql-test/r/innodb.result:
        Update results
      mysql-test/r/warnings.result:
        Update results
      sql/item.cc:
        Simple optimization
      sql/item_func.cc:
        After merge fix
      sql/item_sum.cc:
        Fixes for group_concat and rollup (From Ramil)
      sql/sql_parse.cc:
        Remove compiler warning
      sql/sql_select.cc:
        Fixed problem with rollup
      e90b64cd
  32. 06 Jun, 2005 1 commit
    • unknown's avatar
      Some Windows compile improvements: · a0d18bd4
      unknown authored
       - removed some unreferenced variables
       - fixed the libmysql project file by removing a duplicate file reference (merge error)
      
      
      sql/item_func.cc:
        - removed unused variable "Field" from Item_func_sp::sp_result_field
      sql/sql_select.cc:
        - removed unreferenced variable "filename" from create_tmp_table
      sql/unireg.cc:
        - removed unused variable "firstpos" from make_empty_rec
      VC++Files/libmysql/libmysql.dsp:
        - after-merge fix: removed duplicate file ctype-cp932.c
      a0d18bd4
  33. 05 Jun, 2005 1 commit