#include <sp_head.h>
Inheritance diagram for sp_instr_cpush:


Public Member Functions | |
| sp_instr_cpush (uint ip, sp_pcontext *ctx, LEX *lex, uint offset) | |
| virtual | ~sp_instr_cpush () |
| virtual int | execute (THD *thd, uint *nextp) |
| virtual void | print (String *str) |
| virtual void | cleanup_stmt () |
Private Member Functions | |
| sp_instr_cpush (const sp_instr_cpush &) | |
| void | operator= (sp_instr_cpush &) |
Private Attributes | |
| sp_lex_keeper | m_lex_keeper |
| uint | m_cursor |
Definition at line 963 of file sp_head.h.
| sp_instr_cpush::sp_instr_cpush | ( | const sp_instr_cpush & | ) | [private] |
| sp_instr_cpush::sp_instr_cpush | ( | uint | ip, | |
| sp_pcontext * | ctx, | |||
| LEX * | lex, | |||
| uint | offset | |||
| ) | [inline] |
| virtual sp_instr_cpush::~sp_instr_cpush | ( | ) | [inline, virtual] |
| virtual void sp_instr_cpush::cleanup_stmt | ( | ) | [inline, virtual] |
| int sp_instr_cpush::execute | ( | THD * | thd, | |
| uint * | nextp | |||
| ) | [virtual] |
Implements sp_instr.
Definition at line 2985 of file sp_head.cc.
References DBUG_ENTER, DBUG_RETURN, sp_instr::m_ip, and m_lex_keeper.
02986 { 02987 Query_arena backup_arena; 02988 DBUG_ENTER("sp_instr_cpush::execute"); 02989 02990 /* 02991 We should create cursors in the callers arena, as 02992 it could be (and usually is) used in several instructions. 02993 */ 02994 thd->set_n_backup_active_arena(thd->spcont->callers_arena, &backup_arena); 02995 02996 thd->spcont->push_cursor(&m_lex_keeper, this); 02997 02998 thd->restore_active_arena(thd->spcont->callers_arena, &backup_arena); 02999 03000 *nextp= m_ip+1; 03001 03002 DBUG_RETURN(0); 03003 }
| void sp_instr_cpush::operator= | ( | sp_instr_cpush & | ) | [private] |
| void sp_instr_cpush::print | ( | String * | str | ) | [virtual] |
Implements sp_instr.
Definition at line 3007 of file sp_head.cc.
References sp_pcontext::find_cursor(), sp_instr::m_ctx, m_cursor, n, String::qs_append(), String::reserve(), SP_INSTR_UINT_MAXLEN, and STRING_WITH_LEN.
03008 { 03009 LEX_STRING n; 03010 my_bool found= m_ctx->find_cursor(m_cursor, &n); 03011 /* cpush name@offset */ 03012 uint rsrv= SP_INSTR_UINT_MAXLEN+7; 03013 03014 if (found) 03015 rsrv+= n.length; 03016 if (str->reserve(rsrv)) 03017 return; 03018 str->qs_append(STRING_WITH_LEN("cpush ")); 03019 if (found) 03020 { 03021 str->qs_append(n.str, n.length); 03022 str->qs_append('@'); 03023 } 03024 str->qs_append(m_cursor); 03025 }
Here is the call graph for this function:

uint sp_instr_cpush::m_cursor [private] |
sp_lex_keeper sp_instr_cpush::m_lex_keeper [private] |
1.4.7

