From d261072f7cdb44869ab8de39fd7a67f0c5122ab5 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 24 Aug 2004 14:44:15 +0400 Subject: [PATCH] Fix to compile with msvc: converted static const int Item_arena::* to enum members, undefine ERROR include/config-win.h: Undefine ERROR #defined by WINGDI sql/sql_class.cc: Fix to compile with msvc: converted static const int Item_arena::* to enum members sql/sql_class.h: Fix to compile with msvc: converted static const int Item_arena::* to enum members sql/sql_prepare.cc: Fix to compile with msvc: converted static const int Item_arena::* to enum members --- include/config-win.h | 5 +++++ sql/sql_class.cc | 6 +++--- sql/sql_class.h | 12 ++++++++---- sql/sql_prepare.cc | 18 +++++++++--------- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/include/config-win.h b/include/config-win.h index 91697c985d1..96a155633eb 100644 --- a/include/config-win.h +++ b/include/config-win.h @@ -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 diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 23fef44c964..ff7dc805119 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -1303,7 +1303,7 @@ int select_dumpvar::prepare(List &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); diff --git a/sql/sql_class.h b/sql/sql_class.h index 83fdb4c7d76..713609b3d32 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -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) { diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 850d41a030b..94b6ab103da 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -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); }