summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <pem@mysql.com>2005-11-22 16:01:04 +0100
committerunknown <pem@mysql.com>2005-11-22 16:01:04 +0100
commit0026b6f46e550ff8f8c874f55272d15f4a19f3ac (patch)
tree6656fabfa8d3c846cb6d30b36f91e9d1f5a142bc
parent899ca897c1f63ad43b624c60da7e564b7ccd9e54 (diff)
downloadmariadb-git-0026b6f46e550ff8f8c874f55272d15f4a19f3ac.tar.gz
Set type and default correctly for local SP variables during parsing.
sql/sql_yacc.yy: Set type and default correctly for local SP variables.
-rw-r--r--sql/sql_yacc.yy7
1 files changed, 4 insertions, 3 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 76cd19dd741..8c7bcc31689 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -1605,13 +1605,14 @@ sp_decl:
for (uint i = max-$2 ; i < max ; i++)
{
sp_instr_set *in;
+ uint off= ctx->pvar_context2index(i);
- ctx->set_type(i, type);
+ ctx->set_type(off, type);
if (! has_default)
it= new Item_null(); /* QQ Set to the type with null_value? */
in = new sp_instr_set(lex->sphead->instructions(),
ctx,
- ctx->pvar_context2index(i),
+ off,
it, type, lex,
(i == max - 1));
@@ -1620,7 +1621,7 @@ sp_decl:
freeing LEX.
*/
lex->sphead->add_instr(in);
- ctx->set_default(i, it);
+ ctx->set_default(off, it);
}
lex->sphead->restore_lex(YYTHD);
$$.vars= $2;