⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbdict.hpp

📁 mysql-5.0.27版本源码包
💻 HPP
📖 第 1 页 / 共 5 页
字号:
   *   * Current use of 2) is by a starting node, to prevent schema ops   * until started.  The ops are refused (BlockState != BS_IDLE),   * not queued.   *   * Master failure is not handled, in node start case the starting   * node will crash too anyway.  Use lock table in future..   *   * The lock queue is "serial" but other behaviour is possible   * by checking lock types e.g. to allow parallel node starts.   *   * Checking release of last op record is not convenient with   * current structure (5.0).  Instead we poll via continueB.   *   * XXX only table ops check BlockState   */  struct DictLockType;  friend struct DictLockType;  struct DictLockType {    DictLockReq::LockType lockType;    BlockState blockState;    const char* text;  };  struct DictLockRecord;  friend struct DictLockRecord;  struct DictLockRecord {    DictLockReq req;    const DictLockType* lt;    bool locked;  union {    Uint32 nextPool;    Uint32 nextList;    };    Uint32 prevList;  };  typedef Ptr<DictLockRecord> DictLockPtr;  ArrayPool<DictLockRecord> c_dictLockPool;  DLFifoList<DictLockRecord> c_dictLockQueue;  bool c_dictLockPoll;  static const DictLockType* getDictLockType(Uint32 lockType);  void sendDictLockInfoEvent(Uint32 pollCount);  void sendDictLockInfoEvent(DictLockPtr lockPtr, const char* text);  // check if any schema op exists (conflicting with dict lock)  bool hasDictLockSchemaOp();  void checkDictLockQueue(Signal* signal, bool poll);  void sendDictLockConf(Signal* signal, DictLockPtr lockPtr);  void sendDictLockRef(Signal* signal, DictLockReq req, Uint32 errorCode);  // control polling i.e. continueB loop  void setDictLockPoll(Signal* signal, bool on, Uint32 pollCount);  // NF handling  void removeStaleDictLocks(Signal* signal, const Uint32* theFailedNodes);  // 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);  // 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, AttributeList& list);  void getIndexAttrMask(TableRecordPtr indexPtr, AttributeMask& mask);  /* ------------------------------------------------------------ */  // Initialisation  /* ------------------------------------------------------------ */  void initCommonData();  void initRecords();  void initConnectRecord();  void initRetrieveRecord(Signal*, Uint32, Uint32 returnCode);  void initSchemaRecord();  void initRestartRecord();  void initSendSchemaRecord();  void initReadTableRecord();  void initWriteTableRecord();  void initReadSchemaRecord();  void initWriteSchemaRecord();  void initNodeRecords();  void initTableRecords();  void initialiseTableRecord(TableRecordPtr tablePtr);  void initTriggerRecords();  void initialiseTriggerRecord(TriggerRecordPtr triggerPtr);  void initPageRecords();  Uint32 getFsConnRecord();  bool getIsFailed(Uint32 nodeId) const;  void dropTable_backup_mutex_locked(Signal* signal, Uint32, Uint32);  void dropTableRef(Signal * signal, DropTableReq *, DropTableRef::ErrorCode);  void printTables(); // For debugging only  int handleAlterTab(AlterTabReq * req,		     CreateTableRecord * regAlterTabPtr,		     TableRecordPtr origTablePtr,		     TableRecordPtr newTablePtr);  void revertAlterTable(Signal * signal, 			Uint32 changeMask, 			Uint32 tableId,			CreateTableRecord * regAlterTabPtr);  void alterTable_backup_mutex_locked(Signal* signal, Uint32, Uint32);  void alterTableRef(Signal * signal, 		     AlterTableReq *, AlterTableRef::ErrorCode, 		     ParseDictTabInfoRecord* parseRecord = NULL);  void alterTabRef(Signal * signal, 		   AlterTabReq *, AlterTableRef::ErrorCode, 		   ParseDictTabInfoRecord* parseRecord = NULL);  void alterTab_writeSchemaConf(Signal* signal, 				Uint32 callbackData,				Uint32 returnCode);  void alterTab_writeTableConf(Signal* signal, 			       Uint32 callbackData,			       Uint32 returnCode);  void prepDropTab_nextStep(Signal* signal, DropTableRecordPtr);  void prepDropTab_complete(Signal* signal, DropTableRecordPtr);  void prepDropTab_writeSchemaConf(Signal* signal, Uint32 dropTabPtrI, Uint32);  void dropTab_localDROP_TAB_CONF(Signal* signal);  void dropTab_nextStep(Signal* signal, DropTableRecordPtr);  void dropTab_complete(Signal* signal, Uint32 dropTabPtrI, Uint32);  void dropTab_writeSchemaConf(Signal* signal, Uint32 dropTabPtrI, Uint32);  void createTab_prepare(Signal* signal, CreateTabReq * req);  void createTab_writeSchemaConf1(Signal* signal, Uint32 callback, Uint32);  void createTab_writeTableConf(Signal* signal, Uint32 callbackData, Uint32);  void createTab_dih(Signal*, CreateTableRecordPtr, 		     SegmentedSectionPtr, Callback*);  void createTab_dihComplete(Signal* signal, Uint32 callbackData, Uint32);  void createTab_startLcpMutex_locked(Signal* signal, Uint32, Uint32);  void createTab_startLcpMutex_unlocked(Signal* signal, Uint32, Uint32);    void createTab_commit(Signal* signal, CreateTabReq * req);    void createTab_writeSchemaConf2(Signal* signal, Uint32 callbackData, Uint32);  void createTab_alterComplete(Signal*, Uint32 callbackData, Uint32);  void createTab_drop(Signal* signal, CreateTabReq * req);  void createTab_dropComplete(Signal* signal, Uint32 callbackData, Uint32);  void createTab_reply(Signal* signal, CreateTableRecordPtr, Uint32 nodeId);  void alterTab_activate(Signal*, CreateTableRecordPtr, Callback*);    void restartCreateTab(Signal*, Uint32, const SchemaFile::TableEntry *, bool);  void restartCreateTab_readTableConf(Signal* signal, Uint32 callback, Uint32);  void restartCreateTab_writeTableConf(Signal* signal, Uint32 callback, Uint32);  void restartCreateTab_dihComplete(Signal* signal, Uint32 callback, Uint32);  void restartCreateTab_activateComplete(Signal*, Uint32 callback, Uint32);  void restartDropTab(Signal* signal, Uint32 tableId);  void restartDropTab_complete(Signal*, Uint32 callback, Uint32);    void restart_checkSchemaStatusComplete(Signal*, Uint32 callback, Uint32);  void restart_writeSchemaConf(Signal*, Uint32 callbackData, Uint32);  void masterRestart_checkSchemaStatusComplete(Signal*, Uint32, Uint32);  void sendSchemaComplete(Signal*, Uint32 callbackData, Uint32);  // global metadata support  friend class MetaData;  int getMetaTablePtr(TableRecordPtr& tablePtr, Uint32 tableId, Uint32 tableVersion);  int getMetaTable(MetaData::Table& table, Uint32 tableId, Uint32 tableVersion);  int getMetaTable(MetaData::Table& table, const char* tableName);  int getMetaAttribute(MetaData::Attribute& attribute, const MetaData::Table& table, Uint32 attributeId);  int getMetaAttribute(MetaData::Attribute& attribute, const MetaData::Table& table, const char* attributeName);};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -