summaryrefslogtreecommitdiff
path: root/sql/sp.h
diff options
context:
space:
mode:
authorunknown <pem@mysql.com>2006-01-26 13:29:46 +0100
committerunknown <pem@mysql.com>2006-01-26 13:29:46 +0100
commitcce719fba8e143c6a94f5c4048e1b72d005b1dd2 (patch)
tree42db978805a90eab556fb5ed7c87e15209b14d6b /sql/sp.h
parente43170419c97f5432e90016bc89e0910f39f1487 (diff)
downloadmariadb-git-cce719fba8e143c6a94f5c4048e1b72d005b1dd2.tar.gz
Fixed BUG#16303: erroneus stored procedures and functions should be droppable
Use a special lookup function for DROP, which doesn't attempt to parse the definition. mysql-test/r/sp-destruct.result: Updated test result for BUG#16303. mysql-test/t/sp-destruct.test: Added test case for BUG#16303. sql/sp.cc: New function sp_routine_exists_in_table() for DROP PROCEDURE/FUNCTION; which doesn't want to parse the definition, only know if it exists. Renamed sp_exists_routine to sp_exist_routines and added comment, and changed the misnamed parameter/variable 'tables'/'table' to 'routines'/'routine'. sql/sp.h: New function sp_routine_exists_in_table() for DROP PROCEDURE/FUNCTION. Renamed sp_exists_routine to sp_exist_routines, and changed the misnamed parameter 'tables' to 'routines'. sql/sql_acl.cc: Call to sp_exists_routine() renamed to sp_exist_routines(). sql/sql_parse.cc: Use the new sp_routine_exists_in_table() instead of sp_find_routine(), since we don't want the routine definition parsed when doing DROP PROCEDURE/FUNCTION.
Diffstat (limited to 'sql/sp.h')
-rw-r--r--sql/sp.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/sp.h b/sql/sp.h
index 53343e0fb25..2587a9b115a 100644
--- a/sql/sp.h
+++ b/sql/sp.h
@@ -40,7 +40,10 @@ sp_find_routine(THD *thd, int type, sp_name *name,
sp_cache **cp, bool cache_only);
int
-sp_exists_routine(THD *thd, TABLE_LIST *procs, bool any, bool no_error);
+sp_exist_routines(THD *thd, TABLE_LIST *procs, bool any, bool no_error);
+
+int
+sp_routine_exists_in_table(THD *thd, int type, sp_name *name);
int
sp_create_procedure(THD *thd, sp_head *sp);