Commit d7dd19aa authored by unknown's avatar unknown
Browse files

Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1

into mysql.com:/dbdata/psergey/mysql-4.1-root-root

parents 2ba96c63 d261072f
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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
+3 −3
Original line number Diff line number Diff line
@@ -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);
+8 −4
Original line number Diff line number Diff line
@@ -427,8 +427,12 @@ class Item_arena
  */
  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 @@ class Item_arena
  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)
  {
+9 −9
Original line number Diff line number Diff line
@@ -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);
  }