mysql-test/r/sp.result:
New test case for BUG#5307
mysql-test/t/sp.test:
New test case for BUG#5307
sql/sp_head.cc:
Use the correct end-of-query pointer when extracting the body in the case
of a create procedure compound with another statement.
Bug in diff_handlers and diff_cursors made it attempt to pop
the wrong number at jumps sometimes.
mysql-test/r/sp.result:
New testcase for BUG#5287.
mysql-test/t/sp.test:
New testcase for BUG#5287.
sql/sp_pcontext.cc:
Fixed diff_handlers and diff_cursors methods, they miscounted.
sql/sp_pcontext.h:
Made m_handlers available for diff_handlers.
into pcgem.rdg.cyberkinetica.com:/usr/home/acurtis/work/mysql-5.0
mysql-test/r/sp.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/sp.result:
New testcase for BUG#5251.
mysql-test/t/sp.test:
New testcase for BUG#5251.
sql/sp_head.cc:
Added checksum to the list of statements that return result sets.
mysql-test/r/sp.result:
New test case for BUG#5251.
mysql-test/t/sp.test:
New test case for BUG#5251.
sql/sp.cc:
Don't update the created timestamp when doing alter procedure/function.
This finishes (almost) WL#2002: Implement stored procedure GOTO.
Only the syntax issue for free labels remains ("label L;" vs "L:").
include/mysqld_error.h:
New error code for GOTO in SP handler.
mysql-test/r/sp-error.result:
New error test cases for GOTO.
mysql-test/r/sp.result:
New test cases for GOTO.
Also removed some things that made it impossible to run the test in
an external (debugged) mysqld.
mysql-test/t/sp-error.test:
New error test cases for GOTO.
mysql-test/t/sp.test:
New test cases for GOTO.
Also removed some things that made it impossible to run the test in
an external (debugged) mysqld.
sql/share/czech/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/danish/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/dutch/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/english/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/estonian/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/french/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/german/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/greek/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/hungarian/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/italian/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/japanese/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/korean/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/norwegian-ny/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/norwegian/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/polish/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/portuguese/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/romanian/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/russian/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/serbian/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/slovak/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/spanish/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/swedish/errmsg.txt:
New error message for GOTO in SP handler.
sql/share/ukrainian/errmsg.txt:
New error message for GOTO in SP handler.
sql/sp_head.cc:
Code cleanup (renaming of pcontext methods), support goto, and fixed bug
in jump shortcutting in the optimizer (detect infinite loops).
sql/sp_head.h:
Code cleanup (renaming of pcontext methods), support goto, and fixed bug
in jump shortcutting in the optimizer (detect infinite loops).
sql/sp_pcontext.cc:
Major rehack and cleanup:
- We now push and pop a chain of contexts during parsing (instead of having
a single one).
- Makes error detection for GOTO easier and enables some optmizations and
debugger support.
- Makes it a little trickier to keep track on variable and cursor indexes instead.
- Renamed things to get a more consistent naming scheme too.
sql/sp_pcontext.h:
Major rehack and cleanup:
- We now push and pop a chain of contexts during parsing (instead of having
a single one).
- Makes error detection for GOTO easier and enables some optmizations and
debugger support.
- Makes it a little trickier to keep track on variable and cursor indexes instead.
- Renamed things to get a more consistent naming scheme too.
sql/sql_yacc.yy:
Changes to reflect the rework and renamings in sp_pcontext, and fixed
some GOTO error checking.
and BUG#336: Subselects with tables does not work as values for
local SP variables (which was closed before with a temp. fix, but not
actually fixed).
mysql-test/r/sp-error.result:
Moved test case for BUG#336 to sp.test, as it's not generating an error any longer.
mysql-test/r/sp.result:
Move test case for BUG#336 from sp-error.test and added new test case
for BUG#3157.
mysql-test/t/sp-error.test:
Moved test case for BUG#336 to sp.test, as it's not generating an error any longer.
mysql-test/t/sp.test:
Move test case for BUG#336 from sp-error.test and added new test case
for BUG#3157.
sql/sp_head.cc:
Open and close tables in set, jump-if[-not] and freturn instructions if
the value expression is a subselect.
sql/sp_head.h:
Store tables in set, jump-if[-not] and freturn instructions if
the value expression is a subselect.
sql/sql_yacc.yy:
Store tables in set, jump-if[-not] and freturn instructions if
the value expression is a subselect.
Mostly done, it works, but the temporary LABEL syntax still to be fixed.
mysql-test/r/sp-error.result:
New test case for WL#2002 (GOTO).
mysql-test/r/sp.result:
New test case for WL#2002 (GOTO).
(Also corrected another test)
mysql-test/t/sp-error.test:
New test case for WL#2002 (GOTO).
mysql-test/t/sp.test:
New test case for WL#2002 (GOTO).
(Also corrected another test)
sql/lex.h:
New symbol GOTO.
Also a temporary symbol LABEL, which hopefully will go away soon.
sql/sp_head.cc:
Fixed backpatching to cope with free GOTO labels an hpop and cpop instructions.
Also optimized away pointless jump instructions.
sql/sp_head.h:
Fixed backpatching to cope with free GOTO labels an hpop and cpop instructions.
We now sometimes generate hpop/cpop 0 instructions but the optimizer removes them.
sql/sp_pcontext.cc:
Added free GOTO labels, and support for coping with jumps out of blocks
with handlers or cursors.
sql/sp_pcontext.h:
Added free GOTO labels, and support for coping with jumps out of blocks
with handlers or cursors.
sql/sql_yacc.yy:
Added GOTO and LABEL, and adjusted backpatching accordingly. Also fixed LEAVE
out of blocks. The LABEL syntax will go away soon, hopefully.
mysql-test/r/sp.result:
Removed a test case that's not repeatable over different builds/platforms.
mysql-test/t/sp.test:
Removed a test case that's not repeatable over different builds/platforms.
The description is not entirerly correct. The issue was follow-up errors
where the first error is not caught - in which case it's often a system
error with errcode < 1000 (which are mapped by default to 'HY000'). In this
case the error state is different from what was assumed in the execution
loop.
mysql-test/r/sp.result:
New test case for BUG#4902.
mysql-test/t/sp.test:
New test case for BUG#4902.
sql/sp_head.cc:
Don't test the net.report_error flag in the execution loop. (Don't know
why this was done in the first place, as it seems to serve no purpose.)
and tried to do it properly this time, digging out all show commands that
need the multi results flag set.
mysql-test/r/sp.result:
New test case for BUG#4902, with lots of other show commands as well.
mysql-test/t/sp.test:
New test case for BUG#4902, with lots of other show commands as well.
sql/sp_head.cc:
The check for possible multiple result commands was becomming unwieldly,
so we moved it to a separate function, and added loads of new command codes
to the test.
sql/sp_head.h:
The check for possible multiple result commands was becomming unwieldly,
so we moved it to a separate function.
sql/sql_yacc.yy:
The check for possible multiple result commands was becomming unwieldly,
so we moved it to a separate function.
at least partially. It doesn't crash or give packets out of order
any more, but it's unclear why it doesn't actually return anything
from within an SP. This should be investigated at some point, but
for the moment this will have to do. (It is a rather obscure feature... :)
mysql-test/r/sp.result:
Test case for BUG#4318.
mysql-test/t/sp.test:
Test case for BUG#4318.
sql/sql_yacc.yy:
Recognize HANDLER READ as another statement that might result in multiple results.
Sub-CALLs of procedures zapped thd->current_arena for good.
mysql-test/r/sp.result:
New test case for BUG#4579.
mysql-test/t/sp.test:
New test case for BUG#4579.
sql/sp_head.cc:
Keep and restore old thd->current_arena before/after executing an SP,
instead of just setting it to 0 afterwards.
Note: The following tests fails
- fulltext (Sergei has promised to fix)
- rpl_charset (Guilhem should fix)
- rpl_timezone (Dimitray has promised to fix)
Sanja needs to check out the calling of close_thread_tables() in sp_head.cc
myisam/mi_check.c:
After merge fix
myisam/sort.c:
After merge fix
mysql-test/mysql-test-run.sh:
Export master socket to mysqltest
mysql-test/r/func_group.result:
Make result repeatable
mysql-test/r/mysqlbinlog.result:
After merge fix
mysql-test/r/ps_1general.result:
After merge fix
mysql-test/r/ps_2myisam.result:
After merge fix
mysql-test/r/ps_3innodb.result:
After merge fix
mysql-test/r/ps_4heap.result:
After merge fix
mysql-test/r/ps_5merge.result:
After merge fix
mysql-test/r/ps_6bdb.result:
After merge fix
mysql-test/r/rpl_flush_log_loop.result:
After merge fix
mysql-test/r/rpl_replicate_do.result:
After merge fix
mysql-test/r/rpl_temporary.result:
After merge fix
mysql-test/r/rpl_timezone.result:
After merge fix
Note that this test fails now (Dimitry has promised to fix this)
mysql-test/r/rpl_user_variables.result:
After merge fix
mysql-test/r/select.result:
After merge fix
mysql-test/r/sp-error.result:
After merge fix
mysql-test/r/sp-security.result:
After merge fix
mysql-test/r/sp.result:
After merge fix
mysql-test/r/user_var.result:
After merge fix
mysql-test/r/variables.result:
After merge fix
mysql-test/t/alter_table.test:
After merge fix
mysql-test/t/derived.test:
After merge fix
mysql-test/t/func_group.test:
Make result repeatable
mysql-test/t/grant_cache.test:
Use MASTER_MYSOCK instead of master.sock
mysql-test/t/multi_update.test:
Use MASTER_MYSOCK instead of master.sock
mysql-test/t/rpl000015.test:
Use MASTER_MYSOCK instead of master.sock
mysql-test/t/rpl000017.test:
Use MASTER_MYSOCK instead of master.sock
mysql-test/t/rpl000018.test:
Use MASTER_MYSOCK instead of master.sock
mysql-test/t/rpl_charset.test:
After merge fix
mysql-test/t/rpl_heap.test:
Use MASTER_MYSOCK instead of master.sock
mysql-test/t/rpl_rotate_logs.test:
Use MASTER_MYSOCK instead of master.sock
mysql-test/t/sp-error.test:
after merge fix
mysql-test/t/sp-security.test:
after merge fix
mysql-test/t/user_var.test:
after merge fix
scripts/mysql_fix_privilege_tables.sh:
This can now be exectued from the source distribution
sql/handler.cc:
Cleanup
sql/handler.h:
More debugging
sql/item.h:
Indentation fixes
sql/item_cmpfunc.cc:
After merge fixes
sql/opt_range.cc:
After merge fixes
sql/opt_range.h:
After merge fixes
sql/sp.cc:
After merge fixes
sql/sp_head.cc:
Remove closing of thread tables in a SP function as this caused a core dump.
(Has to be fixed better)
sql/sql_base.cc:
More debugging
sql/sql_handler.cc:
After merge fixes
(We have to call ha_index_or_rnd_end() before calling close_thread_table())
sql/sql_parse.cc:
More debugging
sql/sql_prepare.cc:
After merge fixes
sql/sql_select.cc:
After merge fixes
mysql-test/r/sp.result:
New test case for BUG#3368.
mysql-test/t/sp.test:
New test case for BUG#3368.
sql/item.h:
Corrected const_item() for item_splocal. (Confusing semantics here, but this
makes group_concat() behave as expected, instead of crashing, and does not
appear to affect anything else.)
mysql-test/r/sp.result:
New test case for BUG#3843.
mysql-test/t/sp.test:
New test case for BUG#3843.
sql/sql_yacc.yy:
Added another multi results special case for stored procedures (analyze).
mysql-test/r/sp.result:
Added testcase for BUG#3132.
mysql-test/t/sp.test:
Added testcase for BUG#3132.
sql/item_func.cc:
Set a useful max_length in Item_func_sp so field widths are correctly calculated.
It's not possible to quote the definition according to the current sql_mode
setting, so instead we use the setting stored with the SP (that's how it's
parsed anyway), and show this setting in the SHOW CREATE output.
mysql-test/r/sp.result:
Modifed SHOW CREATE FUNCTION|PROCEDURE output. Show the sql_mode used at
creation as well.
New test case for BUG#2564: SHOW CREATE inconsistent W.R.T ANSI_QUOTES.
mysql-test/t/sp.test:
New test case for BUG#2564: SHOW CREATE inconsistent W.R.T ANSI_QUOTES.
sql/sp.cc:
Rewrote create_string to quote things correctly according to the sql_mode
used at creation time.
sql/sp_head.cc:
Store sql_mode in sp_head and use it for SHOW CREATE.
sql/sp_head.h:
Store sql_mode in sp_head and use it for SHOW CREATE.
mysql-test/r/sp.result:
Added test case for BUG#2460.
mysql-test/t/sp.test:
Added test case for BUG#2460.
sql/sql_union.cc:
When called from stored procedures, tabs might be reset already.
BUG#1863: CREATE TABLE in Stored Procedure sometimes crashes on repeated calls.
BUG#2656: select with join in stored procedure: erroneous result on 2nd call.
BUG#3426: IF x IS NULL in stored procedure fails on second call within connection.
BUG#3448: Stored Procedures with inner joins possible bug.
BUG#3734: Stored procedure returns wrong rows with fulltext parameter.
BUG#3863: Stored procedure crash when incrementing variable in a loop.
(And corrected the row count output to the client after CALL)
mysql-test/r/sp.result:
New test case results for fixed bugs.
mysql-test/t/sp.test:
New test cases for fixed bugs.
sql/sql_parse.cc:
Corrected the row_count output to the client.
mysql-test/r/sp.result:
test suite for Bug #2266
mysql-test/t/sp.test:
test suite for Bug #2266
sql/item_subselect.cc:
made ancestor for Statement (Item_arena)
sql/item_subselect.h:
made ancestor for Statement (Item_arena)
sql/item_sum.cc:
made ancestor for Statement (Item_arena)
sql/item_sum.h:
made ancestor for Statement (Item_arena)
sql/mysql_priv.h:
reset_stmt_for_execute use PS and SP
sql/sp_head.cc:
sp_head use Item_arena as ancestor to be PS cleunup compatible
SP use PS storing/restoring/cleanup mechanisms
cleanup() of SP Items added
Items created in temporary memory pool during SP execution saved for normal freeing after SP execution
sql/sp_head.h:
sp_head use Item_arena
sql/sql_base.cc:
made ancestor for Statement (Item_arena)
results of wild_setup made permanent
setup_conds make natural joins expanding only once and store results in PS/SP memory
sql/sql_class.cc:
made ancestor for Statement (Item_arena)
sql/sql_class.h:
made ancestor for Statement (Item_arena)
method to detect PS preparation added
sql/sql_delete.cc:
storing where for DELETE and mark first execution
sql/sql_derived.cc:
use method
sql/sql_insert.cc:
mark first execution for INSERT
sql/sql_lex.cc:
flags to correctly make transformations of query and storing them in memory of PS/SP
made ancestor for Statement (Item_arena)
sql/sql_lex.h:
reved variable od SP ol saving data
flags to correctly make transformations of query and storing them in memory of PS/SP
sql/sql_parse.cc:
cleunup unit for any query
sql/sql_prepare.cc:
made ancestor for Statement (Item_arena)
storing where moved to preparation
changed interface of reset_stmt_for_execute to use it is SP
do not restore where/order by/group by before first execution (but tables and unit can be chenged without execution and should be prepared (subqueries executes on demand))
sql/sql_select.cc:
storing where for SELECT/multi-DELETE/... and mark first execution
sql/sql_union.cc:
made ancestor for Statement (Item_arena)
sql/sql_update.cc:
storing where for UPDATE and mark first execution
statements.
mysql-test/r/sp.result:
Added row_count() test for non-insert/update/delete statement.
mysql-test/t/sp.test:
Added row_count() test for non-insert/update/delete statement.
sql/sql_class.h:
thd->row_count_func must be signed for JDBC/ODBC (can be -1).
sql/sql_parse.cc:
Reset thd->row_count_func to -1 for non-insert/update/delete statements.
mysql-test/r/sp.result:
New test cases for function ROW_COUNT().
mysql-test/t/sp.test:
New test cases for function ROW_COUNT().
sql/item_func.cc:
New Item_func_row_count.
sql/item_func.h:
New Item_func_row_count.
sql/lex.h:
New symbol for function ROW_COUNT().
sql/sql_class.h:
New slot in THD for storing the row_count after insert, delete and update.
sql/sql_delete.cc:
Set thd->row_count_func when deleting.
sql/sql_insert.cc:
Set thd->row_count_func when inserting.
sql/sql_parse.cc:
Stored procedure CALLs send the row count from the last insert, delete or update.
sql/sql_update.cc:
Set thd->row_count_func when updating.
sql/sql_yacc.yy:
New function ROW_COUNT().
Actually catch pushed warnings.
mysql-test/r/sp.result:
New test case for BUG#2780.
mysql-test/t/sp.test:
New test case for BUG#2780.
sql/sql_error.cc:
Actually attempt to catch pushed warnings when running SPs.
Keep track on the default value and use it. (Or NULL, if not declared.)
mysql-test/r/sp.result:
New testcases for BUG#2776.
mysql-test/t/sp.test:
New testcases for BUG#2776.
sql/sp_pcontext.cc:
Initialize local variable default value.
sql/sp_pcontext.h:
New method for saving default value.
sql/sql_yacc.yy:
If DEFAULT is use as a value in SET variable = ... in an SP, actually use the default.
Complex return types were not stored correctly in the mysql.proc table.
mysql-test/r/sp.result:
New testcase for BUG2772.
mysql-test/t/sp.test:
New testcase for BUG2772.
sql/sp_head.cc:
Pick up character set for "returns" types in functions and add it separately,
since it's missed when extracting the type during the parser. (Due to LALR
behaviour.)
sql/sp_head.h:
Save the character set for returns clause in functions.
sql/sql_yacc.yy:
Pick up character set for "returns" types in functions since it's missed otherwise.
(Due to LALR behaviour.)
Added new test cases for this, and adjusted old tests accordingly,
and new error codes and messages.
Fixed bugs in some tests (bug2673 and use test).
Added debug printing of instructions in SPs.
include/mysqld_error.h:
New error codes for non-standard declaration order in SPs.
include/sql_state.h:
New error codes for non-standard declaration order in SPs.
mysql-test/r/sp-error.result:
Enforce standard declaration order.
Fixed syntax error in use-test.
New test cases for wrong order.
mysql-test/r/sp.result:
Enforce strict declaration order.
Fixed platform dependent bug2673 test.
mysql-test/t/sp-error.test:
Enforce standard declaration order.
Fixed syntax error in use-test.
New test cases for wrong order.
mysql-test/t/sp.test:
Enforce strict declaration order.
Fixed platform dependent bug2673 test.
sql/share/czech/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/danish/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/dutch/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/english/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/estonian/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/french/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/german/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/greek/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/hungarian/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/italian/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/japanese/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/korean/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/norwegian-ny/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/norwegian/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/polish/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/portuguese/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/romanian/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/russian/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/serbian/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/slovak/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/spanish/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/swedish/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/share/ukrainian/errmsg.txt:
New error messages for strict (standard) declaration order in SPs.
sql/sp_head.cc:
Debug printing of instructions in procedures.
New error instruction for future use.
sql/sp_head.h:
Debug printing of instructions in procedures.
New error instruction for future use.
sql/sql_string.cc:
New methods needed by debug printing of instruction in SPs.
sql/sql_string.h:
New methods needed by debug printing of instruction in SPs.
sql/sql_yacc.yy:
Check for standard order of declarations in SPs.
Procedure names were unintentionally case-sensitive when read from the database
(but case-insensitive when fetched from the cache).
Note that the DB-part of qualified names is still case-sensitive (for consistency
with other usage in mysql).
Docs/sp-imp-spec.txt:
Removed "binary" from name and specific_name columns in mysql.proc definition.
mysql-test/r/sp.result:
Test case for BUG#3259; SP names were supposed to be case-insensitive.
mysql-test/t/sp.test:
Test case for BUG#3259; SP names were supposed to be case-insensitive.
scripts/mysql_create_system_tables.sh:
Removed "binary" from name and specific_name columns in mysql.proc definition.
scripts/mysql_fix_privilege_tables.sql:
Removed "binary" from name and specific_name columns in mysql.proc definition,
and added a corresponding ALTER TABLE to fix existing tables.
sql/sp.cc:
Added missing init of variable.
Phase 4 (final): Remove associated stored procedures when a database is dropped.
mysql-test/r/sp-security.result:
drop database now deletes associated SPs.
mysql-test/r/sp.result:
drop database now deletes associated SPs.
mysql-test/t/sp-security.test:
drop database now deletes associated SPs.
mysql-test/t/sp.test:
drop database now deletes associated SPs.
sql/sp.cc:
New function for deleting all SPs associated with a database.
sql/sp.h:
New function for deleting all SPs associated with a database.
sql/sp_cache.cc:
New function for just invalidating all SP caches (when dropping a database).
sql/sp_cache.h:
New function for just invalidating all SP caches (when dropping a database).
sql/sql_db.cc:
When dropping a database, also delete all associated SPs.
Had to initialize some fields in lex before parsing an SP read from
mysql.proc.
mysql-test/r/sp.result:
New test case for BUG#2674.
mysql-test/t/sp.test:
New test case for BUG#2674.
sql/sp.cc:
We need to initialize some thd->lex fields (e.g. unit master pointers) since
LEX::uncacheable() depends on this, and it's called when looking up system
variables during parsing.
Phase 2: Make SPs belong to a DB, and use qualified names.
As a side effect, using USE in an SP is no longer allowed.
(It just doesn't work otherwise.)
include/mysqld_error.h:
New error code (USE is no longer allowed in a stored procedure).
include/sql_state.h:
New error state (USE is no longer allowed in a stored procedure).
mysql-test/r/sp-error.result:
Updated result for test of USE in SP (not allowed now).
mysql-test/r/sp-security.result:
Updated test results for new db column and qualified procedured names.
mysql-test/r/sp.result:
Updated results for USE in SP (as it's no longer allowed), and
for new db column in status result.
mysql-test/t/sp-error.test:
Moved test of USE in SP from sp.test (as it's no longer allowed).
mysql-test/t/sp-security.test:
Ajusted tests for new db column and qualified procedured names.
mysql-test/t/sp.test:
Moved test of USE in SP to sp-error.test (as it's no longer allowed).
Adjusted tests for new db column in status result.
sql/mysql_priv.h:
mysql_change_db() now has optional arguments for use by SP with qualified names.
sql/share/czech/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/danish/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/dutch/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/english/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/estonian/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/french/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/german/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/greek/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/hungarian/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/italian/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/japanese/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/korean/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/norwegian-ny/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/norwegian/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/polish/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/portuguese/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/romanian/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/russian/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/serbian/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/slovak/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/spanish/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/swedish/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/share/ukrainian/errmsg.txt:
New error message: USE is not allowed in a stored procedure.
sql/sp.cc:
SPs are now "belong" to a DB and may have qualified names.
New functions for changing DB ("use") when parsing and invoking SPs.
sql/sp.h:
New functions for changing DB ("use") when parsing and invoking SPs.
sql/sp_cache.cc:
Use the qualified name in the SP cache.
sql/sp_head.cc:
New function for allocating a qualified SP name (used in sql_yacc.yy).
Change DB when executing an SP (if needed).
Moved thd_mem_root swap functions from sp_head.h.
sql/sp_head.h:
New function for allocating a qualified SP name (used in sql_yacc.yy).
Moved thd_mem_root swap functions to sp_head.cc.
sql/sql_db.cc:
mysql_change_db() now has optional arguments for use by SP with qualified names
(for use when reading an SP from database and executing it); also allow "unusing"
a database, i.e. setting thd->thd to "".
sql/sql_yacc.yy:
Initialize qualfied SP names correctly.
USE is no longer allowed in an SP.
and updated sp.result as well.
mysql-test/r/sp.result:
Fixed test for BUG#2614 (right name, right place, etc...),
and updated this file as well.
mysql-test/t/sp.test:
Fixed test for BUG#2614 (right name, right place, etc...)
(Meaning "... with SELECT v", where v is a local variable.)
mysql-test/r/sp.result:
Test case for BUG#2227
mysql-test/t/sp.test:
Test case for BUG#2227
sql/item.h:
Item_splocal::send() needed for "SELEC v", where "v" is a local variable.
Also set the field name.
sql/sp_head.cc:
Have to get decimals and max_length right for reals, when SELECT of local variables.
(This might not be enough, could be more statements that must be detected...)
mysql-test/r/sp.result:
Test case for BUG#2267
mysql-test/t/sp.test:
Test case for BUG#2267
sql/sp.cc:
Code clean-up: Get the correct order of print-outs in debug trace.
sql/sql_yacc.yy:
Detect "select-like" statements so that the multi result flag is set correctly.
Found a few more places in the parser (insert, replace and update) where
local stored procedure variables should not be recognized.
mysql-test/r/sp-error.result:
Test cases for BUG#2329
mysql-test/r/sp.result:
New test case for certain context dependencies for symbols.
mysql-test/t/sp-error.test:
Test cases for BUG#2329
mysql-test/t/sp.test:
New test case for certain context dependencies for symbols.
sql/sql_yacc.yy:
Found a few more places where local SP variables should not be recognized.
mysql-test/r/sp.result:
Test case for BUG#2260.
mysql-test/t/sp.test:
Test case for BUG#2260.
sql/sp_rcontext.cc:
Detect warning and not found, and exception condition correctly.
Some code cleanup
mysql-test/r/sp.result:
Update results after adding quotes around function/procedure names
sql/sp.cc:
Moved DBUG_ENTER after all variable declarations
Eliminated some variables.
Added more DBUG_ENTER commands.
Added memory allocation checking in create_string()
Fixed memory leak in sp_show_create_function()
Removed usage of sprintf
sql/sql_parse.cc:
Simple cleanup
Fixed memory leaks for mailformed SP definitions
Multiple result sets from stored procedures now works with the
mysql and mysqltest clients.
client/mysqltest.c:
Post-merge fixes.
mysql-test/r/index_merge_innodb.result:
Post-merge fixes.
mysql-test/r/sp-error.result:
Post-merge fixes.
Removed now obsolete error test for multiple selects (without "into").
mysql-test/r/sp.result:
Post-merge fixes.
Added test for mulple result sets.
mysql-test/r/variables.result:
Post-merge fixes.
mysql-test/t/index_merge_innodb.test:
Post-merge fixes.
mysql-test/t/sp-error.test:
Post-merge fixes.
Removed now obsolete error test for multiple selects (without "into").
mysql-test/t/sp.test:
Post-merge fixes.
Added test for mulple result sets.
sql/lex.h:
Post-merge fixes.
(Also put the hostpart back in the definer column.)
mysql-test/r/sp-error.result:
Moved error test from sp.test
mysql-test/r/sp.result:
Moved error test to sp-error.test.
Put hostpart back into definer column in mysql.proc.
mysql-test/t/sp-error.test:
Moved error test from sp.test
mysql-test/t/sp.test:
Moved error test to sp-error.test.
Put hostpart back into definer column in mysql.proc.
sql/item_func.cc:
(Maybe) switch security context before invoking a stored function.
sql/sp.cc:
Renamed creator into definer, for more consistent terminology, and put the
hostpart back.
sql/sp_head.cc:
Some fixes in the way things are allocated, and moved set_info() definition
here from sp_head.h. creator is now called definer, and is split into a
user and host part.
Added functions for (possible) change and restore of privileges, for sql security
definer calls.
sql/sp_head.h:
Moved set_info() definition here from sp_head.h.
creator is now called definer, and is split into a user and host part.
Added functions for (possible) change and restore of privileges, for sql security
definer calls.
sql/sql_acl.cc:
New function acl_getroot_no_password() for getting the privileges used when
calling an SP with sql security definer.
sql/sql_acl.h:
New function acl_getroot_no_password() for getting the privileges used when
calling an SP with sql security definer.
sql/sql_parse.cc:
(Maybe) switch security context before invoking a stored procedure.
sql/sql_yacc.yy:
Fixed typo.
make characteristics (and SHOW) work right, we had to separate the old
definition blob in the mysql.proc table into separate fields for parameters,
return type, and body, and handle the characteristics (like SQL SECURITY)
separately... and then reassemble the CREATE string for parsing, of course.
This is rather ugly, mostly the parser bit. (Hopefully that will be better
with the new parser.)
Docs/sp-imp-spec.txt:
Separated the definitions string of the procedure into different columns
in the mysql.proc schema.
mysql-test/r/sp.result:
New characteristics tests.
mysql-test/t/sp.test:
New characteristics tests.
scripts/mysql_create_system_tables.sh:
Separated the definitions string of the procedure into different columns
in the mysql.proc schema.
scripts/mysql_fix_privilege_tables.sql:
Separated the definitions string of the procedure into different columns
in the mysql.proc schema.
sql/sp.cc:
Separated the definitions string of the procedure into different columns.
Rewrote much of the code related this (have a assemble the definition
string from its different parts now) and the way characteristics are now
handled, in order to make ALTER actually work.
sql/sp.h:
Changed prototypes.
sql/sp_head.cc:
Rewrote much of the code related to the new mysql.proc schema with separate
definition fields (have to assemble the definition string from its different
parts now) and the way characteristics are now handled, in order to make ALTER
actually work.
sql/sp_head.h:
Separated the different parts of the definition strings: name, parameters,
return type (for functions) and body.
sql/sql_yacc.yy:
Separated the different parts of the definition strings: name, parameters,
return type (for functions) and body.
This is ugly and messy; hopefully there's a more elegant way to do this
when the new parser is installed.
sql_mode is stored and used with SPs.
sql_select_limit is always unlimited in SPs.
mysql-test/r/sp.result:
Test case for mode settings.
mysql-test/t/sp.test:
Test case for mode settings.
sql/sp.cc:
Store the sql_mode with the SP and reset it on retrieval.
sql_select_limit is always maximum (default) in an SP,
regardless of the setting at the time of create or call.
Also made the parsing and handling of SP characteristics
more general and extendable, and added a few ch:istics.
Docs/sp-imp-spec.txt:
Updated spec with new schema.
Docs/sp-implemented.txt:
Added info about ALTER and SHOW.
mysql-test/r/sp.result:
Minor change in SHOW FUNCTION|PROCEDURE STATUS output.
scripts/mysql_create_system_tables.sh:
New mysql.proc schema.
scripts/mysql_fix_privilege_tables.sql:
New mysql.proc schema.
sql/lex.h:
New lex words for SP characteristics.
sql/sp.cc:
New mysql.proc schema.
Also made the characteristics handling slightly more extendable.
sql/sp.h:
Made the characteristics handling slightly more extendable.
sql/sp_head.cc:
Made the characteristics handling slightly more extendable.
sql/sp_head.h:
Made the characteristics handling slightly more extendable.
sql/sql_lex.h:
Made the characteristics handling slightly more extendable.
sql/sql_parse.cc:
Made the characteristics handling slightly more extendable.
sql/sql_yacc.yy:
Made the characteristics handling slightly more extendable
and made the parsing of characteristics more general, and
added a few new dito. (LANGUAGE SQL, and [NOT] DETERMINISTIC
for starters).
table definition crashed), and recursive calls.
mysql-test/r/sp.result:
New test cases for BUG#1653 and recursive calls.
mysql-test/t/sp.test:
New test cases for BUG#1653 and recursive calls.