mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Change Item_arena::state to enum
This commit is contained in:
@@ -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)
|
|||||||
|
|
||||||
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()
|
|||||||
|
|
||||||
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:
|
|||||||
*/
|
*/
|
||||||
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:
|
|||||||
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,
|
|||||||
{
|
{
|
||||||
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,
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
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,
|
|||||||
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,
|
|||||||
/* 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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user