Commit 7189f0a5 authored by unknown's avatar unknown
Browse files

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

into  poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-main


sql/ha_ndbcluster.cc:
  Auto merged
parents b10b25fb 2e1616d6
Loading
Loading
Loading
Loading
+27 −7
Original line number Diff line number Diff line
@@ -4147,20 +4147,30 @@ int ha_ndbcluster::delete_table(const char *name)

int ha_ndbcluster::drop_table()
{
  THD *thd= current_thd;
  Ndb *ndb= get_ndb();
  NdbDictionary::Dictionary *dict= ndb->getDictionary();
  
  DBUG_ENTER("drop_table");
  DBUG_PRINT("enter", ("Deleting %s", m_tabname));
  
  if (dict->dropTable(m_tabname)) 
  while (dict->dropTable(m_tabname)) 
  {
    const NdbError err= dict->getNdbError();
    if (err.code == 709)
      ; // 709: No such table existed
    else 
    switch (err.status)
    {
      case NdbError::TemporaryError:
        if (!thd->killed)
          continue; // retry indefinitly
        break;
      default:
        break;
    }
    if (err.code != 709) // 709: No such table existed
      ERR_RETURN(dict->getNdbError());
    break;
  }

  release_metadata();
  DBUG_RETURN(0);
}
@@ -4564,14 +4574,24 @@ int ndbcluster_drop_database(const char *path)
  List_iterator_fast<char> it(drop_list);
  while ((tabname=it++))
  {
    if (dict->dropTable(tabname))
    while (dict->dropTable(tabname))
    {
      const NdbError err= dict->getNdbError();
      if (err.code != 709)
      switch (err.status)
      {
        case NdbError::TemporaryError:
          if (!thd->killed)
            continue; // retry indefinitly
          break;
        default:
          break;
      }
      if (err.code != 709) // 709: No such table existed
      {
        ERR_PRINT(err);
        ret= ndb_to_mysql_error(&err);
      }
      break;
    }
  }
  DBUG_RETURN(ret);