summaryrefslogtreecommitdiff
path: root/sql/sp_pcontext.h
diff options
context:
space:
mode:
authorunknown <pem@mysql.com>2005-11-17 11:11:48 +0100
committerunknown <pem@mysql.com>2005-11-17 11:11:48 +0100
commit91ab707678870966b9410cd3bdd783eb2a7c19e4 (patch)
tree56f597a525587468da328317b4cb9b936d5a2d3f /sql/sp_pcontext.h
parent14637f97cdd7ff4a7d60c09052e2e280ee57c957 (diff)
downloadmariadb-git-91ab707678870966b9410cd3bdd783eb2a7c19e4.tar.gz
Background:
Since long, the compiled code of stored routines has been printed in the trace file when starting mysqld with the "--debug" flag. (At creation time only, and only in debug builds of course.) This has been helpful when debugging stored procedure execution, but it's a bit awkward to use. Also, the printing of some of the instructions is a bit terse, in particular for sp_instr_stmt where only the command code was printed. This improves the printout of several of the instructions, and adds the debugging- only commands "show procedure code <name>" and "show function code <name>". (In non-debug builds they are not available.) sql/lex.h: New symbol for debug-only command (e.g. show procedure code). sql/sp_head.cc: Fixed some minor debug-mode bugs in show_create_*(). New method for debugging: sp_head::show_routine_code() - returns the "assembly code" for a stored routine as a result set. Improved the print() methods for many sp_instr* classes, particularly for sp_instr_stmt where the query string is printed as well (up to a max length, just to give a hint of which statement it is). Also print the names of variables and cursors in some instruction. sql/sp_head.h: New debugging-only method in sp_head: show_routine_code(). Added offset member to sp_instr_cpush for improved debug printing. sql/sp_pcontext.cc: Moved find_pvar(uint i) method from sp_pcontext.h, and made it work for all frames, not just the first one. (For debugging purposes) Added a similar find_cursor(uint i, ...) method, for debugging. sql/sp_pcontext.h: Moved find_pvar(uint i) method to sp_pcontext.cc. Added a similar find_cursor(uint i, ...) method, for debugging. sql/sql_lex.h: Added new sql_command codes for debugging. sql/sql_parse.cc: Added new commands for debugging, e.g. "show procedure code". sql/sql_yacc.yy: Added new commands for debugging purposes: "show procedure code ..." and "show function code ...". These are only enabled in debug builds, otherwise they result in a syntax error. (I.e. they don't exist)
Diffstat (limited to 'sql/sp_pcontext.h')
-rw-r--r--sql/sp_pcontext.h15
1 files changed, 5 insertions, 10 deletions
diff --git a/sql/sp_pcontext.h b/sql/sp_pcontext.h
index bd2259cb6fb..77e749fe3ad 100644
--- a/sql/sp_pcontext.h
+++ b/sql/sp_pcontext.h
@@ -172,16 +172,7 @@ class sp_pcontext : public Sql_alloc
// Find by index
sp_pvar_t *
- find_pvar(uint i)
- {
- sp_pvar_t *p;
-
- if (i < m_pvar.elements)
- get_dynamic(&m_pvar, (gptr)&p, i);
- else
- p= NULL;
- return p;
- }
+ find_pvar(uint i);
//
// Labels
@@ -261,6 +252,10 @@ class sp_pcontext : public Sql_alloc
my_bool
find_cursor(LEX_STRING *name, uint *poff, my_bool scoped=0);
+ /* Find by index (for debugging only) */
+ my_bool
+ find_cursor(uint i, LEX_STRING *n);
+
inline uint
max_cursors()
{