summaryrefslogtreecommitdiff
path: root/sql/item_func.cc
diff options
context:
space:
mode:
authordlenev@mysql.com <>2006-04-19 19:35:32 +0400
committerdlenev@mysql.com <>2006-04-19 19:35:32 +0400
commit19e558a09dbb2b90a32b2a7813f01a5121db4ea0 (patch)
tree59b8b4237d043f129b7a6a5124a426bc62f962b9 /sql/item_func.cc
parentb128fa10229faee41991cdd79c9b851acc91ddd6 (diff)
parent868ffcca860f7447ee3f31e1ee4d124029f69376 (diff)
downloadmariadb-git-19e558a09dbb2b90a32b2a7813f01a5121db4ea0.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into mysql.com:/home/dlenev/mysql-5.0-bg16021
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r--sql/item_func.cc22
1 files changed, 14 insertions, 8 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 4bdb62c6e7a..bd59a750bfc 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -4744,7 +4744,9 @@ Item_func_sp::sp_result_field(void) const
share->table_cache_key = empty_name;
share->table_name = empty_name;
}
- field= m_sp->create_result_field(max_length, name, dummy_table);
+ if (!(field= m_sp->create_result_field(max_length, name, dummy_table)))
+ my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0));
+
DBUG_RETURN(field);
}
@@ -4772,8 +4774,9 @@ Item_func_sp::execute(Field **flp)
{
if (!(*flp= f= sp_result_field()))
{
- my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0));
- return 0;
+ /* Error set by sp_result_field() */
+ null_value= 1;
+ return TRUE;
}
f->move_field((f->pack_length() > sizeof(result_buf)) ?
@@ -4928,16 +4931,19 @@ longlong Item_func_found_rows::val_int()
Field *
Item_func_sp::tmp_table_field(TABLE *t_arg)
{
- Field *res= 0;
+ Field *field= 0;
DBUG_ENTER("Item_func_sp::tmp_table_field");
if (m_sp)
- res= m_sp->create_result_field(max_length, (const char*) name, t_arg);
+ field= m_sp->create_result_field(max_length, (const char*) name, t_arg);
- if (!res)
- res= Item_func::tmp_table_field(t_arg);
+ if (!field)
+ field= Item_func::tmp_table_field(t_arg);
- DBUG_RETURN(res);
+ if (!field)
+ my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0));
+
+ DBUG_RETURN(field);
}