📄 dbdict.hpp
字号:
m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } void setError(const DropIndxRef* ref) { m_lastError = AlterIndxRef::NoError; if (ref != 0) { m_lastError = (AlterIndxRef::ErrorCode)ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } void setError(const BuildIndxRef* ref) { m_lastError = AlterIndxRef::NoError; if (ref != 0) { m_lastError = (AlterIndxRef::ErrorCode)ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = 0; m_errorNode = 0; } } } void setError(const CreateTrigRef* ref) { m_lastError = AlterIndxRef::NoError; if (ref != 0) { m_lastError = (AlterIndxRef::ErrorCode)ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } void setError(const DropTrigRef* ref) { m_lastError = AlterIndxRef::NoError; if (ref != 0) { m_lastError = (AlterIndxRef::ErrorCode)ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } }; typedef Ptr<OpAlterIndex> OpAlterIndexPtr; /** * Operation record for build index. */ struct OpBuildIndex : OpRecordCommon { // original request plus buffer for attribute lists BuildIndxReq m_request; AttributeList m_attrList; AttributeList m_tableKeyList; // coordinator DICT Uint32 m_coordinatorRef; bool m_isMaster; // state info BuildIndxReq::RequestType m_requestType; Uint32 m_requestFlag; Uint32 m_constrTriggerId; // error info BuildIndxRef::ErrorCode m_lastError; BuildIndxRef::ErrorCode m_errorCode; Uint32 m_errorLine; Uint32 m_errorNode; // counters SignalCounter m_signalCounter; // ctor OpBuildIndex() { memset(&m_request, 0, sizeof(m_request)); m_coordinatorRef = 0; m_requestType = BuildIndxReq::RT_UNDEFINED; m_requestFlag = 0; m_lastError = BuildIndxRef::NoError; m_errorCode = BuildIndxRef::NoError; m_errorLine = 0; m_errorNode = 0; } void save(const BuildIndxReq* req) { m_request = *req; m_requestType = req->getRequestType(); m_requestFlag = req->getRequestFlag(); } bool hasLastError() { return m_lastError != BuildIndxRef::NoError; } bool hasError() { return m_errorCode != BuildIndxRef::NoError; } void setError(const BuildIndxRef* ref) { m_lastError = BuildIndxRef::NoError; if (ref != 0) { m_lastError = ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = 0; m_errorNode = 0; } } } void setError(const AlterIndxRef* ref) { m_lastError = BuildIndxRef::NoError; if (ref != 0) { m_lastError = (BuildIndxRef::ErrorCode)ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } void setError(const CreateTrigRef* ref) { m_lastError = BuildIndxRef::NoError; if (ref != 0) { m_lastError = (BuildIndxRef::ErrorCode)ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } void setError(const DropTrigRef* ref) { m_lastError = BuildIndxRef::NoError; if (ref != 0) { m_lastError = (BuildIndxRef::ErrorCode)ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } }; typedef Ptr<OpBuildIndex> OpBuildIndexPtr; /** * Operation record for create trigger. */ struct OpCreateTrigger : OpRecordCommon { // original request (trigger id will be added) CreateTrigReq m_request; char m_triggerName[MAX_TAB_NAME_SIZE]; // coordinator DICT Uint32 m_coordinatorRef; bool m_isMaster; // state info CreateTrigReq::RequestType m_requestType; Uint32 m_requestFlag; // error info CreateTrigRef::ErrorCode m_lastError; CreateTrigRef::ErrorCode m_errorCode; Uint32 m_errorLine; Uint32 m_errorNode; // counters SignalCounter m_signalCounter; // ctor OpCreateTrigger() { memset(&m_request, 0, sizeof(m_request)); m_coordinatorRef = 0; m_requestType = CreateTrigReq::RT_UNDEFINED; m_requestFlag = 0; m_lastError = CreateTrigRef::NoError; m_errorCode = CreateTrigRef::NoError; m_errorLine = 0; m_errorNode = 0; } void save(const CreateTrigReq* req) { m_request = *req; m_requestType = req->getRequestType(); m_requestFlag = req->getRequestFlag(); } bool hasLastError() { return m_lastError != CreateTrigRef::NoError; } bool hasError() { return m_errorCode != CreateTrigRef::NoError; } void setError(const CreateTrigRef* ref) { m_lastError = CreateTrigRef::NoError; if (ref != 0) { m_lastError = ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } void setError(const AlterTrigRef* ref) { m_lastError = CreateTrigRef::NoError; if (ref != 0) { m_lastError = (CreateTrigRef::ErrorCode)ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } }; typedef Ptr<OpCreateTrigger> OpCreateTriggerPtr; /** * Operation record for drop trigger. */ struct OpDropTrigger : OpRecordCommon { // original request DropTrigReq m_request; // coordinator DICT Uint32 m_coordinatorRef; bool m_isMaster; // state info DropTrigReq::RequestType m_requestType; Uint32 m_requestFlag; // error info DropTrigRef::ErrorCode m_lastError; DropTrigRef::ErrorCode m_errorCode; Uint32 m_errorLine; Uint32 m_errorNode; // counters SignalCounter m_signalCounter; // ctor OpDropTrigger() { memset(&m_request, 0, sizeof(m_request)); m_coordinatorRef = 0; m_requestType = DropTrigReq::RT_UNDEFINED; m_requestFlag = 0; m_lastError = DropTrigRef::NoError; m_errorCode = DropTrigRef::NoError; m_errorLine = 0; m_errorNode = 0; } void save(const DropTrigReq* req) { m_request = *req; m_requestType = req->getRequestType(); m_requestFlag = req->getRequestFlag(); } bool hasLastError() { return m_lastError != DropTrigRef::NoError; } bool hasError() { return m_errorCode != DropTrigRef::NoError; } void setError(const DropTrigRef* ref) { m_lastError = DropTrigRef::NoError; if (ref != 0) { m_lastError = ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } void setError(const AlterTrigRef* ref) { m_lastError = DropTrigRef::NoError; if (ref != 0) { m_lastError = (DropTrigRef::ErrorCode)ref->getErrorCode(); if (! hasError()) { m_errorCode = m_lastError; m_errorLine = ref->getErrorLine(); m_errorNode = ref->getErrorNode(); } } } }; typedef Ptr<OpDropTrigger> OpDropTriggerPtr; /** * Operation record for alter trigger. */ struct OpAlterTrigger : OpRecordCommon { // original request AlterTrigReq m_request; // nodes participating in operation NdbNodeBitmask m_nodes; // coordinator DICT Uint32 m_coordinatorRef; bool m_isMaster; // state info AlterTrigReq::RequestType m_requestType; Uint32 m_requestFlag; // error info AlterTrigRef::ErrorCode m_lastError; AlterTrigRef::ErrorCode m_errorCode; Uint32 m_errorLine; Uint32 m_errorNode; // counters SignalCounter m_signalCounter; // ctor OpAlterTrigger() { memset(&m_request, 0, sizeof(m_request)); m_coordinatorRef = 0; m_requestType = AlterTrigReq::RT_UNDEFINED; m_requestFlag = 0; m_lastError = AlterTrigRef::NoError; m_errorCode = AlterTrigRef::NoError; m_errorLine = 0; m_errorNode = 0; } void save(const AlterTrigReq* req) { m_request = *req; m_requestType = req->getRequestType(); m_requestFlag = req->getRequestFlag(); } bool hasLastError() { return m_lastError != AlterTrigRef::NoError; } bool hasError() { return m_errorCode != AlterTrigRef::NoError; } void setError(const AlterTrigRef* 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 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( 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_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<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; /* * Master DICT can be locked in 2 mutually exclusive ways: * * 1) for schema ops, via operation records * 2) against schema ops, via a lock queue
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -