summaryrefslogtreecommitdiff
path: root/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp')
-rw-r--r--storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp455
1 files changed, 455 insertions, 0 deletions
diff --git a/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp b/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp
new file mode 100644
index 00000000000..e39d0ca68a6
--- /dev/null
+++ b/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp
@@ -0,0 +1,455 @@
+/* Copyright (C) 2003 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+
+#include <pc.hpp>
+#define DBLQH_C
+#include "Dblqh.hpp"
+#include <ndb_limits.h>
+
+#define DEBUG(x) { ndbout << "LQH::" << x << endl; }
+
+void Dblqh::initData()
+{
+ caddfragrecFileSize = ZADDFRAGREC_FILE_SIZE;
+ cattrinbufFileSize = ZATTRINBUF_FILE_SIZE;
+ c_no_attrinbuf_recs= ZATTRINBUF_FILE_SIZE;
+ cdatabufFileSize = ZDATABUF_FILE_SIZE;
+ cfragrecFileSize = 0;
+ cgcprecFileSize = ZGCPREC_FILE_SIZE;
+ chostFileSize = MAX_NDB_NODES;
+ clcpFileSize = ZNO_CONCURRENT_LCP;
+ clcpLocrecFileSize = ZLCP_LOCREC_FILE_SIZE;
+ clfoFileSize = ZLFO_FILE_SIZE;
+ clogFileFileSize = 0;
+ clogPartFileSize = ZLOG_PART_FILE_SIZE;
+ cpageRefFileSize = ZPAGE_REF_FILE_SIZE;
+ cscanrecFileSize = ZSCANREC_FILE_SIZE;
+ ctabrecFileSize = 0;
+ ctcConnectrecFileSize = 0;
+ ctcNodeFailrecFileSize = MAX_NDB_NODES;
+
+ addFragRecord = 0;
+ attrbuf = 0;
+ databuf = 0;
+ fragrecord = 0;
+ gcpRecord = 0;
+ hostRecord = 0;
+ lcpRecord = 0;
+ lcpLocRecord = 0;
+ logPartRecord = 0;
+ logFileRecord = 0;
+ logFileOperationRecord = 0;
+ logPageRecord = 0;
+ pageRefRecord = 0;
+ tablerec = 0;
+ tcConnectionrec = 0;
+ tcNodeFailRecord = 0;
+
+ // Records with constant sizes
+
+ cLqhTimeOutCount = 0;
+ cLqhTimeOutCheckCount = 0;
+ cbookedAccOps = 0;
+ c_redo_log_complete_frags = RNIL;
+}//Dblqh::initData()
+
+void Dblqh::initRecords()
+{
+ // Records with dynamic sizes
+ addFragRecord = (AddFragRecord*)allocRecord("AddFragRecord",
+ sizeof(AddFragRecord),
+ caddfragrecFileSize);
+ attrbuf = (Attrbuf*)allocRecord("Attrbuf",
+ sizeof(Attrbuf),
+ cattrinbufFileSize);
+
+ databuf = (Databuf*)allocRecord("Databuf",
+ sizeof(Databuf),
+ cdatabufFileSize);
+
+ fragrecord = (Fragrecord*)allocRecord("Fragrecord",
+ sizeof(Fragrecord),
+ cfragrecFileSize);
+
+ gcpRecord = (GcpRecord*)allocRecord("GcpRecord",
+ sizeof(GcpRecord),
+ cgcprecFileSize);
+
+ hostRecord = (HostRecord*)allocRecord("HostRecord",
+ sizeof(HostRecord),
+ chostFileSize);
+
+ lcpRecord = (LcpRecord*)allocRecord("LcpRecord",
+ sizeof(LcpRecord),
+ clcpFileSize);
+
+ for(Uint32 i = 0; i<clcpFileSize; i++){
+ new (&lcpRecord[i])LcpRecord();
+ }
+
+ lcpLocRecord = (LcpLocRecord*)allocRecord("LcpLocRecord",
+ sizeof(LcpLocRecord),
+ clcpLocrecFileSize);
+
+ logPartRecord = (LogPartRecord*)allocRecord("LogPartRecord",
+ sizeof(LogPartRecord),
+ clogPartFileSize);
+
+ logFileRecord = (LogFileRecord*)allocRecord("LogFileRecord",
+ sizeof(LogFileRecord),
+ clogFileFileSize);
+
+ logFileOperationRecord = (LogFileOperationRecord*)
+ allocRecord("LogFileOperationRecord",
+ sizeof(LogFileOperationRecord),
+ clfoFileSize);
+
+ logPageRecord = (LogPageRecord*)allocRecord("LogPageRecord",
+ sizeof(LogPageRecord),
+ clogPageFileSize,
+ false);
+
+ pageRefRecord = (PageRefRecord*)allocRecord("PageRefRecord",
+ sizeof(PageRefRecord),
+ cpageRefFileSize);
+
+ cscanNoFreeRec = cscanrecFileSize;
+ c_scanRecordPool.setSize(cscanrecFileSize);
+ c_scanTakeOverHash.setSize(64);
+
+ tablerec = (Tablerec*)allocRecord("Tablerec",
+ sizeof(Tablerec),
+ ctabrecFileSize);
+
+ tcConnectionrec = (TcConnectionrec*)allocRecord("TcConnectionrec",
+ sizeof(TcConnectionrec),
+ ctcConnectrecFileSize);
+
+ m_commitAckMarkerPool.setSize(ctcConnectrecFileSize);
+ m_commitAckMarkerHash.setSize(1024);
+
+ tcNodeFailRecord = (TcNodeFailRecord*)allocRecord("TcNodeFailRecord",
+ sizeof(TcNodeFailRecord),
+ ctcNodeFailrecFileSize);
+
+ /*
+ ndbout << "FRAGREC SIZE = " << sizeof(Fragrecord) << endl;
+ ndbout << "TAB SIZE = " << sizeof(Tablerec) << endl;
+ ndbout << "GCP SIZE = " << sizeof(GcpRecord) << endl;
+ ndbout << "LCP SIZE = " << sizeof(LcpRecord) << endl;
+ ndbout << "LCPLOC SIZE = " << sizeof(LcpLocRecord) << endl;
+ ndbout << "LOGPART SIZE = " << sizeof(LogPartRecord) << endl;
+ ndbout << "LOGFILE SIZE = " << sizeof(LogFileRecord) << endl;
+ ndbout << "TC SIZE = " << sizeof(TcConnectionrec) << endl;
+ ndbout << "HOST SIZE = " << sizeof(HostRecord) << endl;
+ ndbout << "LFO SIZE = " << sizeof(LogFileOperationRecord) << endl;
+ ndbout << "PR SIZE = " << sizeof(PageRefRecord) << endl;
+ ndbout << "SCAN SIZE = " << sizeof(ScanRecord) << endl;
+*/
+
+ // Initialize BAT for interface to file system
+ NewVARIABLE* bat = allocateBat(2);
+ bat[1].WA = &logPageRecord->logPageWord[0];
+ bat[1].nrr = clogPageFileSize;
+ bat[1].ClusterSize = sizeof(LogPageRecord);
+ bat[1].bits.q = ZTWOLOG_PAGE_SIZE;
+ bat[1].bits.v = 5;
+}//Dblqh::initRecords()
+
+Dblqh::Dblqh(const class Configuration & conf):
+ SimulatedBlock(DBLQH, conf),
+ m_commitAckMarkerHash(m_commitAckMarkerPool),
+ c_scanTakeOverHash(c_scanRecordPool)
+{
+ Uint32 log_page_size= 0;
+ BLOCK_CONSTRUCTOR(Dblqh);
+
+ const ndb_mgm_configuration_iterator * p = conf.getOwnConfigIterator();
+ ndbrequire(p != 0);
+
+ ndb_mgm_get_int_parameter(p, CFG_DB_REDO_BUFFER,
+ &log_page_size);
+
+ /**
+ * Always set page size in half MBytes
+ */
+ clogPageFileSize= (log_page_size / sizeof(LogPageRecord));
+ Uint32 mega_byte_part= clogPageFileSize & 15;
+ if (mega_byte_part != 0) {
+ jam();
+ clogPageFileSize+= (16 - mega_byte_part);
+ }
+
+ addRecSignal(GSN_PACKED_SIGNAL, &Dblqh::execPACKED_SIGNAL);
+ addRecSignal(GSN_DEBUG_SIG, &Dblqh::execDEBUG_SIG);
+ addRecSignal(GSN_ATTRINFO, &Dblqh::execATTRINFO);
+ addRecSignal(GSN_KEYINFO, &Dblqh::execKEYINFO);
+ addRecSignal(GSN_LQHKEYREQ, &Dblqh::execLQHKEYREQ);
+ addRecSignal(GSN_LQHKEYREF, &Dblqh::execLQHKEYREF);
+ addRecSignal(GSN_COMMIT, &Dblqh::execCOMMIT);
+ addRecSignal(GSN_COMPLETE, &Dblqh::execCOMPLETE);
+ addRecSignal(GSN_LQHKEYCONF, &Dblqh::execLQHKEYCONF);
+#ifdef VM_TRACE
+ addRecSignal(GSN_TESTSIG, &Dblqh::execTESTSIG);
+#endif
+ addRecSignal(GSN_LQH_RESTART_OP, &Dblqh::execLQH_RESTART_OP);
+ addRecSignal(GSN_CONTINUEB, &Dblqh::execCONTINUEB);
+ addRecSignal(GSN_START_RECREQ, &Dblqh::execSTART_RECREQ);
+ addRecSignal(GSN_START_RECCONF, &Dblqh::execSTART_RECCONF);
+ addRecSignal(GSN_EXEC_FRAGREQ, &Dblqh::execEXEC_FRAGREQ);
+ addRecSignal(GSN_EXEC_FRAGCONF, &Dblqh::execEXEC_FRAGCONF);
+ addRecSignal(GSN_EXEC_FRAGREF, &Dblqh::execEXEC_FRAGREF);
+ addRecSignal(GSN_START_EXEC_SR, &Dblqh::execSTART_EXEC_SR);
+ addRecSignal(GSN_EXEC_SRREQ, &Dblqh::execEXEC_SRREQ);
+ addRecSignal(GSN_EXEC_SRCONF, &Dblqh::execEXEC_SRCONF);
+ addRecSignal(GSN_SCAN_HBREP, &Dblqh::execSCAN_HBREP);
+
+ addRecSignal(GSN_ALTER_TAB_REQ, &Dblqh::execALTER_TAB_REQ);
+
+ // Trigger signals, transit to from TUP
+ addRecSignal(GSN_CREATE_TRIG_REQ, &Dblqh::execCREATE_TRIG_REQ);
+ addRecSignal(GSN_CREATE_TRIG_CONF, &Dblqh::execCREATE_TRIG_CONF);
+ addRecSignal(GSN_CREATE_TRIG_REF, &Dblqh::execCREATE_TRIG_REF);
+
+ addRecSignal(GSN_DROP_TRIG_REQ, &Dblqh::execDROP_TRIG_REQ);
+ addRecSignal(GSN_DROP_TRIG_CONF, &Dblqh::execDROP_TRIG_CONF);
+ addRecSignal(GSN_DROP_TRIG_REF, &Dblqh::execDROP_TRIG_REF);
+
+ addRecSignal(GSN_DUMP_STATE_ORD, &Dblqh::execDUMP_STATE_ORD);
+ addRecSignal(GSN_ACC_COM_BLOCK, &Dblqh::execACC_COM_BLOCK);
+ addRecSignal(GSN_ACC_COM_UNBLOCK, &Dblqh::execACC_COM_UNBLOCK);
+ addRecSignal(GSN_TUP_COM_BLOCK, &Dblqh::execTUP_COM_BLOCK);
+ addRecSignal(GSN_TUP_COM_UNBLOCK, &Dblqh::execTUP_COM_UNBLOCK);
+ addRecSignal(GSN_NODE_FAILREP, &Dblqh::execNODE_FAILREP);
+ addRecSignal(GSN_CHECK_LCP_STOP, &Dblqh::execCHECK_LCP_STOP);
+ addRecSignal(GSN_SEND_PACKED, &Dblqh::execSEND_PACKED);
+ addRecSignal(GSN_TUP_ATTRINFO, &Dblqh::execTUP_ATTRINFO);
+ addRecSignal(GSN_READ_CONFIG_REQ, &Dblqh::execREAD_CONFIG_REQ, true);
+ addRecSignal(GSN_LQHFRAGREQ, &Dblqh::execLQHFRAGREQ);
+ addRecSignal(GSN_LQHADDATTREQ, &Dblqh::execLQHADDATTREQ);
+ addRecSignal(GSN_TUP_ADD_ATTCONF, &Dblqh::execTUP_ADD_ATTCONF);
+ addRecSignal(GSN_TUP_ADD_ATTRREF, &Dblqh::execTUP_ADD_ATTRREF);
+ addRecSignal(GSN_ACCFRAGCONF, &Dblqh::execACCFRAGCONF);
+ addRecSignal(GSN_ACCFRAGREF, &Dblqh::execACCFRAGREF);
+ addRecSignal(GSN_TUPFRAGCONF, &Dblqh::execTUPFRAGCONF);
+ addRecSignal(GSN_TUPFRAGREF, &Dblqh::execTUPFRAGREF);
+ addRecSignal(GSN_TAB_COMMITREQ, &Dblqh::execTAB_COMMITREQ);
+ addRecSignal(GSN_ACCSEIZECONF, &Dblqh::execACCSEIZECONF);
+ addRecSignal(GSN_ACCSEIZEREF, &Dblqh::execACCSEIZEREF);
+ addRecSignal(GSN_READ_NODESCONF, &Dblqh::execREAD_NODESCONF);
+ addRecSignal(GSN_READ_NODESREF, &Dblqh::execREAD_NODESREF);
+ addRecSignal(GSN_STTOR, &Dblqh::execSTTOR);
+ addRecSignal(GSN_NDB_STTOR, &Dblqh::execNDB_STTOR);
+ addRecSignal(GSN_TUPSEIZECONF, &Dblqh::execTUPSEIZECONF);
+ addRecSignal(GSN_TUPSEIZEREF, &Dblqh::execTUPSEIZEREF);
+ addRecSignal(GSN_ACCKEYCONF, &Dblqh::execACCKEYCONF);
+ addRecSignal(GSN_ACCKEYREF, &Dblqh::execACCKEYREF);
+ addRecSignal(GSN_TUPKEYCONF, &Dblqh::execTUPKEYCONF);
+ addRecSignal(GSN_TUPKEYREF, &Dblqh::execTUPKEYREF);
+ addRecSignal(GSN_ABORT, &Dblqh::execABORT);
+ addRecSignal(GSN_ABORTREQ, &Dblqh::execABORTREQ);
+ addRecSignal(GSN_COMMITREQ, &Dblqh::execCOMMITREQ);
+ addRecSignal(GSN_COMPLETEREQ, &Dblqh::execCOMPLETEREQ);
+#ifdef VM_TRACE
+ addRecSignal(GSN_MEMCHECKREQ, &Dblqh::execMEMCHECKREQ);
+#endif
+ addRecSignal(GSN_SCAN_FRAGREQ, &Dblqh::execSCAN_FRAGREQ);
+ addRecSignal(GSN_SCAN_NEXTREQ, &Dblqh::execSCAN_NEXTREQ);
+ addRecSignal(GSN_ACC_SCANCONF, &Dblqh::execACC_SCANCONF);
+ addRecSignal(GSN_ACC_SCANREF, &Dblqh::execACC_SCANREF);
+ addRecSignal(GSN_NEXT_SCANCONF, &Dblqh::execNEXT_SCANCONF);
+ addRecSignal(GSN_NEXT_SCANREF, &Dblqh::execNEXT_SCANREF);
+ addRecSignal(GSN_STORED_PROCCONF, &Dblqh::execSTORED_PROCCONF);
+ addRecSignal(GSN_STORED_PROCREF, &Dblqh::execSTORED_PROCREF);
+ addRecSignal(GSN_COPY_FRAGREQ, &Dblqh::execCOPY_FRAGREQ);
+ addRecSignal(GSN_COPY_ACTIVEREQ, &Dblqh::execCOPY_ACTIVEREQ);
+ addRecSignal(GSN_COPY_STATEREQ, &Dblqh::execCOPY_STATEREQ);
+ addRecSignal(GSN_LQH_TRANSREQ, &Dblqh::execLQH_TRANSREQ);
+ addRecSignal(GSN_TRANSID_AI, &Dblqh::execTRANSID_AI);
+ addRecSignal(GSN_INCL_NODEREQ, &Dblqh::execINCL_NODEREQ);
+ addRecSignal(GSN_ACC_LCPCONF, &Dblqh::execACC_LCPCONF);
+ addRecSignal(GSN_ACC_LCPREF, &Dblqh::execACC_LCPREF);
+ addRecSignal(GSN_ACC_LCPSTARTED, &Dblqh::execACC_LCPSTARTED);
+ addRecSignal(GSN_ACC_CONTOPCONF, &Dblqh::execACC_CONTOPCONF);
+ addRecSignal(GSN_LCP_FRAGIDCONF, &Dblqh::execLCP_FRAGIDCONF);
+ addRecSignal(GSN_LCP_FRAGIDREF, &Dblqh::execLCP_FRAGIDREF);
+ addRecSignal(GSN_LCP_HOLDOPCONF, &Dblqh::execLCP_HOLDOPCONF);
+ addRecSignal(GSN_LCP_HOLDOPREF, &Dblqh::execLCP_HOLDOPREF);
+ addRecSignal(GSN_TUP_PREPLCPCONF, &Dblqh::execTUP_PREPLCPCONF);
+ addRecSignal(GSN_TUP_PREPLCPREF, &Dblqh::execTUP_PREPLCPREF);
+ addRecSignal(GSN_TUP_LCPCONF, &Dblqh::execTUP_LCPCONF);
+ addRecSignal(GSN_TUP_LCPREF, &Dblqh::execTUP_LCPREF);
+ addRecSignal(GSN_TUP_LCPSTARTED, &Dblqh::execTUP_LCPSTARTED);
+ addRecSignal(GSN_END_LCPCONF, &Dblqh::execEND_LCPCONF);
+
+ addRecSignal(GSN_EMPTY_LCP_REQ, &Dblqh::execEMPTY_LCP_REQ);
+ addRecSignal(GSN_LCP_FRAG_ORD, &Dblqh::execLCP_FRAG_ORD);
+
+ addRecSignal(GSN_START_FRAGREQ, &Dblqh::execSTART_FRAGREQ);
+ addRecSignal(GSN_START_RECREF, &Dblqh::execSTART_RECREF);
+ addRecSignal(GSN_SR_FRAGIDCONF, &Dblqh::execSR_FRAGIDCONF);
+ addRecSignal(GSN_SR_FRAGIDREF, &Dblqh::execSR_FRAGIDREF);
+ addRecSignal(GSN_ACC_SRCONF, &Dblqh::execACC_SRCONF);
+ addRecSignal(GSN_ACC_SRREF, &Dblqh::execACC_SRREF);
+ addRecSignal(GSN_TUP_SRCONF, &Dblqh::execTUP_SRCONF);
+ addRecSignal(GSN_TUP_SRREF, &Dblqh::execTUP_SRREF);
+ addRecSignal(GSN_GCP_SAVEREQ, &Dblqh::execGCP_SAVEREQ);
+ addRecSignal(GSN_FSOPENCONF, &Dblqh::execFSOPENCONF);
+ addRecSignal(GSN_FSOPENREF, &Dblqh::execFSOPENREF);
+ addRecSignal(GSN_FSCLOSECONF, &Dblqh::execFSCLOSECONF);
+ addRecSignal(GSN_FSCLOSEREF, &Dblqh::execFSCLOSEREF);
+ addRecSignal(GSN_FSWRITECONF, &Dblqh::execFSWRITECONF);
+ addRecSignal(GSN_FSWRITEREF, &Dblqh::execFSWRITEREF);
+ addRecSignal(GSN_FSREADCONF, &Dblqh::execFSREADCONF);
+ addRecSignal(GSN_FSREADREF, &Dblqh::execFSREADREF);
+ addRecSignal(GSN_ACC_ABORTCONF, &Dblqh::execACC_ABORTCONF);
+ addRecSignal(GSN_SET_VAR_REQ, &Dblqh::execSET_VAR_REQ);
+ addRecSignal(GSN_TIME_SIGNAL, &Dblqh::execTIME_SIGNAL);
+ addRecSignal(GSN_FSSYNCCONF, &Dblqh::execFSSYNCCONF);
+ addRecSignal(GSN_FSSYNCREF, &Dblqh::execFSSYNCREF);
+ addRecSignal(GSN_REMOVE_MARKER_ORD, &Dblqh::execREMOVE_MARKER_ORD);
+
+ //addRecSignal(GSN_DROP_TAB_REQ, &Dblqh::execDROP_TAB_REQ);
+ addRecSignal(GSN_PREP_DROP_TAB_REQ, &Dblqh::execPREP_DROP_TAB_REQ);
+ addRecSignal(GSN_WAIT_DROP_TAB_REQ, &Dblqh::execWAIT_DROP_TAB_REQ);
+ addRecSignal(GSN_DROP_TAB_REQ, &Dblqh::execDROP_TAB_REQ);
+
+ addRecSignal(GSN_LQH_ALLOCREQ, &Dblqh::execLQH_ALLOCREQ);
+ addRecSignal(GSN_LQH_WRITELOG_REQ, &Dblqh::execLQH_WRITELOG_REQ);
+
+ // TUX
+ addRecSignal(GSN_TUXFRAGCONF, &Dblqh::execTUXFRAGCONF);
+ addRecSignal(GSN_TUXFRAGREF, &Dblqh::execTUXFRAGREF);
+ addRecSignal(GSN_TUX_ADD_ATTRCONF, &Dblqh::execTUX_ADD_ATTRCONF);
+ addRecSignal(GSN_TUX_ADD_ATTRREF, &Dblqh::execTUX_ADD_ATTRREF);
+
+ addRecSignal(GSN_READ_PSUEDO_REQ, &Dblqh::execREAD_PSUEDO_REQ);
+
+ initData();
+
+#ifdef VM_TRACE
+ {
+ void* tmp[] = {
+ &addfragptr,
+ &attrinbufptr,
+ &databufptr,
+ &fragptr,
+ &gcpPtr,
+ &lcpPtr,
+ &lcpLocptr,
+ &logPartPtr,
+ &logFilePtr,
+ &lfoPtr,
+ &logPagePtr,
+ &pageRefPtr,
+ &scanptr,
+ &tabptr,
+ &tcConnectptr,
+ &tcNodeFailptr,
+ };
+ init_globals_list(tmp, sizeof(tmp)/sizeof(tmp[0]));
+ }
+#endif
+
+}//Dblqh::Dblqh()
+
+Dblqh::~Dblqh()
+{
+ // Records with dynamic sizes
+ deallocRecord((void **)&addFragRecord, "AddFragRecord",
+ sizeof(AddFragRecord),
+ caddfragrecFileSize);
+
+ deallocRecord((void**)&attrbuf,
+ "Attrbuf",
+ sizeof(Attrbuf),
+ cattrinbufFileSize);
+
+ deallocRecord((void**)&databuf,
+ "Databuf",
+ sizeof(Databuf),
+ cdatabufFileSize);
+
+ deallocRecord((void**)&fragrecord,
+ "Fragrecord",
+ sizeof(Fragrecord),
+ cfragrecFileSize);
+
+ deallocRecord((void**)&gcpRecord,
+ "GcpRecord",
+ sizeof(GcpRecord),
+ cgcprecFileSize);
+
+ deallocRecord((void**)&hostRecord,
+ "HostRecord",
+ sizeof(HostRecord),
+ chostFileSize);
+
+ deallocRecord((void**)&lcpRecord,
+ "LcpRecord",
+ sizeof(LcpRecord),
+ clcpFileSize);
+
+ deallocRecord((void**)&lcpLocRecord,
+ "LcpLocRecord",
+ sizeof(LcpLocRecord),
+ clcpLocrecFileSize);
+
+ deallocRecord((void**)&logPartRecord,
+ "LogPartRecord",
+ sizeof(LogPartRecord),
+ clogPartFileSize);
+
+ deallocRecord((void**)&logFileRecord,
+ "LogFileRecord",
+ sizeof(LogFileRecord),
+ clogFileFileSize);
+
+ deallocRecord((void**)&logFileOperationRecord,
+ "LogFileOperationRecord",
+ sizeof(LogFileOperationRecord),
+ clfoFileSize);
+
+ deallocRecord((void**)&logPageRecord,
+ "LogPageRecord",
+ sizeof(LogPageRecord),
+ clogPageFileSize);
+
+ deallocRecord((void**)&pageRefRecord,
+ "PageRefRecord",
+ sizeof(PageRefRecord),
+ cpageRefFileSize);
+
+
+ deallocRecord((void**)&tablerec,
+ "Tablerec",
+ sizeof(Tablerec),
+ ctabrecFileSize);
+
+ deallocRecord((void**)&tcConnectionrec,
+ "TcConnectionrec",
+ sizeof(TcConnectionrec),
+ ctcConnectrecFileSize);
+
+ deallocRecord((void**)&tcNodeFailRecord,
+ "TcNodeFailRecord",
+ sizeof(TcNodeFailRecord),
+ ctcNodeFailrecFileSize);
+}//Dblqh::~Dblqh()
+
+BLOCK_FUNCTIONS(Dblqh)
+