Commit graph

260 commits

Author SHA1 Message Date
pem@mysql.com
c865f491ef Post-review fix. 2005-10-21 13:08:00 +02:00
pem@mysql.com
ca5e435f82 Fixed BUG#13941: replace() string fuction behaves badly inside stored
procedure
  For some functions returning strings (like "replace" and "ifnull" - where
  val_str() is returning a pointer into one of the parameters) - we ended
  up with a dangling pointer after the new operator destroyed the reuse item
  in the eval function.
  A working, if not very elegant, solution is to simply copy the string in
  such cases.
2005-10-19 14:54:54 +02:00
pem@mysql.com
ddc36a2784 Merge mysql.com:/usr/local/bk/mysql-5.0
into  mysql.com:/home/pem/work/bug7049/mysql-5.0
2005-10-17 15:12:38 +02:00
dlenev@mysql.com
cfc5adaf13 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-repl
2005-10-12 23:45:14 +04:00
dlenev@mysql.com
3ee7382703 Temporary solution for bug #13969 "Routines which are replicated from master
can't be executed on slave". It will be possible to solve this problem
in more correct way when we will implement WL#2897 "Complete definer support
in the stored routines".
2005-10-12 23:42:51 +04:00
pem@mysql.com
6a88684eb3 Merge mysql.com:/usr/local/bk/mysql-5.0
into  mysql.com:/home/pem/work/bug7049/mysql-5.0
2005-10-12 16:39:39 +02:00
pem@mysql.com
b9b8349b3a Merge mysql.com:/usr/local/bk/mysql-5.0
into  mysql.com:/usr/home/pem/bug13616/mysql-5.0
2005-10-12 11:52:37 +02:00
monty@mysql.com
5513ab69b7 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2005-10-12 00:59:52 +03:00
monty@mysql.com
17d7ba931d Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2005-10-08 03:37:23 +03:00
jimw@mysql.com
4a893c96e3 Fix use of "%*s" *printf() specifiers that were really meant to be
"%.*s". (Bug #13650)
2005-10-06 17:37:24 -07:00
monty@mysql.com
78e828d32f Review of code pushed since last 5.0 pull:
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
2005-10-06 17:54:43 +03:00
pem@mysql.com
5640d19432 Fixed BUG#13616: "CALL <dbname>.<procedurename>" executes properly, but
displays error
    When returning to the old database (which may be ""), don't do
    access check - mysql_change_db() would then generate the error
    "No database selected".
    Note: No test case added; it seems a db is always selected when running
    tests.
2005-10-05 16:39:37 +02:00
pem@mysql.com
6a84506af7 Fixed BUG#7049: Stored procedure CALL errors are ignored
Search the chain of sp_rcontexts recursively for handlers. If one is found,
  it will be detected in the sp_head::execute() method at the corresponding
  level.
2005-09-26 18:46:31 +02:00
pem@mysql.com
6ac4c47f7b Fixed BUG#6127: Stored procedure handlers within handlers don't work
Replaced the dumb in-handler/not-in-handler check with a proper recursion
    check of handlers being executed.
    (Re-commit in a different tree, to make push possible.)
2005-09-26 18:22:00 +02:00
konstantin@mysql.com
2d4c54ba1b Merge mysqldev@production.mysql.com:my/mysql-5.0-release
into  mysql.com:/opt/local/work/mysql-5.0-root
2005-09-23 00:46:59 +04:00
konstantin@mysql.com
6f8d3c4844 A fix and a test case for Bug#6513 "Test Suite: Values inserted by using
cursor is interpreted latin1 character and Bug#9819 "Cursors: Mysql Server
Crash while fetching from table with 5 million records."
A fix for a possible memory leak when fetching into an SP cursor
in a long loop.
The patch uses a common implementation of cursors in the binary protocol and 
in stored procedures and implements materialized cursors.
For implementation details, see comments in sql_cursor.cc
2005-09-22 02:11:21 +04:00
bell@sanja.is.com.ua
c1b185f5ff 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.
2005-09-20 21:20:38 +03:00
bell@sanja.is.com.ua
aec371f910 WL#2787 (part 2, ver 3 (merged)) changed securety context switching 2005-09-15 22:29:07 +03:00
dlenev@mysql.com
2a96aa110f Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg12704-2
2005-09-15 03:57:59 +04:00
dlenev@mysql.com
e231ebe5fb Fix for bug #12704 "Server crashes during trigger execution".
This bug occurs when some trigger for table used by DML statement is created
or changed while statement was waiting in lock_tables(). In this situation
prelocking set which we have calculated becames invalid which can easily lead
to errors and even in some cases to crashes.

With proposed patch we no longer silently reopen tables in lock_tables(),
instead caller of lock_tables() becomes responsible for reopening tables and
recalculation of prelocking set.
2005-09-15 03:56:09 +04:00
pem@mysql.com
c76d5768a7 Fixed BUG#13133: Local variables in stored procedures are not initialized correctly.
Have to init. all local variables in their frames, not just once at the beginning
  of invocation.
2005-09-13 12:50:21 +02:00
sergefp@mysql.com
97d4cb60f3 Fix for valgrind warning/crashes: When executing SP statement, If we set
thd->user_var_events_alloc (and so get binlog events to be allocated on its pool), 
clean the binlog events after the execution of this SP statement is finished.
2005-09-09 20:09:37 +04:00
sergefp@mysql.com
eac4388caf Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/psergey/mysql-5.0-bug12943
2005-09-09 10:08:46 +04:00
petr@mysql.com
b5583947df Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/usersnfs/pchardin/mysql-5.0
2005-09-08 18:27:05 +02:00
petr@mysql.com
4a28ddac1c fix for Bug #12849 Stored Procedure: Crash on procedure call with CHAR type 'INOUT' parameter
(recommit with the right Bug#)
2005-09-08 18:25:42 +02:00
konstantin@mysql.com
8d0dd7a45a Remove an obsolete comment and an unused variable. 2005-09-08 18:51:36 +04:00
sergefp@mysql.com
e5b4252481 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 (grep for StoredRoutinesBinlogging for details)
2005-09-07 19:39:47 +04:00
konstantin@mysql.com
38486e83c1 Implement WL#2661 "Prepared Statements: Dynamic SQL in Stored Procedures".
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).
2005-09-03 03:13:18 +04:00
konstantin@mysql.com
a3ddcdf8fb Rename:
- 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.
2005-09-02 17:21:19 +04:00
bar@mysql.com
252ed3a24c sp_head.cc:
Fix crash reported in bug 12849.
  It doesn't fix the whole problem though.
  Let Pem fix it later.
2005-09-02 10:35:51 +05:00
sergefp@mysql.com
e13f67cd05 Fix for valgrind warning: Check for thd->binlog_evt_union.unioned_events only if
we were doing binlog union (i.e. need_binlog_call==TRUE)
2005-08-28 20:25:53 +04:00
hf@deer.(none)
63d6bc34e0 Merge deer.(none):/home/hf/work/mysql-5.0.10499
into deer.(none):/home/hf/work/mysql-5.0.clean
2005-08-27 18:13:26 +05:00
sergefp@mysql.com
5f231a5f49 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/psergey/mysql-5.0-rpl-bug
2005-08-27 02:34:05 +04:00
sergefp@mysql.com
ad9bfc251c Slightly amended Monty's SP replication code cleanup patch 2005-08-27 02:33:06 +04:00
kent@mysql.com
abfbd9f9ba Merge mysql.com:/Users/kent/mysql/bk/mysql-5.0-release
into mysql.com:/Users/kent/mysql/bk/mysql-5.0
2005-08-26 14:32:38 +02:00
sergefp@mysql.com
ec9768be18 Compiler error fix for ICC 8.1 2005-08-26 00:54:55 +04:00
petr@mysql.com
05fe0b2247 Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/cps/mysql/devel/mysql-5.0-sp11333
2005-08-25 18:16:21 +04:00
sergefp@mysql.com
95c3afc5d9 Fix for BUG#12335 (SP replication) : New binlogging strategy for stored PROCEDUREs/FUNCTIONs.
"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.
2005-08-25 17:34:34 +04:00
petr@mysql.com
db5acc18ed Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/cps/mysql/devel/mysql-5.0-sp11333
2005-08-25 16:06:49 +04:00
petr@mysql.com
8dfa469729 Fix Bug#11333 "Stored Procedure: Memory blow up on repeated SELECT ... INTO query" 2005-08-25 15:34:14 +04:00
petr@mysql.com
659809d30f fix compilation failure appeared after monty's cleanup 2005-08-24 02:46:13 +02:00
monty@mishka.local
d62295e44e Cleanup during review of new pushed code 2005-08-22 01:13:37 +03:00
konstantin@mysql.com
887fba4736 A fix and a test case for "Bug #12168 'DECLARE CONTINUE HANDLER FOR
NOT FOUND ...' in conditional handled incorrectly".

Whenever we remove an instruction during optimization, we need to
adjust instruction numbers (ip - instruction pointer) stored in all
instructions. In addition to that, sp_instr_hpush_jump, which 
corresponds to DECLARE CONTINUE HANDLER needs adjustment for m_handler,
which holds the number of instruction with the continue handler.
In the bug report, a wrong ip stored in m_handler was pointing at 
FETCH, which resulted in an error message and abnormal SP termination.
The fix is to just remove m_handler member from sp_instr_hpush_jump,
as it's always points to the instruction next to the DECLARE
statement itself (m_ip+1).
2005-08-19 17:03:21 +04:00
petr@mysql.com
4fb6f4dddf Fix for Bug#11247 Stored procedures: Function calls in long loops leak memory
and Bug#12297 SP crashes the server if data inserted inside a lon loop
Third commit attempt. With fixes to the issues, showed up after full rebuild and
tests on other hosts.
2005-08-18 11:23:54 +02:00
jimw@mysql.com
68d5420d7c Clean up merge from 4.1 2005-08-15 14:19:56 -07:00
monty@mysql.com
df32f7d621 Save and clear run context before executing a stored function or trigger and restore it afterwards.
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
2005-08-15 18:15:12 +03:00
monty@mysql.com
e80252e53c Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2005-08-11 16:43:22 +03:00
monty@mysql.com
7b80e62528 Cleanups during review of new code 2005-08-11 15:58:15 +03:00
hf@deer.(none)
a99c04b2db Fix for bug #10499 (Function creation with GEOMETRY return) 2005-08-10 13:45:05 +05:00
dlenev@mysql.com
9a29c1f49e Fix after merging patch solving bug #10055 "Using stored function with
information_schema causes empty result set" with main tree.
2005-08-09 12:56:55 +04:00