summaryrefslogtreecommitdiff
path: root/sql/sp_head.cc
diff options
context:
space:
mode:
authorJoerg Bruehe <joerg@mysql.com>2009-05-08 21:04:07 +0200
committerJoerg Bruehe <joerg@mysql.com>2009-05-08 21:04:07 +0200
commitd2fe2a71dafc7d2fcdfb29970f37c5dbd6681df9 (patch)
treebc4bd9206c7d8ee035e07b31775ceb949164ba93 /sql/sp_head.cc
parent1b4cfc363231c8ef58410d65ffe2a3e60be35453 (diff)
parentc715ff413a0a7ed5059c4001a166ad163a48cb57 (diff)
downloadmariadb-git-d2fe2a71dafc7d2fcdfb29970f37c5dbd6681df9.tar.gz
Merge main 5.1 into 5.1-build
165 changesets with 23 conflicts: Text conflict in mysql-test/r/lock_multi.result Text conflict in mysql-test/t/lock_multi.test Text conflict in mysql-test/t/mysqldump.test Text conflict in sql/item_strfunc.cc Text conflict in sql/log.cc Text conflict in sql/log_event.cc Text conflict in sql/parse_file.cc Text conflict in sql/slave.cc Text conflict in sql/sp.cc Text conflict in sql/sp_head.cc Text conflict in sql/sql_acl.cc Text conflict in sql/sql_base.cc Text conflict in sql/sql_class.cc Text conflict in sql/sql_crypt.cc Text conflict in sql/sql_db.cc Text conflict in sql/sql_lex.cc Text conflict in sql/sql_parse.cc Text conflict in sql/sql_select.cc Text conflict in sql/sql_table.cc Text conflict in sql/sql_view.cc Text conflict in storage/innobase/handler/ha_innodb.cc Text conflict in storage/myisam/mi_packrec.c Text conflict in tests/mysql_client_test.c Updates to Innobase, taken from main 5.1: bzr: ERROR: Some change isn't sane: File mysql-test/r/innodb-semi-consistent.result is owned by Innobase and should not be updated. File mysql-test/t/innodb-semi-consistent.test is owned by Innobase and should not be updated. File storage/innobase/handler/ha_innodb.cc is owned by Innobase and should not be updated. File storage/innobase/ibuf/ibuf0ibuf.c is owned by Innobase and should not be updated. File storage/innobase/include/row0mysql.h is owned by Innobase and should not be updated. File storage/innobase/include/srv0srv.h is owned by Innobase and should not be updated. File storage/innobase/include/trx0trx.h is owned by Innobase and should not be updated. File storage/innobase/include/trx0trx.ic is owned by Innobase and should not be updated. File storage/innobase/lock/lock0lock.c is owned by Innobase and should not be updated. File storage/innobase/page/page0cur.c is owned by Innobase and should not be updated. File storage/innobase/row/row0mysql.c is owned by Innobase and should not be updated. File storage/innobase/row/row0sel.c is owned by Innobase and should not be updated. File storage/innobase/srv/srv0srv.c is owned by Innobase and should not be updated. File storage/innobase/trx/trx0trx.c is owned by Innobase and should not be updated. (Set env var 'ALLOW_UPDATE_INNOBASE_OWNED' to override.)
Diffstat (limited to 'sql/sp_head.cc')
-rw-r--r--sql/sp_head.cc28
1 files changed, 15 insertions, 13 deletions
diff --git a/sql/sp_head.cc b/sql/sp_head.cc
index fcf51aac1b5..1dba8a45926 100644
--- a/sql/sp_head.cc
+++ b/sql/sp_head.cc
@@ -207,6 +207,7 @@ sp_get_flags_for_command(LEX *lex)
case SQLCOM_SHOW_STATUS_PROC:
case SQLCOM_SHOW_STORAGE_ENGINES:
case SQLCOM_SHOW_TABLES:
+ case SQLCOM_SHOW_TABLE_STATUS:
case SQLCOM_SHOW_VARIABLES:
case SQLCOM_SHOW_WARNS:
case SQLCOM_REPAIR:
@@ -2132,17 +2133,16 @@ sp_head::restore_lex(THD *thd)
/**
Put the instruction on the backpatch list, associated with the label.
*/
-void
+int
sp_head::push_backpatch(sp_instr *i, sp_label_t *lab)
{
bp_t *bp= (bp_t *)sql_alloc(sizeof(bp_t));
- if (bp)
- {
- bp->lab= lab;
- bp->instr= i;
- (void)m_backpatch.push_front(bp);
- }
+ if (!bp)
+ return 1;
+ bp->lab= lab;
+ bp->instr= i;
+ return m_backpatch.push_front(bp);
}
/**
@@ -2217,7 +2217,7 @@ sp_head::fill_field_definition(THD *thd, LEX *lex,
}
-void
+int
sp_head::new_cont_backpatch(sp_instr_opt_meta *i)
{
m_cont_level+= 1;
@@ -2225,15 +2225,17 @@ sp_head::new_cont_backpatch(sp_instr_opt_meta *i)
{
/* Use the cont. destination slot to store the level */
i->m_cont_dest= m_cont_level;
- (void)m_cont_backpatch.push_front(i);
+ if (m_cont_backpatch.push_front(i))
+ return 1;
}
+ return 0;
}
-void
+int
sp_head::add_cont_backpatch(sp_instr_opt_meta *i)
{
i->m_cont_dest= m_cont_level;
- (void)m_cont_backpatch.push_front(i);
+ return m_cont_backpatch.push_front(i);
}
void
@@ -2469,7 +2471,7 @@ sp_head::show_create_routine(THD *thd, int type)
@param instr Instruction
*/
-void sp_head::add_instr(sp_instr *instr)
+int sp_head::add_instr(sp_instr *instr)
{
instr->free_list= m_thd->free_list;
m_thd->free_list= 0;
@@ -2480,7 +2482,7 @@ void sp_head::add_instr(sp_instr *instr)
entire stored procedure, as their life span is equal.
*/
instr->mem_root= &main_mem_root;
- insert_dynamic(&m_instr, (uchar*)&instr);
+ return insert_dynamic(&m_instr, (uchar*)&instr);
}