Easy to prevent crash, but the question was how to treat this case?
We ended up implementing the "global" SPs (i.e. with no associated
db), which were planned but left unresolved when SPs moved into dbs.
So now things like "call .p()" work too.
mysql-test/r/sp-error.result:
New test case for BUG#5000, and "global" SPs in general.
mysql-test/t/sp-error.test:
New test case for BUG#5000, and "global" SPs in general.
sql/sp.cc:
Prevent crash when the new db is null.
sql/sp_head.cc:
Don't set the db part of the name to thd->db, we have already set it correctly
in the provided name struct.
Also, don't attempt to change "no-db" when executing an SP.
sql/sql_yacc.yy:
Added support for the "global SP" syntax, e.g ".p()".
Althought techically not a but (as it's functioning as designed),
it was decided that the design should be changed. Some users have
a problem with dates being '0000-00-00' and the SQL standard specifies
that the modification date should be the same as the creation date
at creation.
mysql-test/r/sp.result:
New test case for BUG#5258.
mysql-test/t/sp.test:
New test case for BUG#5258.
sql/sp.cc:
Set the modification time at creation too.
mysql-test/r/view.result:
INSERT into VIEW with ON DUPLICATE
mysql-test/t/view.test:
INSERT into VIEW with ON DUPLICATE
sql/sql_insert.cc:
do not use Item_ref for view fields if it is UPDATE of INSERT
into sanja.is.com.ua:/home/bell/mysql/bk/work-5.0
mysql-test/r/view.result:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/table.h:
Auto merged
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.
include/mysqld_error.h:
bug name and number of bugs fixed
mysql-test/r/view.result:
VIEW over SELECT with prohibited clauses
mysql-test/t/view.test:
VIEW over SELECT with prohibited clauses
sql/share/czech/errmsg.txt:
error message made more general
sql/share/danish/errmsg.txt:
error message made more general
sql/share/dutch/errmsg.txt:
error message made more general
sql/share/english/errmsg.txt:
error message made more general
sql/share/estonian/errmsg.txt:
error message made more general
sql/share/french/errmsg.txt:
error message made more general
sql/share/german/errmsg.txt:
error message made more general
sql/share/greek/errmsg.txt:
error message made more general
sql/share/hungarian/errmsg.txt:
error message made more general
sql/share/italian/errmsg.txt:
error message made more general
sql/share/japanese/errmsg.txt:
error message made more general
sql/share/korean/errmsg.txt:
error message made more general
sql/share/norwegian-ny/errmsg.txt:
error message made more general
sql/share/norwegian/errmsg.txt:
error message made more general
sql/share/polish/errmsg.txt:
error message made more general
sql/share/portuguese/errmsg.txt:
error message made more general
sql/share/romanian/errmsg.txt:
error message made more general
sql/share/russian/errmsg.txt:
error message made more general
sql/share/serbian/errmsg.txt:
error message made more general
sql/share/slovak/errmsg.txt:
error message made more general
sql/share/spanish/errmsg.txt:
error message made more general
sql/share/swedish/errmsg.txt:
error message made more general
sql/share/ukrainian/errmsg.txt:
error message made more general
sql/sql_view.cc:
checked INTO clause during view creation
mysql-test/r/view.result:
problem with used_tables() of outer reference resolved in VIEW
mysql-test/t/view.test:
problem with used_tables() of outer reference resolved in VIEW
sql/item.cc:
fixed staistic of subquery if outer field resolved in merged view
mysql-test/r/view.result:
VIEWs with national characters
mysql-test/t/view.test:
VIEWs with national characters
sql/sql_view.cc:
system charset (with wich VIEW printed) saved in .frm and restored before parsing view
sql/table.h:
system charset (with wich VIEW printed) saved in .frm
mysql-test/r/view.result:
VIEW with floating point (long bumber) as column
mysql-test/t/view.test:
VIEW with floating point (long bumber) as column
sql/item.cc:
fixed printing of real constants
sql/item.h:
fixed printing of real constants
mysql-test/r/view.result:
fixed test
VIEW over droped function
mysql-test/t/view.test:
VIEW over droped function
sql/item_func.cc:
after review fix
sql/sp.cc:
hint to find mysql.proc
sql/sql_lex.h:
hint to find mysql.proc
sql/sql_parse.cc:
hint to find mysql.proc
sql/sql_view.cc:
adding mysql.proc to table list if view contains stored procedures
mysql-test/r/subselect.result:
ORDER clause printing fixed
mysql-test/r/view.result:
order by refers on integer field
mysql-test/t/view.test:
order by refers on integer field
sql/sql_lex.cc:
ORDER clause printing fixed
sql/sql_parse.cc:
fields for correct ORDER printing added
sql/sql_select.cc:
fields for correct ORDER printing added
sql/table.h:
fields for correct ORDER printing added
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/view.result:
tested problem when function name length close to ALIGN_SIZE
mysql-test/t/view.test:
tested problem when function name length close to ALIGN_SIZE
sql/item_func.cc:
fixed case when real length very close to calculated (less then ALIGN)
mysql-test/r/view.result:
VIEW based on functions with complex names
mysql-test/t/view.test:
VIEW based on functions with complex names
sql/item_func.cc:
fixed printing of stored procedure functions names
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.
mysql-test/r/view.result:
VIEW of VIEW with column renaming
mysql-test/t/view.test:
VIEW of VIEW with column renaming
sql/mysql_priv.h:
Item name for VIEW added to find_field_in_table
sql/sql_acl.cc:
new parameter
sql/sql_base.cc:
Item name for VIEW added to find_field_in_table
fixed other Item_ref methods where result_field involved
mysql-test/r/view.result:
statements added to distinct in temporary table with a VIEW test
test of agggregate over aggregate with view
mysql-test/t/view.test:
statements added to distinct in temporary table with a VIEW test
test of agggregate over aggregate with view
sql/item.cc:
fixed other Item_ref methods where result_field involved
sql/item.h:
fixed other Item_ref methods where result_field involved
sql/sql_lex.cc:
fixed updateability VIEW detection
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.
mysql-test/r/view.result:
distinct in temporary table with a VIEW
mysql-test/t/view.test:
distinct in temporary table with a VIEW
sql/item.cc:
fix of Item_ref with result_field
sql/item.h:
fix of Item_ref with result_field
mysql-test/r/view.result:
SHOW CREATE VIEW output changed
test of SHOW CREATE VIEW for view with spaces in the name
mysql-test/t/view.test:
test of SHOW CREATE VIEW for view with spaces in the name
sql/sql_show.cc:
fixes name outout for SHOW CREATE VIEW command
mysql-test/r/view.result:
Showing VIEW with VIEWs in subquery
mysql-test/t/view.test:
Showing VIEW with VIEWs in subquery
sql/sql_lex.cc:
new method to detect commands where all VIEWs should be temporary tables
sql/sql_lex.h:
new method to detect commands where all VIEWs should be temporary tables
sql/sql_view.cc:
new method to detect commands where all VIEWs should be temporary tables
debug output added
mysql-test/r/view.result:
Aggregate functions in view list
mysql-test/t/view.test:
Aggregate functions in view list
sql/table.cc:
fixed aggregate function processing in VIEWs
mysql-test/r/view.result:
added removing of table t2
test of view built over union
mysql-test/t/view.test:
added removing of table t2
test of view built over union
sql/sql_view.cc:
Fixed UNION support in view creation
mysql-test/r/view.result:
test of functions in VIEW which is converted to constants internally
mysql-test/t/view.test:
test of functions in VIEW which is converted to constants internally
sql/item.h:
items for functions which is converted to constants internally to support its correct printing
sql/item_create.cc:
items for functions which is converted to constants internally to support its correct printing
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.
mysql-test/r/view.result:
using VIEW where table is required
mysql-test/t/view.test:
using VIEW where table is required
sql/sql_base.cc:
sending right error message where VIEW is not expected
sql/sql_view.h:
frm_type_enum moved to table.h becuae used in TABLE_LIST
sql/table.h:
frm_type_enum moved to table.h becuae used in TABLE_LIST
Fix mysql-test failure in the 5.0 tree on Aug 23: label seems to be a reserved word in 5.0, and we to use it a s a column name we must but it inside backticks
mysql-test/t/innodb.test:
Fix mysql-test failure in the 5.0 tree on Aug 23: label seems to be a reserved word in 5.0, and we to use it a s a column name we must but it inside backticks
mysql-test/r/innodb.result:
Fix mysql-test failure in the 5.0 tree on Aug 23: label seems to be a reserved word in 5.0, and we to use it a s a column name we must but it inside backticks
mysql-test/r/view.result:
EXISTS with UNION VIEW creation test
mysql-test/t/view.test:
EXISTS with UNION VIEW creation test
sql/sql_lex.cc:
fixed LIMIT clause printing
mysql-test/r/view.result:
test of error processing found in preparation phase
mysql-test/t/view.test:
test of error processing found in preparation phase
sql/sql_view.cc:
fixed error processing of prepare
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/view.result:
Test of view updatebility in prepared statement
mysql-test/t/view.test:
Test of view updatebility in prepared statement
sql/sql_prepare.cc:
resolve UPDATE fields belonged to VIEWs as Item_field (instead of Item_ref) in prepared statements, too