Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
7a66e0ab
Commit
7a66e0ab
authored
Dec 25, 2017
by
Rajat Rawat
Committed by
Sergey Vojtovich
Dec 25, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Typo Errors Fixed like essensially->essentially
parent
8307fc9d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
5 additions
and
5 deletions
+5
-5
Docs/sp-imp-spec.txt
Docs/sp-imp-spec.txt
+5
-5
No files found.
Docs/sp-imp-spec.txt
View file @
7a66e0ab
...
@@ -103,7 +103,7 @@
...
@@ -103,7 +103,7 @@
- Statements:
- Statements:
The Lex in THD is replaced by a new Lex structure and the statement,
The Lex in THD is replaced by a new Lex structure and the statement,
is parsed as usual. A sp_instr_stmt is created, containing the new
is parsed as usual. A sp_instr_stmt is created, containing the new
Lex, and added to
added to
the instructions in sphead.
Lex, and added to the instructions in sphead.
Afterwards, the procedure's Lex is restored in THD.
Afterwards, the procedure's Lex is restored in THD.
- SET var:
- SET var:
Setting a local variable generates a sp_instr_set instruction,
Setting a local variable generates a sp_instr_set instruction,
...
@@ -169,7 +169,7 @@
...
@@ -169,7 +169,7 @@
- Parsing CREATE FUNCTION ...
- Parsing CREATE FUNCTION ...
Creating a functions is essen
s
ially the same thing as for a PROCEDURE,
Creating a functions is essen
t
ially the same thing as for a PROCEDURE,
with the addition that a FUNCTION has a return type and a RETURN
with the addition that a FUNCTION has a return type and a RETURN
statement, but no OUT or INOUT parameters.
statement, but no OUT or INOUT parameters.
...
@@ -189,7 +189,7 @@
...
@@ -189,7 +189,7 @@
additional requirement. They will be called in expressions with the same
additional requirement. They will be called in expressions with the same
syntax as UDFs, so UDFs and stored FUNCTIONs share the namespace. Thus,
syntax as UDFs, so UDFs and stored FUNCTIONs share the namespace. Thus,
we must make sure that we do not have UDFs and FUNCTIONs with the same
we must make sure that we do not have UDFs and FUNCTIONs with the same
name (even if they are stor
d
ed in different places).
name (even if they are stored in different places).
This means that we can reparse the procedure as many time as we want.
This means that we can reparse the procedure as many time as we want.
The first time, the resulting Lex is used to store the procedure in
The first time, the resulting Lex is used to store the procedure in
...
@@ -225,7 +225,7 @@
...
@@ -225,7 +225,7 @@
sql_parse.cc:mysql_execute_command() then uses sp.cc:sp_find() to
sql_parse.cc:mysql_execute_command() then uses sp.cc:sp_find() to
get the sp_head for the procedure (which may have been read from the
get the sp_head for the procedure (which may have been read from the
database or fe
e
tched from the in-memory cache) and calls the sp_head's
database or fetched from the in-memory cache) and calls the sp_head's
method execute().
method execute().
Note: It's important that substatements called by the procedure do not
Note: It's important that substatements called by the procedure do not
do send_ok(). Fortunately, there is a flag in THD->net to disable
do send_ok(). Fortunately, there is a flag in THD->net to disable
...
@@ -545,7 +545,7 @@
...
@@ -545,7 +545,7 @@
Cons: Uses more memory, each SP read from table once per thread.
Cons: Uses more memory, each SP read from table once per thread.
Unfortunately, we cannot use alternative 1 for the time being, as most
Unfortunately, we cannot use alternative 1 for the time being, as most
of the datastructures to be cached (lex and items) are not reentrant
of the data
structures to be cached (lex and items) are not reentrant
and thread-safe. (Things are modifed at execution, we have THD pointers
and thread-safe. (Things are modifed at execution, we have THD pointers
stored everywhere, etc.)
stored everywhere, etc.)
This leaves us with alternative 2, one cache per thread; or actually
This leaves us with alternative 2, one cache per thread; or actually
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment