458
456
MEM_ROOT *mem_root; // Pointer to current memroot
459
bool is_backup_arena; /* True if this arena is used for backup. */
462
The states relfects three diffrent life cycles for three
463
different types of statements:
464
Prepared statement: INITIALIZED -> PREPARED -> EXECUTED.
465
Stored procedure: INITIALIZED_FOR_SP -> EXECUTED.
466
Other statements: CONVENTIONAL_EXECUTION never changes.
471
CONVENTIONAL_EXECUTION= 3, EXECUTED= 4, ERROR= -1
476
Query_arena(MEM_ROOT *mem_root_arg, enum enum_state state_arg) :
477
free_list(0), mem_root(mem_root_arg), state(state_arg)
478
{ INIT_ARENA_DBUG_INFO; }
458
Query_arena(MEM_ROOT *mem_root_arg) :
459
free_list(0), mem_root(mem_root_arg)
480
462
This constructor is used only when Query_arena is created as
481
463
backup storage for another instance of Query_arena.
483
Query_arena() { INIT_ARENA_DBUG_INFO; }
485
467
virtual ~Query_arena() {};
487
inline bool is_conventional() const
488
{ assert(state == CONVENTIONAL_EXECUTION); return state == CONVENTIONAL_EXECUTION; }
490
469
inline void* alloc(size_t size) { return alloc_root(mem_root,size); }
491
470
inline void* calloc(size_t size)
598
577
/* This constructor is called for backup statements */
601
Statement(LEX *lex_arg, MEM_ROOT *mem_root_arg,
602
enum enum_state state_arg, ulong id_arg);
580
Statement(LEX *lex_arg, MEM_ROOT *mem_root_arg, ulong id_arg);
605
/* Assign execution context (note: not all members) of given stmt to self */
606
void set_statement(Statement *stmt);
609
584
struct st_savepoint {