Below is the list of changes that have just been committed into a local
5.0 repository of bell. When bell does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.1986 05/06/29 11:50:29 bell@stripped +2 -0
fixed SP parameter execution
sql/sql_union.cc
1.122 05/06/29 11:49:35 bell@stripped +1 -0
additional assert
sql/sp_head.cc
1.151 05/06/29 11:49:35 bell@stripped +8 -8
execute parameters in statement mem_root
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: bell
# Host: sanja.is.com.ua
# Root: /home/bell/mysql/bk/work-bug7-5.0
--- 1.121/sql/sql_union.cc Fri Jun 24 21:48:07 2005
+++ 1.122/sql/sql_union.cc Wed Jun 29 11:49:35 2005
@@ -646,6 +646,7 @@
if (join)
{
+ DBUG_ASSERT((st_select_lex*)join->select_lex == this);
error|= join->destroy();
delete join;
join= 0;
--- 1.150/sql/sp_head.cc Tue Jun 28 21:49:07 2005
+++ 1.151/sql/sp_head.cc Wed Jun 29 11:49:35 2005
@@ -735,11 +735,10 @@
init_alloc_root(&call_mem_root, MEM_ROOT_BLOCK_SIZE, 0);
- thd->set_n_backup_item_arena(&call_arena, &backup_arena);
// QQ Should have some error checking here? (types, etc...)
nctx= new sp_rcontext(csize, hmax, cmax);
- nctx->callers_mem_root= backup_arena.mem_root;
+ nctx->callers_mem_root= thd->mem_root;
for (i= 0 ; i < argcount ; i++)
{
sp_pvar_t *pvar = m_pcont->find_pvar(i);
@@ -765,6 +764,9 @@
}
}
thd->spcont= nctx;
+ thd->set_n_backup_item_arena(&call_arena, &backup_arena);
+ /* mem_root was moved to backup_arena */
+ DBUG_ASSERT(nctx->callers_mem_root == backup_arena.mem_root);
ret= execute(thd);
@@ -834,7 +836,6 @@
}
init_alloc_root(&call_mem_root, MEM_ROOT_BLOCK_SIZE, 0);
- thd->set_n_backup_item_arena(&call_arena, &backup_arena);
if (csize > 0 || hmax > 0 || cmax > 0)
{
@@ -899,12 +900,11 @@
}
if (! ret)
+ {
+ thd->set_n_backup_item_arena(&call_arena, &backup_arena);
ret= execute(thd);
-
- // Partially restore context now.
- // We still need the call mem root and free list for processing
- // of out parameters.
- thd->restore_backup_item_arena(&call_arena, &backup_arena);
+ thd->restore_backup_item_arena(&call_arena, &backup_arena);
+ }
if (!ret && csize > 0)
{
| Thread |
|---|
| • bk commit into 5.0 tree (bell:1.1986) | sanja | 29 Jun |