summaryrefslogtreecommitdiff
path: root/sql/sp.h
diff options
context:
space:
mode:
authorunknown <pem@mysql.com>2003-03-02 19:17:41 +0100
committerunknown <pem@mysql.com>2003-03-02 19:17:41 +0100
commit8a9422bd2af6ea39676171b9ec16897c64104dc8 (patch)
treef607e9e9c2756612d8e622c239e1781b56f51e63 /sql/sp.h
parent1ff79b61a056e5b50fc0402680f6f74ca1eb2a57 (diff)
downloadmariadb-git-8a9422bd2af6ea39676171b9ec16897c64104dc8.tar.gz
Made FUNCTIONs work in insert and select queries, as well as nested function invocations.
Had to add a cahing mechanism which is in parts an ugly kludge, but it will be reworked once the real SP caching is implemented. mysql-test/r/sp.result: New function tests. mysql-test/t/sp.test: New function tests. sql/sp.cc: Big rehack of mysql.proc table usage strategy and adding a function cache mechanism, since we need to read used functions from the db before doing anything else when executing a query. (This cache is temporary and will probably be replaced by the real thing later.) sql/sp.h: New (temporary) FUNCTION caching functions. sql/sp_head.cc: Fixed some bugs in the function and procedure execution. Disabled some data collections that's not used at the moment. sql/sp_head.h: Fixed some bugs in the function and procedure execution. Disabled some data collections that's not used at the moment. sql/sql_class.h: Added SP function cache list to thd. sql/sql_lex.cc: Added SP function name list to lex. sql/sql_lex.h: Added SP function name list to lex. sql/sql_parse.cc: Read used FUNCTIONs from db and cache them in thd before doing anything else in a query execution. (This is necessary since we can't open mysql.proc during query execution.) sql/sql_yacc.yy: Collect used function names in lex.
Diffstat (limited to 'sql/sp.h')
-rw-r--r--sql/sp.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/sql/sp.h b/sql/sp.h
index b9ade8fb3c1..21fcb4c5360 100644
--- a/sql/sp.h
+++ b/sql/sp.h
@@ -50,4 +50,16 @@ sp_drop_function(THD *thd, char *name, uint namelen);
bool
sp_function_exists(THD *thd, LEX_STRING *name);
+
+// QQ More temporary stuff until the real cache is implemented. This is
+// needed since we have to read the functions before we do anything else.
+void
+sp_add_fun_to_lex(LEX *lex, LEX_STRING fun);
+void
+sp_merge_funs(LEX *dst, LEX *src);
+int
+sp_cache_functions(THD *thd, LEX *lex);
+void
+sp_clear_function_cache(THD *thd);
+
#endif /* _SP_H_ */