Commit d970586f authored by sergefp@mysql.com's avatar sergefp@mysql.com

Fix to compile with msvc: converted static const int Item_arena::* to enum members, undefine ERROR

parent a309f761
......@@ -150,6 +150,11 @@ typedef uint rf_SetTimer;
#define HAVE_NAMED_PIPE /* We can only create pipes on NT */
#endif
/* ERROR is defined in wingdi.h */
#ifdef ERROR
#undef ERROR
#endif
/* We need to close files to break connections on shutdown */
#ifndef SIGNAL_WITH_VIO_CLOSE
#define SIGNAL_WITH_VIO_CLOSE
......
......@@ -1303,7 +1303,7 @@ int select_dumpvar::prepare(List<Item> &list, SELECT_LEX_UNIT *u)
Item_arena::Item_arena(THD* thd)
:free_list(0),
state(INITIALIZED)
state((int)INITIALIZED)
{
init_sql_alloc(&mem_root,
thd->variables.query_alloc_block_size,
......@@ -1315,7 +1315,7 @@ Item_arena::Item_arena(THD* thd)
Item_arena::Item_arena()
:free_list(0),
state(CONVENTIONAL_EXECUTION)
state((int)CONVENTIONAL_EXECUTION)
{
clear_alloc_root(&mem_root);
}
......@@ -1323,7 +1323,7 @@ Item_arena::Item_arena()
Item_arena::Item_arena(bool init_mem_root)
:free_list(0),
state(INITIALIZED)
state((int)INITIALIZED)
{
if (init_mem_root)
clear_alloc_root(&mem_root);
......
......@@ -427,8 +427,12 @@ public:
*/
Item *free_list;
MEM_ROOT mem_root;
static const int INITIALIZED= 0, PREPARED= 1, EXECUTED= 3,
CONVENTIONAL_EXECUTION= 2, ERROR= -1;
enum
{
INITIALIZED= 0, PREPARED= 1, EXECUTED= 3, CONVENTIONAL_EXECUTION= 2,
ERROR= -1
};
int state;
/* We build without RTTI, so dynamic_cast can't be used. */
......@@ -443,8 +447,8 @@ public:
virtual Type type() const;
virtual ~Item_arena();
inline bool is_stmt_prepare() const { return state < PREPARED; }
inline bool is_first_stmt_execute() const { return state == PREPARED; }
inline bool is_stmt_prepare() const { return state < (int)PREPARED; }
inline bool is_first_stmt_execute() const { return state == (int)PREPARED; }
inline gptr alloc(unsigned int size) { return alloc_root(&mem_root,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);
if (stmt == 0 || stmt->type() != Item_arena::PREPARED_STATEMENT)
if (stmt == 0 || stmt->type() != (int)Item_arena::PREPARED_STATEMENT)
{
char llbuf[22];
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;
}
stmt->state= Prepared_statement::PREPARED;
stmt->state= (int)Prepared_statement::PREPARED;
}
DBUG_RETURN(!stmt);
......@@ -1733,7 +1733,7 @@ void mysql_stmt_execute(THD *thd, char *packet, uint packet_length)
DBUG_PRINT("exec_query:", ("%s", stmt->query));
/* Check if we got an error when sending long data */
if (stmt->state == Item_arena::ERROR)
if (stmt->state == (int)Item_arena::ERROR)
{
send_error(thd, stmt->last_errno, stmt->last_error);
DBUG_VOID_RETURN;
......@@ -1850,7 +1850,7 @@ static void execute_stmt(THD *thd, Prepared_statement *stmt,
transformations of the query tree (i.e. negations elimination).
This should be done permanently on the parse tree of this statement.
*/
if (stmt->state == Item_arena::PREPARED)
if (stmt->state == (int)Item_arena::PREPARED)
thd->current_arena= stmt;
if (!(specialflag & SPECIAL_NO_PRIOR))
......@@ -1863,10 +1863,10 @@ static void execute_stmt(THD *thd, Prepared_statement *stmt,
/* Free Items that were created during this execution of the PS. */
free_items(thd->free_list);
thd->free_list= 0;
if (stmt->state == Item_arena::PREPARED)
if (stmt->state == (int)Item_arena::PREPARED)
{
thd->current_arena= thd;
stmt->state= Item_arena::EXECUTED;
stmt->state= (int)Item_arena::EXECUTED;
}
cleanup_items(stmt->free_list);
reset_stmt_params(stmt);
......@@ -1905,7 +1905,7 @@ void mysql_stmt_reset(THD *thd, char *packet)
SEND_ERROR)))
DBUG_VOID_RETURN;
stmt->state= Item_arena::PREPARED;
stmt->state= (int)Item_arena::PREPARED;
/*
Clear parameters from data which could be set by
......@@ -1993,7 +1993,7 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length)
if (param_number >= stmt->param_count)
{
/* Error will be sent in execute call */
stmt->state= Item_arena::ERROR;
stmt->state= (int)Item_arena::ERROR;
stmt->last_errno= ER_WRONG_ARGUMENTS;
sprintf(stmt->last_error, ER(ER_WRONG_ARGUMENTS),
"mysql_stmt_send_long_data");
......@@ -2009,7 +2009,7 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length)
if (param->set_longdata(thd->extra_data, thd->extra_length))
#endif
{
stmt->state= Item_arena::ERROR;
stmt->state= (int)Item_arena::ERROR;
stmt->last_errno= ER_OUTOFMEMORY;
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