Commit a366d6ee authored by unknown's avatar unknown
Browse files

bug, releaseTableObject called twice

bug, whole bucket removed if delete first element in bucket


ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
  bug, releaseTableObject called twice
ndb/src/ndbapi/NdbLinHash.hpp:
  bug, whole bucket removed if delete first element in bucket
parent 8090516c
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -2868,7 +2868,6 @@ Dbdict::execALTER_TABLE_REQ(Signal* signal)
    jam();
    c_opCreateTable.release(alterTabPtr);
    parseRecord.tablePtr.p->tabState = TableRecord::NOT_DEFINED;
    releaseTableObject(parseRecord.tablePtr.i, false);
    alterTableRef(signal, req, 
		  (AlterTableRef::ErrorCode) parseRecord.errorCode, 
		  aParseRecord);
@@ -3054,7 +3053,6 @@ Dbdict::execALTER_TAB_REQ(Signal * signal)
	jam();
	c_opCreateTable.release(alterTabPtr);
	parseRecord.tablePtr.p->tabState = TableRecord::NOT_DEFINED;
	releaseTableObject(parseRecord.tablePtr.i, false);
	alterTabRef(signal, req, 
		    (AlterTableRef::ErrorCode) parseRecord.errorCode, 
		    aParseRecord);
+4 −7
Original line number Diff line number Diff line
@@ -287,17 +287,14 @@ NdbLinHash<C>::deleteKey ( const char* str, Uint32 len){
  NdbElement_t<C> **chainp = &directory[dir]->elements[seg];
  for(NdbElement_t<C> * chain = *chainp; chain != 0; chain = chain->next){
    if(chain->len == len && !memcmp(chain->str, str, len)){
      if (oldChain == 0) {
      C *data= chain->theData;
	delete chain;
	* chainp = 0;
	return data;
      if (oldChain == 0) {
	* chainp = chain->next;
      } else {
	C *data= chain->theData;
	oldChain->next = chain->next;
      }
      delete chain;
      return data;
      }
    } else {
      oldChain = chain;
    }