summaryrefslogtreecommitdiff
path: root/Docs/sp-implemented.txt
diff options
context:
space:
mode:
authorunknown <pem@mysql.com>2003-02-02 17:49:42 +0100
committerunknown <pem@mysql.com>2003-02-02 17:49:42 +0100
commit77f30e19a6da4d17a5e282e5967cf4c61b35ddec (patch)
tree5336654be31b33f8285f915b0af7ccad2375fd86 /Docs/sp-implemented.txt
parenta3111ad09b074dcf7c95b0a055e0bbbf6005b2ba (diff)
downloadmariadb-git-77f30e19a6da4d17a5e282e5967cf4c61b35ddec.tar.gz
Added some basic implementation documentation for stored procedures.
Diffstat (limited to 'Docs/sp-implemented.txt')
-rw-r--r--Docs/sp-implemented.txt60
1 files changed, 60 insertions, 0 deletions
diff --git a/Docs/sp-implemented.txt b/Docs/sp-implemented.txt
new file mode 100644
index 00000000000..9074ad426ea
--- /dev/null
+++ b/Docs/sp-implemented.txt
@@ -0,0 +1,60 @@
+Stored Procedures implemented 2003-02-02:
+
+Summary of Not Yet Implemented:
+
+ - FUNCTIONs
+ - Routine characteristics
+ - External languages
+ - Access control
+ - Prepared SP caching; SPs are fetched and reparsed at each call
+ - SQL-99 COMMIT (related to BEGIN/END)
+ - DECLARE CURSOR ...
+ - FOR-loops (as it requires cursors)
+
+Summary of what's implemented:
+
+ - SQL PROCEDURES (CREATE/DROP)
+ - CALL
+ - DECLARE of local variables
+ - BEGIN/END, SET, CASE, IF, LOOP, WHILE, REPEAT, ITERATE, LEAVE
+ - SELECT INTO local variables
+
+List of what's implemented:
+
+ - CREATE PROCEDURE name ( args ) body
+ No routine characteristics yet.
+
+ - ALTER PROCEDURE name ...
+ Is parsed, but a no-op (as there are no characteristics implemented yet).
+ CASCADE/RESTRICT is not implemented (and CASCADE probably will not be).
+
+ - DROP PROCEDURE name
+ CASCADE/RESTRICT is not implemented (and CASCADE probably will not be).
+
+ - CALL name (args)
+ OUT and INOUT parameters are only supported for local variables, and
+ therefore only useful when calling such procedures from within another
+ procedure.
+ Note: For the time being, when a procedure with OUT/INOUT parameter is
+ called, the out values are silently discarded. In the future, this
+ will either generate an error message, or it might even work to
+ call all procedures from the top-level.
+
+ - Procedure body:
+ - BEGIN/END
+ Is parsed, but not the real thing with (optional) transaction
+ control, it only serves as block syntax for multiple statements (and
+ local variable binding).
+ Note: Multiple statements requires a client that can send bodies
+ containing ";". This is handled in the CLI clients mysql and
+ mysqltest with the "delimiter" command. Changing the end-of-query
+ delimiter ";" to for instance "|" allows
+ - SET of local variables
+ Implemented as part of the pre-existing SET syntax. This allows an
+ extended syntax of "SET a=x, b=y, ..." where different variable types
+ (SP local and global) can be mixed.
+ - The flow control constructs: CASE, IF, LOOP, WHILE, ITERATE and LEAVE
+ are fully implemented.
+ - SELECT ... INTO local variables (as well as global session variables)
+ is implemented. (Note: This is not SQL-99 feature, but common in other
+ databases.)