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

📄 dbtc.hpp

📁 mysql-5.0.22.tar.gz源码包
💻 HPP
📖 第 1 页 / 共 5 页
字号:
/* 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 */#ifndef DBTC_H#define DBTC_H#include <ndb_limits.h>#include <pc.hpp>#include <SimulatedBlock.hpp>#include <DLHashTable.hpp>#include <SLList.hpp>#include <DLList.hpp>#include <DLFifoList.hpp>#include <DataBuffer.hpp>#include <Bitmask.hpp>#include <AttributeList.hpp>#include <signaldata/AttrInfo.hpp>#include <signaldata/LqhTransConf.hpp>#include <signaldata/LqhKey.hpp>#include <signaldata/TrigAttrInfo.hpp>#include <signaldata/TcIndx.hpp>#include <signaldata/TransIdAI.hpp>#include <signaldata/EventReport.hpp>#include <trigger_definitions.h>#include <SignalCounter.hpp>#ifdef DBTC_C/* * 2.2 LOCAL SYMBOLS * ----------------- */#define Z8NIL 255#define ZAPI_CONNECT_FILESIZE 20#define ZATTRBUF_FILESIZE 4000#define ZCLOSED 2#define ZCOMMITING 0			 /* VALUE FOR TRANSTATUS        */#define ZCOMMIT_SETUP 2#define ZCONTINUE_ABORT_080 4#define ZDATABUF_FILESIZE 4000#define ZGCP_FILESIZE 10#define ZINBUF_DATA_LEN 24	 /* POSITION OF 'DATA LENGHT'-VARIABLE. */#define ZINBUF_NEXT 27 		 /* POSITION OF 'NEXT'-VARIABLE.        */#define ZINBUF_PREV 26 		 /* POSITION OF 'PREVIOUS'-VARIABLE.    */#define ZINTSPH1 1#define ZINTSPH2 2#define ZINTSPH3 3#define ZINTSPH6 6#define ZLASTPHASE 255#define ZMAX_DATA_IN_LQHKEYREQ 12#define ZNODEBUF_FILESIZE 2000#define ZNR_OF_SEIZE 10#define ZSCANREC_FILE_SIZE 100#define ZSCAN_FRAGREC_FILE_SIZE 400#define ZSCAN_OPREC_FILE_SIZE 400#define ZSEND_ATTRINFO 0#define ZSPH1 1#define ZTABREC_FILESIZE 16#define ZTAKE_OVER_ACTIVE 1#define ZTAKE_OVER_IDLE 0#define ZTC_CONNECT_FILESIZE 200#define ZTCOPCONF_SIZE 6// ----------------------------------------// Error Codes for Scan// ----------------------------------------#define ZNO_CONCURRENCY_ERROR 242#define ZTOO_HIGH_CONCURRENCY_ERROR 244#define ZNO_SCANREC_ERROR 245#define ZNO_FRAGMENT_ERROR 246#define ZSCAN_AI_LEN_ERROR 269#define ZSCAN_LQH_ERROR 270#define ZSCAN_FRAG_LQH_ERROR 274#define ZSCANTIME_OUT_ERROR 296#define ZSCANTIME_OUT_ERROR2 297// ----------------------------------------// Error Codes for transactions// ----------------------------------------#define ZSTATE_ERROR 202#define ZLENGTH_ERROR 207 // Also Scan#define ZERO_KEYLEN_ERROR 208#define ZSIGNAL_ERROR 209#define ZGET_ATTRBUF_ERROR 217 // Also Scan#define ZGET_DATAREC_ERROR 218#define ZMORE_AI_IN_TCKEYREQ_ERROR 220#define ZCOMMITINPROGRESS 230#define ZROLLBACKNOTALLOWED 232#define ZNO_FREE_TC_CONNECTION 233 // Also Scan#define ZABORTINPROGRESS 237#define ZPREPAREINPROGRESS 238#define ZWRONG_SCHEMA_VERSION_ERROR 241 // Also Scan#define ZSCAN_NODE_ERROR 250#define ZTRANS_STATUS_ERROR 253#define ZTIME_OUT_ERROR 266#define ZSIMPLE_READ_WITHOUT_AI 271#define ZNO_AI_WITH_UPDATE 272#define ZSEIZE_API_COPY_ERROR 275#define ZSCANINPROGRESS 276#define ZABORT_ERROR 277#define ZCOMMIT_TYPE_ERROR 278#define ZNO_FREE_TC_MARKER 279#define ZNODE_SHUTDOWN_IN_PROGRESS 280#define ZCLUSTER_SHUTDOWN_IN_PROGRESS 281#define ZWRONG_STATE 282#define ZCLUSTER_IN_SINGLEUSER_MODE 299#define ZDROP_TABLE_IN_PROGRESS 283#define ZNO_SUCH_TABLE 284#define ZUNKNOWN_TABLE_ERROR 285#define ZNODEFAIL_BEFORE_COMMIT 286#define ZINDEX_CORRUPT_ERROR 287// ----------------------------------------// Seize error// ----------------------------------------#define ZNO_FREE_API_CONNECTION 219#define ZSYSTEM_NOT_STARTED_ERROR 203// ----------------------------------------// Release errors// ----------------------------------------#define ZINVALID_CONNECTION 229#define ZNOT_FOUND 626#define ZALREADYEXIST 630#define ZINCONSISTENTHASHINDEX 892#define ZNOTUNIQUE 893#define ZINVALID_KEY 290#endifclass Dbtc: public SimulatedBlock {public:  enum ConnectionState {    CS_CONNECTED = 0,    CS_DISCONNECTED = 1,    CS_STARTED = 2,    CS_RECEIVING = 3,    CS_PREPARED = 4,    CS_START_PREPARING = 5,    CS_REC_PREPARING = 6,    CS_RESTART = 7,    CS_ABORTING = 8,    CS_COMPLETING = 9,    CS_COMPLETE_SENT = 10,    CS_PREPARE_TO_COMMIT = 11,    CS_COMMIT_SENT = 12,    CS_START_COMMITTING = 13,    CS_COMMITTING = 14,    CS_REC_COMMITTING = 15,    CS_WAIT_ABORT_CONF = 16,    CS_WAIT_COMPLETE_CONF = 17,    CS_WAIT_COMMIT_CONF = 18,    CS_FAIL_ABORTING = 19,    CS_FAIL_ABORTED = 20,    CS_FAIL_PREPARED = 21,    CS_FAIL_COMMITTING = 22,    CS_FAIL_COMMITTED = 23,    CS_FAIL_COMPLETED = 24,    CS_START_SCAN = 25  };  enum OperationState {    OS_CONNECTING_DICT = 0,    OS_CONNECTED = 1,    OS_OPERATING = 2,    OS_PREPARED = 3,    OS_COMMITTING = 4,    OS_COMMITTED = 5,    OS_COMPLETING = 6,    OS_COMPLETED = 7,    OS_RESTART = 8,    OS_ABORTING = 9,    OS_ABORT_SENT = 10,    OS_TAKE_OVER = 11,    OS_WAIT_DIH = 12,    OS_WAIT_KEYINFO = 13,    OS_WAIT_ATTR = 14,    OS_WAIT_COMMIT_CONF = 15,    OS_WAIT_ABORT_CONF = 16,    OS_WAIT_COMPLETE_CONF = 17,    OS_WAIT_SCAN = 18  };  enum AbortState {    AS_IDLE = 0,    AS_ACTIVE = 1  };  enum HostState {    HS_ALIVE = 0,    HS_DEAD = 1  };  enum LqhTransState {    LTS_IDLE = 0,    LTS_ACTIVE = 1  };  enum FailState {    FS_IDLE = 0,    FS_LISTENING = 1,    FS_COMPLETING = 2  };  enum SystemStartState {    SSS_TRUE = 0,    SSS_FALSE = 1  };  enum TimeOutCheckState {    TOCS_TRUE = 0,    TOCS_FALSE = 1  };  enum ReturnSignal {    RS_NO_RETURN = 0,    RS_TCKEYCONF = 1,    RS_TC_COMMITCONF = 3,    RS_TCROLLBACKCONF = 4,    RS_TCROLLBACKREP = 5  };    enum IndexOperationState {    IOS_NOOP = 0,    IOS_INDEX_ACCESS = 1,    IOS_INDEX_ACCESS_WAIT_FOR_TCKEYCONF = 2,    IOS_INDEX_ACCESS_WAIT_FOR_TRANSID_AI = 3,    IOS_INDEX_OPERATION = 4  };    enum IndexState {    IS_BUILDING = 0,          // build in progress, start state at create    IS_ONLINE = 1             // ready to use  };    /**--------------------------------------------------------------------------   * LOCAL SYMBOLS PER 'SYMBOL-VALUED' VARIABLE   *   *   *            NSYMB ZAPI_CONNECT_FILESIZE = 20   *            NSYMB ZTC_CONNECT_FILESIZE  = 200   *            NSYMB ZHOST_FILESIZE        = 16     *            NSYMB ZDATABUF_FILESIZE     = 4000   *            NSYMB ZATTRBUF_FILESIZE     = 4000    *            NSYMB ZGCP_FILESIZE         = 10    *   *   *  ABORTED CODES   *  TPHASE    NSYMB ZSPH1 = 1   *            NSYMB ZLASTPHASE = 255   *   *    * LQH_TRANS   *       NSYMB ZTRANS_ABORTED = 1    *       NSYMB ZTRANS_PREPARED = 2    *       NSYMB ZTRANS_COMMITTED = 3   *       NSYMB ZCOMPLETED_LQH_TRANS = 4   *       NSYMB ZTRANS_COMPLETED = 5    *   *    * TAKE OVER    *       NSYMB ZTAKE_OVER_IDLE = 0   *       NSYMB ZTAKE_OVER_ACTIVE = 1   *    * ATTRBUF (ATTRBUF_RECORD)   *          NSYMB ZINBUF_DATA_LEN = 24   *          NSYMB ZINBUF_NEXTFREE = 25    (NOT USED )   *          NSYMB ZINBUF_PREV = 26      *          NSYMB ZINBUF_NEXT = 27       -------------------------------------------------------------------------*/  /*    2.3 RECORDS AND FILESIZES    -------------------------  */  /* **************************************************************** */  /* ---------------------------------------------------------------- */  /* ------------------- TRIGGER AND INDEX DATA --------------------- */  /* ---------------------------------------------------------------- */  /* **************************************************************** */  /* ********* DEFINED TRIGGER DATA ********* */  /* THIS RECORD FORMS LISTS OF ACTIVE        */  /* TRIGGERS FOR EACH TABLE.                 */  /* THE RECORDS ARE MANAGED BY A TRIGGER     */  /* POOL WHERE A TRIGGER RECORD IS SEIZED    */  /* WHEN A TRIGGER IS ACTIVATED AND RELEASED */  /* WHEN THE TRIGGER IS DEACTIVATED.         */  /* **************************************** */  struct TcDefinedTriggerData {    /**     * Trigger id, used to identify the trigger     */    UintR triggerId;        /**     * Trigger type, defines what the trigger is used for     */    TriggerType::Value triggerType;        /**     * Trigger type, defines what the trigger is used for     */    TriggerEvent::Value triggerEvent;        /**     * Attribute mask, defines what attributes are to be monitored     * Can be seen as a compact representation of SQL column name list     */    Bitmask<MAXNROFATTRIBUTESINWORDS> attributeMask;    /**     * Next ptr (used in pool/list)     */    union {      Uint32 nextPool;      Uint32 nextList;    };        /**     * Index id, only used by secondary_index triggers.  This is same as     * index table id in DICT.     **/    Uint32 indexId;    /**     * Prev pointer (used in list)     */    Uint32 prevList;    inline void print(NdbOut & s) const {       s << "[DefinedTriggerData = " << triggerId << "]";     }  };  typedef Ptr<TcDefinedTriggerData> DefinedTriggerPtr;    /**   * Pool of trigger data record   */  ArrayPool<TcDefinedTriggerData> c_theDefinedTriggerPool;  /**   * The list of active triggers   */    DLList<TcDefinedTriggerData> c_theDefinedTriggers;  typedef DataBuffer<11> AttributeBuffer;   AttributeBuffer::DataBufferPool c_theAttributeBufferPool;  UintR c_transactionBufferSpace;  /* ********** FIRED TRIGGER DATA ********** */  /* THIS RECORD FORMS LISTS OF FIRED         */  /* TRIGGERS FOR A TRANSACTION.              */  /* THE RECORDS ARE MANAGED BY A TRIGGER     */  /* POOL WHERE A TRIGGER RECORD IS SEIZED    */  /* WHEN A TRIGGER IS ACTIVATED AND RELEASED */  /* WHEN THE TRIGGER IS DEACTIVATED.         */  /* **************************************** */  struct TcFiredTriggerData {

⌨️ 快捷键说明

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