Commit 5d3dc82d authored by sergefp@mysql.com's avatar sergefp@mysql.com

Change Item_arena::state to enum

parent 30e7217d
...@@ -1323,7 +1323,7 @@ void select_dumpvar::cleanup() ...@@ -1323,7 +1323,7 @@ void select_dumpvar::cleanup()
Item_arena::Item_arena(THD* thd) Item_arena::Item_arena(THD* thd)
:free_list(0), :free_list(0),
state((int)INITIALIZED) state(INITIALIZED)
{ {
init_sql_alloc(&mem_root, init_sql_alloc(&mem_root,
thd->variables.query_alloc_block_size, thd->variables.query_alloc_block_size,
...@@ -1335,7 +1335,7 @@ Item_arena::Item_arena(THD* thd) ...@@ -1335,7 +1335,7 @@ Item_arena::Item_arena(THD* thd)
Item_arena::Item_arena() Item_arena::Item_arena()
:free_list(0), :free_list(0),
state((int)CONVENTIONAL_EXECUTION) state(CONVENTIONAL_EXECUTION)
{ {
clear_alloc_root(&mem_root); clear_alloc_root(&mem_root);
} }
...@@ -1343,7 +1343,7 @@ Item_arena::Item_arena() ...@@ -1343,7 +1343,7 @@ Item_arena::Item_arena()
Item_arena::Item_arena(bool init_mem_root) Item_arena::Item_arena(bool init_mem_root)
:free_list(0), :free_list(0),
state((int)INITIALIZED) state(INITIALIZED)
{ {
if (init_mem_root) if (init_mem_root)
clear_alloc_root(&mem_root); clear_alloc_root(&mem_root);
......
...@@ -427,13 +427,13 @@ public: ...@@ -427,13 +427,13 @@ public:
*/ */
Item *free_list; Item *free_list;
MEM_ROOT mem_root; MEM_ROOT mem_root;
enum enum enum_state
{ {
INITIALIZED= 0, PREPARED= 1, EXECUTED= 3, CONVENTIONAL_EXECUTION= 2, INITIALIZED= 0, PREPARED= 1, EXECUTED= 3, CONVENTIONAL_EXECUTION= 2,
ERROR= -1 ERROR= -1
}; };
int state; enum_state state;
/* We build without RTTI, so dynamic_cast can't be used. */ /* We build without RTTI, so dynamic_cast can't be used. */
enum Type enum Type
...@@ -447,8 +447,8 @@ public: ...@@ -447,8 +447,8 @@ public:
virtual Type type() const; virtual Type type() const;
virtual ~Item_arena(); virtual ~Item_arena();
inline bool is_stmt_prepare() const { return state < (int)PREPARED; } inline bool is_stmt_prepare() const { return (int)state < (int)PREPARED; }
inline bool is_first_stmt_execute() const { return state == (int)PREPARED; } inline bool is_first_stmt_execute() const { return state == PREPARED; }
inline gptr alloc(unsigned int size) { return alloc_root(&mem_root,size); } inline gptr alloc(unsigned int size) { return alloc_root(&mem_root,size); }
inline gptr calloc(unsigned int size) inline gptr calloc(unsigned int size)
{ {
......
...@@ -132,7 +132,7 @@ find_prepared_statement(THD *thd, ulong id, const char *where, ...@@ -132,7 +132,7 @@ find_prepared_statement(THD *thd, ulong id, const char *where,
{ {
Statement *stmt= thd->stmt_map.find(id); Statement *stmt= thd->stmt_map.find(id);
if (stmt == 0 || stmt->type() != (int)Item_arena::PREPARED_STATEMENT) if (stmt == 0 || stmt->type() != Item_arena::PREPARED_STATEMENT)
{ {
char llbuf[22]; char llbuf[22];
my_error(ER_UNKNOWN_STMT_HANDLER, MYF(0), 22, llstr(id, llbuf), where); my_error(ER_UNKNOWN_STMT_HANDLER, MYF(0), 22, llstr(id, llbuf), where);
...@@ -1619,7 +1619,7 @@ int mysql_stmt_prepare(THD *thd, char *packet, uint packet_length, ...@@ -1619,7 +1619,7 @@ int mysql_stmt_prepare(THD *thd, char *packet, uint packet_length,
{ {
sl->prep_where= sl->where; sl->prep_where= sl->where;
} }
stmt->state= (int)Prepared_statement::PREPARED; stmt->state= Item_arena::PREPARED;
} }
DBUG_RETURN(!stmt); DBUG_RETURN(!stmt);
...@@ -1736,7 +1736,7 @@ void mysql_stmt_execute(THD *thd, char *packet, uint packet_length) ...@@ -1736,7 +1736,7 @@ void mysql_stmt_execute(THD *thd, char *packet, uint packet_length)
DBUG_PRINT("exec_query:", ("%s", stmt->query)); DBUG_PRINT("exec_query:", ("%s", stmt->query));
/* Check if we got an error when sending long data */ /* Check if we got an error when sending long data */
if (stmt->state == (int)Item_arena::ERROR) if (stmt->state == Item_arena::ERROR)
{ {
send_error(thd, stmt->last_errno, stmt->last_error); send_error(thd, stmt->last_errno, stmt->last_error);
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
...@@ -1853,7 +1853,7 @@ static void execute_stmt(THD *thd, Prepared_statement *stmt, ...@@ -1853,7 +1853,7 @@ static void execute_stmt(THD *thd, Prepared_statement *stmt,
transformations of the query tree (i.e. negations elimination). transformations of the query tree (i.e. negations elimination).
This should be done permanently on the parse tree of this statement. This should be done permanently on the parse tree of this statement.
*/ */
if (stmt->state == (int)Item_arena::PREPARED) if (stmt->state == Item_arena::PREPARED)
thd->current_arena= stmt; thd->current_arena= stmt;
if (!(specialflag & SPECIAL_NO_PRIOR)) if (!(specialflag & SPECIAL_NO_PRIOR))
...@@ -1866,10 +1866,10 @@ static void execute_stmt(THD *thd, Prepared_statement *stmt, ...@@ -1866,10 +1866,10 @@ static void execute_stmt(THD *thd, Prepared_statement *stmt,
/* Free Items that were created during this execution of the PS. */ /* Free Items that were created during this execution of the PS. */
free_items(thd->free_list); free_items(thd->free_list);
thd->free_list= 0; thd->free_list= 0;
if (stmt->state == (int)Item_arena::PREPARED) if (stmt->state == Item_arena::PREPARED)
{ {
thd->current_arena= thd; thd->current_arena= thd;
stmt->state= (int)Item_arena::EXECUTED; stmt->state= Item_arena::EXECUTED;
} }
cleanup_items(stmt->free_list); cleanup_items(stmt->free_list);
reset_stmt_params(stmt); reset_stmt_params(stmt);
...@@ -1908,7 +1908,7 @@ void mysql_stmt_reset(THD *thd, char *packet) ...@@ -1908,7 +1908,7 @@ void mysql_stmt_reset(THD *thd, char *packet)
SEND_ERROR))) SEND_ERROR)))
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
stmt->state= (int)Item_arena::PREPARED; stmt->state= Item_arena::PREPARED;
/* /*
Clear parameters from data which could be set by Clear parameters from data which could be set by
...@@ -1996,7 +1996,7 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length) ...@@ -1996,7 +1996,7 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length)
if (param_number >= stmt->param_count) if (param_number >= stmt->param_count)
{ {
/* Error will be sent in execute call */ /* Error will be sent in execute call */
stmt->state= (int)Item_arena::ERROR; stmt->state= Item_arena::ERROR;
stmt->last_errno= ER_WRONG_ARGUMENTS; stmt->last_errno= ER_WRONG_ARGUMENTS;
sprintf(stmt->last_error, ER(ER_WRONG_ARGUMENTS), sprintf(stmt->last_error, ER(ER_WRONG_ARGUMENTS),
"mysql_stmt_send_long_data"); "mysql_stmt_send_long_data");
...@@ -2012,7 +2012,7 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length) ...@@ -2012,7 +2012,7 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length)
if (param->set_longdata(thd->extra_data, thd->extra_length)) if (param->set_longdata(thd->extra_data, thd->extra_length))
#endif #endif
{ {
stmt->state= (int)Item_arena::ERROR; stmt->state= Item_arena::ERROR;
stmt->last_errno= ER_OUTOFMEMORY; stmt->last_errno= ER_OUTOFMEMORY;
sprintf(stmt->last_error, ER(ER_OUTOFMEMORY), 0); sprintf(stmt->last_error, ER(ER_OUTOFMEMORY), 0);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment