📄 dbdict.hpp
字号:
m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } void setError(const CreateTrigRef* ref) { m_lastError = AlterTrigRef::NoError; if (ref != 0) { m_lastError = (AlterTrigRef::ErrorCode)ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } void setError(const DropTrigRef* ref) { m_lastError = AlterTrigRef::NoError; if (ref != 0) { m_lastError = (AlterTrigRef::ErrorCode)ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } }; typedef Ptr<OpAlterTrigger> OpAlterTriggerPtr; // Common operation record poolpublic: STATIC_CONST( opCreateTableSize = sizeof(CreateTableRecord) ); STATIC_CONST( opDropTableSize = sizeof(DropTableRecord) ); STATIC_CONST( opCreateIndexSize = sizeof(OpCreateIndex) ); STATIC_CONST( opDropIndexSize = sizeof(OpDropIndex) ); STATIC_CONST( opAlterIndexSize = sizeof(OpAlterIndex) ); STATIC_CONST( opBuildIndexSize = sizeof(OpBuildIndex) ); STATIC_CONST( opCreateEventSize = sizeof(OpCreateEvent) ); STATIC_CONST( opSubEventSize = sizeof(OpSubEvent) ); STATIC_CONST( opDropEventSize = sizeof(OpDropEvent) ); STATIC_CONST( opSignalUtilSize = sizeof(OpSignalUtil) ); STATIC_CONST( opCreateTriggerSize = sizeof(OpCreateTrigger) ); STATIC_CONST( opDropTriggerSize = sizeof(OpDropTrigger) ); STATIC_CONST( opAlterTriggerSize = sizeof(OpAlterTrigger) );private:#define PTR_ALIGN(n) ((((n)+sizeof(void*)-1)>>2)&~((sizeof(void*)-1)>>2)) union OpRecordUnion { Uint32 u_opCreateTable [PTR_ALIGN(opCreateTableSize)]; Uint32 u_opDropTable [PTR_ALIGN(opDropTableSize)]; Uint32 u_opCreateIndex [PTR_ALIGN(opCreateIndexSize)]; Uint32 u_opDropIndex [PTR_ALIGN(opDropIndexSize)]; Uint32 u_opCreateEvent [PTR_ALIGN(opCreateEventSize)]; Uint32 u_opSubEvent [PTR_ALIGN(opSubEventSize)]; Uint32 u_opDropEvent [PTR_ALIGN(opDropEventSize)]; Uint32 u_opSignalUtil [PTR_ALIGN(opSignalUtilSize)]; Uint32 u_opAlterIndex [PTR_ALIGN(opAlterIndexSize)]; Uint32 u_opBuildIndex [PTR_ALIGN(opBuildIndexSize)]; Uint32 u_opCreateTrigger[PTR_ALIGN(opCreateTriggerSize)]; Uint32 u_opDropTrigger [PTR_ALIGN(opDropTriggerSize)]; Uint32 u_opAlterTrigger [PTR_ALIGN(opAlterTriggerSize)]; Uint32 nextPool; }; ArrayPool<OpRecordUnion> c_opRecordPool; // Operation records KeyTable2<CreateTableRecord, OpRecordUnion> c_opCreateTable; KeyTable2<DropTableRecord, OpRecordUnion> c_opDropTable; KeyTable2<OpCreateIndex, OpRecordUnion> c_opCreateIndex; KeyTable2<OpDropIndex, OpRecordUnion> c_opDropIndex; KeyTable2<OpAlterIndex, OpRecordUnion> c_opAlterIndex; KeyTable2<OpBuildIndex, OpRecordUnion> c_opBuildIndex; KeyTable2<OpCreateEvent, OpRecordUnion> c_opCreateEvent; KeyTable2<OpSubEvent, OpRecordUnion> c_opSubEvent; KeyTable2<OpDropEvent, OpRecordUnion> c_opDropEvent; KeyTable2<OpSignalUtil, OpRecordUnion> c_opSignalUtil; KeyTable2<OpCreateTrigger, OpRecordUnion> c_opCreateTrigger; KeyTable2<OpDropTrigger, OpRecordUnion> c_opDropTrigger; KeyTable2<OpAlterTrigger, OpRecordUnion> c_opAlterTrigger; // Unique key for operation XXX move to some system table Uint32 c_opRecordSequence; // Statement blocks /* ------------------------------------------------------------ */ // Start/Restart Handling /* ------------------------------------------------------------ */ void sendSTTORRY(Signal* signal); void sendNDB_STTORRY(Signal* signal); void initSchemaFile(Signal* signal); /* ------------------------------------------------------------ */ // Drop Table Handling /* ------------------------------------------------------------ */ void releaseTableObject(Uint32 tableId, bool removeFromHash = true); /* ------------------------------------------------------------ */ // General Stuff /* ------------------------------------------------------------ */ Uint32 getFreeTableRecord(Uint32 primaryTableId); Uint32 getFreeTriggerRecord(); bool getNewAttributeRecord(TableRecordPtr tablePtr, AttributeRecordPtr & attrPtr); void packTableIntoPages(Signal* signal, Uint32 tableId, Uint32 pageId); void packTableIntoPagesImpl(SimpleProperties::Writer &, TableRecordPtr, Signal* signal= 0); void sendGET_TABINFOREQ(Signal* signal, Uint32 tableId); void sendTC_SCHVERREQ(Signal* signal, Uint32 tableId, BlockReference tcRef); /* ------------------------------------------------------------ */ // System Restart Handling /* ------------------------------------------------------------ */ void initSendSchemaData(Signal* signal); void sendSchemaData(Signal* signal); Uint32 sendSCHEMA_INFO(Signal* signal, Uint32 nodeId, Uint32* pagePointer); void checkSchemaStatus(Signal* signal); void sendDIHSTARTTAB_REQ(Signal* signal); /* ------------------------------------------------------------ */ // Receive Table Handling /* ------------------------------------------------------------ */ void handleTabInfoInit(SimpleProperties::Reader &, ParseDictTabInfoRecord *, bool checkExist = true); void handleTabInfo(SimpleProperties::Reader & it, ParseDictTabInfoRecord *); void handleAddTableFailure(Signal* signal, Uint32 failureLine, Uint32 tableId); bool verifyTableCorrect(Signal* signal, Uint32 tableId); /* ------------------------------------------------------------ */ // Add Table Handling /* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */ // Add Fragment Handling /* ------------------------------------------------------------ */ void sendLQHADDATTRREQ(Signal*, CreateTableRecordPtr, Uint32 attributePtrI); /* ------------------------------------------------------------ */ // Read/Write Schema and Table files /* ------------------------------------------------------------ */ void updateSchemaState(Signal* signal, Uint32 tableId, SchemaFile::TableEntry*, Callback*); void startWriteSchemaFile(Signal* signal); void openSchemaFile(Signal* signal, Uint32 fileNo, Uint32 fsPtr, bool writeFlag, bool newFile); void writeSchemaFile(Signal* signal, Uint32 filePtr, Uint32 fsPtr); void writeSchemaConf(Signal* signal, FsConnectRecordPtr fsPtr); void closeFile(Signal* signal, Uint32 filePtr, Uint32 fsPtr); void closeWriteSchemaConf(Signal* signal, FsConnectRecordPtr fsPtr); void initSchemaFile_conf(Signal* signal, Uint32 i, Uint32 returnCode); void writeTableFile(Signal* signal, Uint32 tableId, SegmentedSectionPtr tabInfo, Callback*); void startWriteTableFile(Signal* signal, Uint32 tableId); void openTableFile(Signal* signal, Uint32 fileNo, Uint32 fsPtr, Uint32 tableId, bool writeFlag); void writeTableFile(Signal* signal, Uint32 filePtr, Uint32 fsPtr); void writeTableConf(Signal* signal, FsConnectRecordPtr fsPtr); void closeWriteTableConf(Signal* signal, FsConnectRecordPtr fsPtr); void startReadTableFile(Signal* signal, Uint32 tableId); void openReadTableRef(Signal* signal, FsConnectRecordPtr fsPtr); void readTableFile(Signal* signal, Uint32 filePtr, Uint32 fsPtr); void readTableConf(Signal* signal, FsConnectRecordPtr fsPtr); void readTableRef(Signal* signal, FsConnectRecordPtr fsPtr); void closeReadTableConf(Signal* signal, FsConnectRecordPtr fsPtr); void startReadSchemaFile(Signal* signal); void openReadSchemaRef(Signal* signal, FsConnectRecordPtr fsPtr); void readSchemaFile(Signal* signal, Uint32 filePtr, Uint32 fsPtr); void readSchemaConf(Signal* signal, FsConnectRecordPtr fsPtr); void readSchemaRef(Signal* signal, FsConnectRecordPtr fsPtr); void closeReadSchemaConf(Signal* signal, FsConnectRecordPtr fsPtr); bool convertSchemaFileTo_5_0_6(XSchemaFile*); /* ------------------------------------------------------------ */ // Get table definitions /* ------------------------------------------------------------ */ void sendGET_TABINFOREF(Signal* signal, GetTabInfoReq*, GetTabInfoRef::ErrorCode errorCode); void sendGET_TABLEID_REF(Signal* signal, GetTableIdReq * req, GetTableIdRef::ErrorCode errorCode); void sendGetTabResponse(Signal* signal); /* ------------------------------------------------------------ */ // Indexes and triggers /* ------------------------------------------------------------ */ // reactivate and rebuild indexes on start up void activateIndexes(Signal* signal, Uint32 i); void rebuildIndexes(Signal* signal, Uint32 i); // create index void createIndex_recvReply(Signal* signal, const CreateIndxConf* conf, const CreateIndxRef* ref); void createIndex_slavePrepare(Signal* signal, OpCreateIndexPtr opPtr); void createIndex_toCreateTable(Signal* signal, OpCreateIndexPtr opPtr); void createIndex_fromCreateTable(Signal* signal, OpCreateIndexPtr opPtr); void createIndex_toAlterIndex(Signal* signal, OpCreateIndexPtr opPtr); void createIndex_fromAlterIndex(Signal* signal, OpCreateIndexPtr opPtr); void createIndex_slaveCommit(Signal* signal, OpCreateIndexPtr opPtr); void createIndex_slaveAbort(Signal* signal, OpCreateIndexPtr opPtr); void createIndex_sendSlaveReq(Signal* signal, OpCreateIndexPtr opPtr); void createIndex_sendReply(Signal* signal, OpCreateIndexPtr opPtr, bool); // drop index void dropIndex_recvReply(Signal* signal, const DropIndxConf* conf, const DropIndxRef* ref); void dropIndex_slavePrepare(Signal* signal, OpDropIndexPtr opPtr); void dropIndex_toAlterIndex(Signal* signal, OpDropIndexPtr opPtr); void dropIndex_fromAlterIndex(Signal* signal, OpDropIndexPtr opPtr); void dropIndex_toDropTable(Signal* signal, OpDropIndexPtr opPtr); void dropIndex_fromDropTable(Signal* signal, OpDropIndexPtr opPtr); void dropIndex_slaveCommit(Signal* signal, OpDropIndexPtr opPtr); void dropIndex_slaveAbort(Signal* signal, OpDropIndexPtr opPtr); void dropIndex_sendSlaveReq(Signal* signal, OpDropIndexPtr opPtr); void dropIndex_sendReply(Signal* signal, OpDropIndexPtr opPtr, bool); // alter index void alterIndex_recvReply(Signal* signal, const AlterIndxConf* conf, const AlterIndxRef* ref); void alterIndex_slavePrepare(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_toCreateTc(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_fromCreateTc(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_toDropTc(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_fromDropTc(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_toCreateTrigger(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_fromCreateTrigger(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_toDropTrigger(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_fromDropTrigger(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_toBuildIndex(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_fromBuildIndex(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_slaveCommit(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_slaveAbort(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_sendSlaveReq(Signal* signal, OpAlterIndexPtr opPtr); void alterIndex_sendReply(Signal* signal, OpAlterIndexPtr opPtr, bool); // build index void buildIndex_recvReply(Signal* signal, const BuildIndxConf* conf, const BuildIndxRef* ref); void buildIndex_toCreateConstr(Signal* signal, OpBuildIndexPtr opPtr); void buildIndex_fromCreateConstr(Signal* signal, OpBuildIndexPtr opPtr); void buildIndex_buildTrix(Signal* signal, OpBuildIndexPtr opPtr); void buildIndex_toDropConstr(Signal* signal, OpBuildIndexPtr opPtr); void buildIndex_fromDropConstr(Signal* signal, OpBuildIndexPtr opPtr); void buildIndex_toOnline(Signal* signal, OpBuildIndexPtr opPtr); void buildIndex_fromOnline(Signal* signal, OpBuildIndexPtr opPtr); void buildIndex_sendSlaveReq(Signal* signal, OpBuildIndexPtr opPtr); void buildIndex_sendReply(Signal* signal, OpBuildIndexPtr opPtr, bool); // Events void createEventUTIL_PREPARE(Signal* signal, Uint32 callbackData, Uint32 returnCode); void createEventUTIL_EXECUTE(Signal *signal, Uint32 callbackData, Uint32 returnCode); void dropEventUTIL_PREPARE_READ(Signal* signal, Uint32 callbackData, Uint32 returnCode); void dropEventUTIL_EXECUTE_READ(Signal* signal, Uint32 callbackData, Uint32 returnCode); void dropEventUTIL_PREPARE_DELETE(Signal* signal, Uint32 callbackData, Uint32 returnCode); void dropEventUTIL_EXECUTE_DELETE(Signal *signal, Uint32 callbackData, Uint32 returnCode); void dropEventUtilPrepareRef(Signal* signal, Uint32 callbackData, Uint32 returnCode); void dropEventUtilExecuteRef(Signal* signal, Uint32 callbackData, Uint32 returnCode); int sendSignalUtilReq(Callback *c, BlockReference ref, GlobalSignalNumber gsn, Signal* signal, Uint32 length, JobBufferLevel jbuf, LinearSectionPtr ptr[3], Uint32 noOfSections); int recvSignalUtilReq(Signal* signal, Uint32 returnCode); void completeSubStartReq(Signal* signal, Uint32 ptrI, Uint32 returnCode); void completeSubStopReq(Signal* signal, Uint32 ptrI, Uint32 returnCode); void completeSubRemoveReq(Signal* signal, Uint32 ptrI, Uint32 returnCode); void dropEvent_sendReply(Signal* signal, OpDropEventPtr evntRecPtr); void createEvent_RT_USER_CREATE(Signal* signal, OpCreateEventPtr evntRecPtr); void createEventComplete_RT_USER_CREATE(Signal* signal, OpCreateEventPtr evntRecPtr); void createEvent_RT_USER_GET(Signal* signal, OpCreateEventPtr evntRecPtr); void createEventComplete_RT_USER_GET(Signal* signal, OpCreateEventPtr evntRecPtr); void createEvent_RT_DICT_AFTER_GET(Signal* signal, OpCreateEventPtr evntRecPtr); void createEvent_nodeFailCallback(Signal* signal, Uint32 eventRecPtrI, Uint32 returnCode); void createEvent_sendReply(Signal* signal, OpCreateEventPtr evntRecPtr, LinearSectionPtr *ptr = NULL, int noLSP = 0); void prepareTransactionEventSysTable (Callback *c, Signal* signal, Uint32 senderData, UtilPrepareReq::OperationTypeValue prepReq); void prepareUtilTransaction(Callback *c, Signal* signal, Uint32 senderData, Uint32 tableId, const char *tableName, UtilPrepareReq::OperationTypeValue prepReq, Uint32 noAttr, Uint32 attrIds[], const char *attrNames[]); void executeTransEventSysTable(Callback *c, Signal *signal, const Uint32 ptrI, sysTab_NDBEVENTS_0& m_eventRec, const Uint32 prepareId, UtilPrepareReq::OperationTypeValue prepReq); void executeTransaction(Callback *c, Signal* signal, Uint32 senderData, Uint32 prepareId, Uint32 noAttr, LinearSectionPtr headerPtr, LinearSectionPtr dataPtr); void parseReadEventSys(Signal *signal, sysTab_NDBEVENTS_0& m_eventRec); // create trigger void createTrigger_recvReply(Signal* signal, const CreateTrigConf* conf, const CreateTrigRef* ref); void createTrigger_slavePrepare(Signal* signal, OpCreateTriggerPtr opPtr); void createTrigger_masterSeize(Signal* signal, OpCreateTriggerPtr opPtr); void createTrigger_slaveCreate(Signal* signal, OpCreateTriggerPtr opPtr); void createTrigger_toAlterTrigger(Signal* signal, OpCreateTriggerPtr opPtr); void createTrigger_fromAlterTrigger(Signal* signal, OpCreateTriggerPtr opPtr); void createTrigger_slaveCommit(Signal* signal, OpCreateTriggerPtr opPtr); void createTrigger_slaveAbort(Signal* signal, OpCreateTriggerPtr opPtr); void createTrigger_sendSlaveReq(Signal* signal, OpCreateTriggerPtr opPtr); void createTrigger_sendReply(Signal* signal, OpCreateTriggerPtr opPtr, bool); // drop trigger void dropTrigger_recvReply(Signal* signal, const DropTrigConf* conf, const DropTrigRef* ref); void dropTrigger_slavePrepare(Signal* signal, OpDropTriggerPtr opPtr); void dropTrigger_toAlterTrigger(Signal* signal, OpDropTriggerPtr opPtr); void dropTrigger_fromAlterTrigger(Signal* signal, OpDropTriggerPtr opPtr); void dropTrigger_slaveCommit(Signal* signal, OpDropTriggerPtr opPtr); void dropTrigger_slaveAbort(Signal* signal, OpDropTriggerPtr opPtr); void dropTrigger_sendSlaveReq(Signal* signal, OpDropTriggerPtr opPtr); void dropTrigger_sendReply(Signal* signal, OpDropTriggerPtr opPtr, bool); // alter trigger void alterTrigger_recvReply(Signal* signal, const AlterTrigConf* conf, const AlterTrigRef* ref); void alterTrigger_slavePrepare(Signal* signal, OpAlterTriggerPtr opPtr); void alterTrigger_toCreateLocal(Signal* signal, OpAlterTriggerPtr opPtr); void alterTrigger_fromCreateLocal(Signal* signal, OpAlterTriggerPtr opPtr); void alterTrigger_toDropLocal(Signal* signal, OpAlterTriggerPtr opPtr); void alterTrigger_fromDropLocal(Signal* signal, OpAlterTriggerPtr opPtr); void alterTrigger_slaveCommit(Signal* signal, OpAlterTriggerPtr opPtr); void alterTrigger_slaveAbort(Signal* signal, OpAlterTriggerPtr opPtr); void alterTrigger_sendSlaveReq(Signal* signal, OpAlterTriggerPtr opPtr); void alterTrigger_sendReply(Signal* signal, OpAlterTriggerPtr opPtr, bool); // support void getTableKeyList(TableRecordPtr tablePtr, AttributeList& list); void getIndexAttr(TableRecordPtr indexPtr, Uint32 itAttr, Uint32* id); void getIndexAttrList(TableRecordPtr indexPtr, Attribu
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -