From cd58d39138fb43e365ffccc7f7c1b0ca30e11129 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 21 Jun 2006 16:01:23 +0200 Subject: [PATCH] ndb - bug#19275 make sure tablename is release in case of alter table storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp: make sure tablename is release in case of alter table --- .../ndb/src/kernel/blocks/dbdict/Dbdict.cpp | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp index ef08c06822f..ed6b94fd2e8 100644 --- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp +++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp @@ -4695,11 +4695,6 @@ Dbdict::alterTab_writeTableConf(Signal* signal, SegmentedSectionPtr tabInfoPtr; getSection(tabInfoPtr, alterTabPtr.p->m_tabInfoPtrI); signal->setSection(tabInfoPtr, AlterTabReq::DICT_TAB_INFO); -#ifndef DBUG_OFF - ndbout_c("DICT_TAB_INFO in DICT"); - SimplePropertiesSectionReader reader(tabInfoPtr, getSectionSegmentPool()); - reader.printAll(ndbout); -#endif EXECUTE_DIRECT(SUMA, GSN_ALTER_TAB_REQ, signal, AlterTabReq::SignalLength); releaseSections(signal); @@ -6960,13 +6955,37 @@ void Dbdict::releaseTableObject(Uint32 tableId, bool removeFromHash) { TableRecordPtr tablePtr; c_tableRecordPool.getPtr(tablePtr, tableId); - if (removeFromHash){ + if (removeFromHash) + { jam(); release_object(tablePtr.p->m_obj_ptr_i); } + else + { + Rope tmp(c_rope_pool, tablePtr.p->tableName); + tmp.erase(); + } - Rope frm(c_rope_pool, tablePtr.p->frmData); - frm.erase(); + { + Rope tmp(c_rope_pool, tablePtr.p->frmData); + tmp.erase(); + } + + { + Rope tmp(c_rope_pool, tablePtr.p->tsData); + tmp.erase(); + } + + { + Rope tmp(c_rope_pool, tablePtr.p->ngData); + tmp.erase(); + } + + { + Rope tmp(c_rope_pool, tablePtr.p->rangeData); + tmp.erase(); + } + tablePtr.p->tabState = TableRecord::NOT_DEFINED; LocalDLFifoList list(c_attributeRecordPool,