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

📄 dbtup.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 DBTUP_H#define DBTUP_H#include <pc.hpp>#include <SimulatedBlock.hpp>#include <ndb_limits.h>#include <trigger_definitions.h>#include <ArrayList.hpp>#include <AttributeHeader.hpp>#include <Bitmask.hpp>#include <signaldata/TupKey.hpp>#include <signaldata/CreateTrig.hpp>#include <signaldata/DropTrig.hpp>#include <signaldata/TrigAttrInfo.hpp>#include <signaldata/BuildIndx.hpp>#define ZWORDS_ON_PAGE 8192          /* NUMBER OF WORDS ON A PAGE.      */#define ZATTRBUF_SIZE 32             /* SIZE OF ATTRIBUTE RECORD BUFFER */#define ZMIN_PAGE_LIMIT_TUPKEYREQ 5#define ZTUP_VERSION_BITS 15#ifdef DBTUP_C//------------------------------------------------------------------// Jam Handling://// When DBTUP reports lines through jam in the trace files it has to// be interpreted. 4024 means as an example line 24 in DbtupCommit.cpp// Thus 4000 is added to the line number beacuse it is located in the// file DbtupCommit.cpp. The following is the exhaustive list of the// added value in the various files. ndbrequire, ptrCheckGuard still// only reports the line number in the file it currently is located in.// // DbtupExecQuery.cpp         0// DbtupBuffer.cpp         2000// DbtupRoutines.cpp       3000// DbtupCommit.cpp         5000// DbtupFixAlloc.cpp       6000// DbtupTrigger.cpp        7000// DbtupAbort.cpp          9000// DbtupLCP.cpp           10000// DbtupUndoLog.cpp       12000// DbtupPageMap.cpp       14000// DbtupPagMan.cpp        16000// DbtupStoredProcDef.cpp 18000// DbtupMeta.cpp          20000// DbtupTabDesMan.cpp     22000// DbtupGen.cpp           24000// DbtupSystemRestart.cpp 26000// DbtupIndex.cpp         28000// DbtupDebug.cpp         30000// DbtupScan.cpp          32000//------------------------------------------------------------------/*2.2 LOCAL SYMBOLS-----------------*//* ---------------------------------------------------------------- *//*       S I Z E              O F               R E C O R D S       *//* ---------------------------------------------------------------- */#define ZNO_OF_ATTRBUFREC 10000             /* SIZE   OF ATTRIBUTE INFO FILE   */#define ZNO_OF_CONCURRENT_OPEN_OP 40        /* NUMBER OF CONCURRENT OPENS      */#define ZNO_OF_CONCURRENT_WRITE_OP 80       /* NUMBER OF CONCURRENT DISK WRITES*/#define ZNO_OF_FRAGOPREC 20                 /* NUMBER OF CONCURRENT ADD FRAG.  */#define ZNO_OF_LCP_REC 10                   /* NUMBER OF CONCURRENT CHECKPOINTS*/#define TOT_PAGE_RECORD_SPACE 262144        /* SIZE OF PAGE RECORD FILE.       */#define ZNO_OF_PAGE TOT_PAGE_RECORD_SPACE/ZWORDS_ON_PAGE   #define ZNO_OF_PAGE_RANGE_REC 128           /* SIZE OF PAGE RANGE FILE         */#define ZNO_OF_PARALLELL_UNDO_FILES 16      /* NUMBER OF PARALLEL UNDO FILES   */#define ZNO_OF_RESTART_INFO_REC 10          /* MAXIMUM PARALLELL RESTART INFOS */		    /* 24 SEGMENTS WITH 8 PAGES IN EACH*/                    /* PLUS ONE UNDO BUFFER CACHE      */// Undo record identifiers are 32-bits with page index 13-bits#define ZUNDO_RECORD_ID_PAGE_INDEX 13	   /* 13 BITS = 8192 WORDS/PAGE	      */#define ZUNDO_RECORD_ID_PAGE_INDEX_MASK (ZWORDS_ON_PAGE - 1) /* 1111111111111 */// Trigger constants#define ZDEFAULT_MAX_NO_TRIGGERS_PER_TABLE 16/* ---------------------------------------------------------------- */// VARIABLE NUMBERS OF PAGE_WORD, UNDO_WORD AND LOGIC_WORD FOR// COMMUNICATION WITH FILE SYSTEM/* ---------------------------------------------------------------- */#define ZBASE_ADDR_PAGE_WORD 1              /* BASE ADDRESS OF PAGE_WORD VAR   */#define ZBASE_ADDR_UNDO_WORD 2              /* BASE ADDRESS OF UNDO_WORD VAR   */#define ZBASE_ADDR_LOGIC_WORD 3             /* BASE ADDRESS OF LOGIC_WORD VAR  *//* ---------------------------------------------------------------- */// NUMBER OF PAGES SENT TO DISK IN DATA BUFFER AND UNDO BUFFER WHEN// OPTIMUM PERFORMANCE IS ACHIEVED./* ---------------------------------------------------------------- */#define ZUB_SEGMENT_SIZE 8                  /* SEGMENT SIZE OF UNDO BUFFER     */#define ZDB_SEGMENT_SIZE 8                  /* SEGMENT SIZE OF DATA BUFFER     *//* ---------------------------------------------------------------- *//* A ATTRIBUTE MAY BE NULL, DYNAMIC OR NORMAL. A NORMAL ATTRIBUTE   *//* IS A ATTRIBUTE THAT IS NOT NULL OR DYNAMIC. A NULL ATTRIBUTE     *//* MAY HAVE NO VALUE. A DYNAMIC ATTRIBUTE IS A NULL ATTRIBUTE THAT  *//* DOES NOT HAVE TO BE A MEMBER OF EVERY TUPLE I A CERTAIN TABLE.   *//* ---------------------------------------------------------------- *//** * #defines moved into include/kernel/Interpreter.hpp */#define ZMAX_REGISTER 21#define ZINSERT_DELETE 0/* ---------------------------------------------------------------- *//* THE MINIMUM SIZE OF AN 'EMPTY' TUPLE HEADER IN R-WORDS           *//* ---------------------------------------------------------------- */#define ZTUP_HEAD_MINIMUM_SIZE 2          /* THE TUPLE HEADER FIELD 'SIZE OF NULL ATTR. FIELD' SPECIFYES    */          /* THE SIZE OF THE TUPLE HEADER FIELD 'NULL ATTR. FIELD'.         */          /* THE TUPLE HEADER FIELD 'TYPE' SPECIFYES THE TYPE OF THE TUPLE  */          /* HEADER.                                                        */                               /* TUPLE ATTRIBUTE INDEX CLUSTERS, ATTRIBUTE */                               /* CLUSTERS AND A DYNAMIC ATTRIBUTE HEADER.  */                               /* IT MAY ALSO CONTAIN SHORT ATTRIBUTES AND  */                               /* POINTERS TO LONG ATTRIBUTE HEADERS.       */                               /* TUPLE ATTRIBUTE INDEX CLUSTERS, ATTRIBUTE */                               /* CLUSTERS AND A DYNAMIC ATTRIBUTE HEADER.  */#define ZTH_TYPE3 2            /* TUPLE HEADER THAT MAY HAVE A POINTER TO   */                               /* A DYNAMIC ATTRIBUTE HEADER. IT MAY ALSO   */                               /* CONTAIN SHORT ATTRIBUTES AND POINTERS     */                               /* TO LONG ATTRIBUTE HEADERS.                */          /* DATA STRUCTURE TYPES */          /* WHEN ATTRIBUTE INFO IS SENT WITH A ATTRINFO-SIGNAL THE         */          /* VARIABLE TYPE IS SPECIFYED. THIS MUST BE DONE TO BE ABLE TO    */          /* NOW HOW MUCH DATA OF A ATTRIBUTE TO READ FROM ATTRINFO.        */#define ZFIXED_ARRAY 2                             /* ZFIXED  ARRAY FIELD.                  */#define ZNON_ARRAY 1                               /* NORMAL FIELD.                         */#define ZVAR_ARRAY 0                               /* VARIABLE ARRAY FIELD                  */#define ZNOT_STORE 3                               /* THE ATTR IS STORED IN THE INDEX BLOCK */#define ZMAX_SMALL_VAR_ARRAY 256          /* PLEASE OBSERVE THAT THEESE CONSTANTS CORRESPONDS TO THE NUMBER */          /* OF BITS NEEDED TO REPRESENT THEM    D O    N O T   C H A N G E */#define Z1BIT_VAR 0                                /* 1 BIT VARIABLE.                        */#define Z2BIT_VAR 1                                /* 2 BIT VARIABLE.                        */#define Z4BIT_VAR 2                                /* 4 BIT VARIABLE.                        */#define Z8BIT_VAR 3                                /* 8 BIT VARIABLE.                        */#define Z16BIT_VAR 4                               /* 16 BIT VARIABLE.                       */#define Z32BIT_VAR 5                               /* 32 BIT VARIABLE.                       */#define Z64BIT_VAR 6                               /* 64 BIT VARIABLE.                       */#define Z128BIT_VAR 7                              /* 128 BIT VARIABLE.                      */          /* WHEN A REQUEST CAN NOT BE EXECUTED BECAUSE OF A ERROR THE      */          /* ERROR MUST BE IDENTIFYED BY MEANS OF A ERROR CODE AND SENT TO  */          /* THE REQUESTER.                                                 */#define ZGET_OPREC_ERROR 804            // TUP_SEIZEREF#define ZEXIST_FRAG_ERROR 816           // Add fragment#define ZFULL_FRAGRECORD_ERROR 817      // Add fragment#define ZNO_FREE_PAGE_RANGE_ERROR 818   // Add fragment#define ZNOFREE_FRAGOP_ERROR 830        // Add fragment#define ZTOO_LARGE_TUPLE_ERROR 851      // Add fragment#define ZNO_FREE_TAB_ENTRY_ERROR 852    // Add fragment#define ZNO_PAGES_ALLOCATED_ERROR 881   // Add fragment#define ZGET_REALPID_ERROR 809#define ZNOT_IMPLEMENTED_ERROR 812#define ZSEIZE_ATTRINBUFREC_ERROR 805#define ZTOO_MUCH_ATTRINFO_ERROR 823#define ZMEM_NOTABDESCR_ERROR 826#define ZMEM_NOMEM_ERROR 827#define ZAI_INCONSISTENCY_ERROR 829#define ZNO_ILLEGAL_NULL_ATTR 839#define ZNOT_NULL_ATTR 840#define ZNO_INSTRUCTION_ERROR 871#define ZOUTSIDE_OF_PROGRAM_ERROR 876#define ZSTORED_PROC_ID_ERROR 877#define ZREGISTER_INIT_ERROR 878#define ZATTRIBUTE_ID_ERROR 879#define ZTRY_TO_READ_TOO_MUCH_ERROR 880#define ZTOTAL_LEN_ERROR 882#define ZATTR_INTERPRETER_ERROR 883#define ZSTACK_OVERFLOW_ERROR 884#define ZSTACK_UNDERFLOW_ERROR 885#define ZTOO_MANY_INSTRUCTIONS_ERROR 886#define ZTRY_TO_UPDATE_ERROR 888#define ZCALL_ERROR 890#define ZTEMPORARY_RESOURCE_FAILURE 891#define ZSTORED_SEIZE_ATTRINBUFREC_ERROR 873 // Part of Scan#define ZREAD_ONLY_CONSTRAINT_VIOLATION 893#define ZVAR_SIZED_NOT_SUPPORTED 894#define ZINCONSISTENT_NULL_ATTRIBUTE_COUNT 895#define ZTUPLE_CORRUPTED_ERROR 896#define ZTRY_UPDATE_PRIMARY_KEY 897#define ZMUST_BE_ABORTED_ERROR 898#define ZTUPLE_DELETED_ERROR 626#define ZINSERT_ERROR 630#define ZINVALID_CHAR_FORMAT 744          /* SOME WORD POSITIONS OF FIELDS IN SOME HEADERS */#define ZPAGE_STATE_POS 0                 /* POSITION OF PAGE STATE            */#define ZPAGE_NEXT_POS 1                  /* POSITION OF THE NEXT POINTER WHEN IN FREELIST     */#define ZPAGE_PREV_POS 2                  /* POSITION OF THE PREVIOUS POINTER WHEN IN FREELIST */#define ZFREELIST_HEADER_POS 3            /* POSITION OF THE FIRST FREELIST        */#define ZPAGE_FRAG_PAGE_ID_POS 4          /* POSITION OF FRAG PAGE ID WHEN USED*/#define ZPAGE_NEXT_CLUST_POS 5            /* POSITION OF NEXT FREE SET OF PAGES    */#define ZPAGE_FIRST_CLUST_POS 2           /* POSITION OF THE POINTER TO THE FIRST PAGE IN A CLUSTER */#define ZPAGE_LAST_CLUST_POS 6            /* POSITION OF THE POINTER TO THE LAST PAGE IN A CLUSTER */#define ZPAGE_PREV_CLUST_POS 7            /* POSITION OF THE PREVIOUS POINTER  */#define ZPAGE_HEADER_SIZE 32              /* NUMBER OF WORDS IN MEM  PAGEHEADER        */#define ZDISK_PAGE_HEADER_SIZE 32         /* NUMBER OF WORDS IN DISK PAGEHEADER        */#define ZNO_OF_FREE_BLOCKS 3              /* NO OF FREE BLOCK IN THE DISK PAGE         */#define ZDISK_PAGE_ID 8                   /*  ID OF THE PAGE ON THE DISK               */#define ZBLOCK_LIST 9#define ZCOPY_OF_PAGE 10#define ZPAGE_PHYSICAL_INDEX 11#define ZNEXT_IN_PAGE_USED_LIST 12#define ZPREV_IN_PAGE_USED_LIST 13#define ZDISK_USED_TYPE 14#define ZFREE_COMMON 1                    /* PAGE STATE, PAGE IN COMMON AREA                   */#define ZEMPTY_MM 2                       /* PAGE STATE, PAGE IN EMPTY LIST                    */#define ZTH_MM_FREE 3                     /* PAGE STATE, TUPLE HEADER PAGE WITH FREE AREA      */#define ZTH_MM_FULL 4                     /* PAGE STATE, TUPLE HEADER PAGE WHICH IS FULL       */#define ZAC_MM_FREE 5                     /* PAGE STATE, ATTRIBUTE CLUSTER PAGE WITH FREE AREA */#define ZTH_MM_FREE_COPY 7                /* PAGE STATE, TH COPY PAGE WITH FREE AREA           */#define ZTH_MM_FULL_COPY 8                /* PAGE STATE, TH COPY PAGE WHICH IS FULL            */#define ZAC_MM_FREE_COPY 9                /* PAGE STATE, AC COPY PAGE WITH FREE AREA           */#define ZMAX_NO_COPY_PAGES 4              /* THE MAXIMUM NUMBER OF COPY PAGES ALLOWED PER FRAGMENT */          /* CONSTANTS USED TO HANDLE TABLE DESCRIPTOR RECORDS                   */          /* ALL POSITIONS AND SIZES IS BASED ON R-WORDS (32-BIT ON APZ 212)     */#define ZTD_HEADER 0                      /* HEADER POSITION                   */#define ZTD_DATASIZE 1                    /* SIZE OF THE DATA IN THIS CHUNK    */#define ZTD_SIZE 2                        /* TOTAL SIZE OF TABLE DESCRIPTOR    */          /* TRAILER POSITIONS FROM END OF TABLE DESCRIPTOR RECORD               */#define ZTD_TR_SIZE 1                     /* SIZE DESCRIPTOR POS FROM END+1    */#define ZTD_TR_TYPE 2#define ZTD_TRAILER_SIZE 2                /* TOTAL SIZE OF TABLE TRAILER       */#define ZAD_SIZE 2                        /* TOTAL SIZE OF ATTR DESCRIPTOR     */#define ZAD_LOG_SIZE 1                    /* TWO LOG OF TOTAL SIZE OF ATTR DESCRIPTOR     */          /* CONSTANTS USED TO HANDLE TABLE DESCRIPTOR AS A FREELIST             */#define ZTD_FL_HEADER 0                   /* HEADER POSITION                   */#define ZTD_FL_SIZE 1                     /* TOTAL SIZE OF THIS FREELIST ENTRY */#define ZTD_FL_PREV 2                     /* PREVIOUS RECORD IN FREELIST       */#define ZTD_FL_NEXT 3                     /* NEXT RECORD IN FREELIST           */#define ZTD_FREE_SIZE 16                  /* SIZE NEEDED TO HOLD ONE FL ENTRY  */          /* CONSTANTS USED IN LSB OF TABLE DESCRIPTOR HEADER DESCRIBING USAGE   */#define ZTD_TYPE_FREE 0                   /* RECORD LINKED INTO FREELIST       */#define ZTD_TYPE_NORMAL 1                 /* RECORD USED AS TABLE DESCRIPTOR   */          /* ATTRIBUTE OPERATION CONSTANTS */#define ZLEAF 1#define ZNON_LEAF 2          /* ATTRINBUFREC VARIABLE POSITIONS. */#define ZBUF_PREV 29                      /* POSITION OF 'PREV'-VARIABLE (USED BY INTERPRETED EXEC) */#define ZBUF_DATA_LEN 30                  /* POSITION OF 'DATA LENGTH'-VARIABLE. */#define ZBUF_NEXT 31                      /* POSITION OF 'NEXT'-VARIABLE.        */#define ZSAVE_BUF_NEXT 28#define ZSAVE_BUF_DATA_LEN 27          /* RETURN POINTS. */          /* RESTART PHASES */#define ZSTARTPHASE1 1#define ZSTARTPHASE2 2#define ZSTARTPHASE3 3#define ZSTARTPHASE4 4#define ZSTARTPHASE6 6#define ZADDFRAG 0          /* CHECKPOINT RECORD TYPES */#define ZLCPR_TYPE_INSERT_TH 0             /* INSERT TUPLE HEADER                             */#define ZLCPR_TYPE_DELETE_TH 1             /* DELETE TUPLE HEADER                             */#define ZLCPR_TYPE_UPDATE_TH 2             /* DON'T CREATE IT, JUST UPDETE                    */#define ZLCPR_TYPE_INSERT_TH_NO_DATA 3     /* INSERT TUPLE HEADER                             */

⌨️ 快捷键说明

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