summaryrefslogtreecommitdiff
path: root/ndb
diff options
context:
space:
mode:
authorunknown <tomas@poseidon.ndb.mysql.com>2006-07-06 15:18:00 +0200
committerunknown <tomas@poseidon.ndb.mysql.com>2006-07-06 15:18:00 +0200
commit7997d847f2298172842e32acd356e43097adab36 (patch)
tree1cd3b6054848813fda2945f2cd78914e777c0c31 /ndb
parent437afbfda8ece60baa898b14fe8c01b3c00d8f09 (diff)
downloadmariadb-git-7997d847f2298172842e32acd356e43097adab36.tar.gz
backport of ndb DictCache fix
- don't invalidate tables that are in state RETRIEVING
Diffstat (limited to 'ndb')
-rw-r--r--ndb/src/ndbapi/DictCache.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/ndb/src/ndbapi/DictCache.cpp b/ndb/src/ndbapi/DictCache.cpp
index 9b6449e8ec5..66ce6266fb9 100644
--- a/ndb/src/ndbapi/DictCache.cpp
+++ b/ndb/src/ndbapi/DictCache.cpp
@@ -278,12 +278,15 @@ GlobalDictCache::invalidate_all()
if (vers->size())
{
TableVersion * ver = & vers->back();
- ver->m_impl->m_status = NdbDictionary::Object::Invalid;
- ver->m_status = DROPPED;
- if (ver->m_refCount == 0)
+ if (ver->m_status != RETREIVING)
{
- delete ver->m_impl;
- vers->erase(vers->size() - 1);
+ ver->m_impl->m_status = NdbDictionary::Object::Invalid;
+ ver->m_status = DROPPED;
+ if (ver->m_refCount == 0)
+ {
+ delete ver->m_impl;
+ vers->erase(vers->size() - 1);
+ }
}
}
curr = m_tableHash.getNext(curr);