Commit b3d7c316 authored by unknown's avatar unknown
Browse files

Merge pnousiainen@bk-internal.mysql.com:/home/bk/mysql-5.1-new

into  mysql.com:/space/pekka/ndb/version/my51


mysql-test/t/disabled.def:
  Auto merged
parents 9dadc39f 73765e53
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -41,6 +41,6 @@ rpl_row_basic_3innodb : Bug #17385
rpl_sp                  : Bug#16456
rpl_until               : Unstable test case, bug#15886
sp-goto                 : GOTO is currently is disabled - will be fixed in the future
rpl_ndb_blob            : Bug #17505
#rpl_ndb_blob            : Bug #17505
rpl_ndb_blob2           : Bug #17505
rpl_ndb_log             : results are not deterministic
+2 −2
Original line number Diff line number Diff line
@@ -5525,7 +5525,7 @@ int ndbcluster_find_all_files(THD *thd)
    {
      NDBDICT::List::Element& elmt= list.elements[i];
      int do_handle_table= 0;
      if (IS_TMP_PREFIX(elmt.name))
      if (IS_TMP_PREFIX(elmt.name) || IS_NDB_BLOB_PREFIX(elmt.name))
      {
        DBUG_PRINT("info", ("Skipping %s.%s in NDB", elmt.database, elmt.name));
        continue;
@@ -5662,7 +5662,7 @@ int ndbcluster_find_files(THD *thd,const char *db,const char *path,
  for (i= 0 ; i < list.count ; i++)
  {
    NDBDICT::List::Element& elmt= list.elements[i];
    if (IS_TMP_PREFIX(elmt.name))
    if (IS_TMP_PREFIX(elmt.name) || IS_NDB_BLOB_PREFIX(elmt.name))
    {
      DBUG_PRINT("info", ("Skipping %s.%s in NDB", elmt.database, elmt.name));
      continue;
+0 −17
Original line number Diff line number Diff line
@@ -2082,23 +2082,6 @@ ndbcluster_create_event_ops(NDB_SHARE *share, const NDBTAB *ndbtab,
    if (share->flags & NSF_BLOB_FLAG)
      op->mergeEvents(true); // currently not inherited from event

    if (share->flags & NSF_BLOB_FLAG)
    {
      /*
       * Given servers S1 S2, following results in out-of-date
       * event->m_tableImpl and column->m_blobTable.
       *
       * S1: create table t1(a int primary key);
       * S2: drop table t1;
       * S1: create table t2(a int primary key, b blob);
       * S1: alter table t2 add x int;
       * S1: alter table t2 drop x;
       *
       * TODO fix at right place before we get here
       */
      ndb->getDictionary()->fix_blob_events(ndbtab, event_name);
    }

    int n_columns= ndbtab->getNoOfColumns();
    int n_fields= table ? table->s->fields : 0; // XXX ???
    for (int j= 0; j < n_columns; j++)
+0 −1
Original line number Diff line number Diff line
@@ -1783,7 +1783,6 @@ public:
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
    const Table * getTable(const char * name, void **data) const;
    void set_local_table_data_size(unsigned sz);
    void fix_blob_events(const Table* table, const char* ev_name);
#endif
  };
};
+14 −2
Original line number Diff line number Diff line
@@ -159,11 +159,16 @@ GlobalDictCache::get(const char * name)
    switch(ver->m_status){
    case OK:
      ver->m_refCount++;
      DBUG_PRINT("info", ("Table OK version=%x.%x refCount=%u",
                           ver->m_impl->m_version & 0xFFFFFF,
                           ver->m_impl->m_version >> 24,
                           ver->m_refCount));
      DBUG_RETURN(ver->m_impl);
    case DROPPED:
      retreive = true; // Break loop
      break;
    case RETREIVING:
      DBUG_PRINT("info", ("Wait for retrieving thread"));
      NdbCondition_WaitTimeout(m_waitForTableCondition, m_mutex, waitTime);
      continue;
    }
@@ -178,6 +183,7 @@ GlobalDictCache::get(const char * name)
  tmp.m_status = RETREIVING;
  tmp.m_refCount = 1; // The one retreiving it
  versions->push_back(tmp);
  DBUG_PRINT("info", ("No table found"));
  DBUG_RETURN(0);
}

@@ -185,8 +191,11 @@ NdbTableImpl *
GlobalDictCache::put(const char * name, NdbTableImpl * tab)
{
  DBUG_ENTER("GlobalDictCache::put");
  DBUG_PRINT("enter", ("name: %s, internal_name: %s",
                       name, tab ? tab->m_internalName.c_str() : "tab NULL"));
  DBUG_PRINT("enter", ("name: %s, internal_name: %s version: %x.%x",
                       name,
                       tab ? tab->m_internalName.c_str() : "tab NULL",
                       tab ? tab->m_version & 0xFFFFFF : 0,
                       tab ? tab->m_version >> 24 : 0));

  const Uint32 len = strlen(name);
  Vector<TableVersion> * vers = m_tableHash.getData(name, len);
@@ -218,12 +227,14 @@ GlobalDictCache::put(const char * name, NdbTableImpl * tab)
    vers->erase(sz - 1);
  } 
  else if (ver.m_impl == 0) {
    DBUG_PRINT("info", ("Table OK"));
    ver.m_impl = tab;
    ver.m_version = tab->m_version;
    ver.m_status = OK;
  } 
  else if (ver.m_impl == &f_invalid_table) 
  {
    DBUG_PRINT("info", ("Table DROPPED invalid"));
    ver.m_impl = tab;
    ver.m_version = tab->m_version;
    ver.m_status = DROPPED;
@@ -231,6 +242,7 @@ GlobalDictCache::put(const char * name, NdbTableImpl * tab)
  }
  else if(ver.m_impl == &f_altered_table)
  {
    DBUG_PRINT("info", ("Table DROPPED altered"));
    ver.m_impl = tab;
    ver.m_version = tab->m_version;
    ver.m_status = DROPPED;
Loading