mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-04-21 19:45:56 +03:00
408 lines
26 KiB
C++
408 lines
26 KiB
C++
/* Copyright (C) 2014 InfiniDB, Inc.
|
|
|
|
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; version 2 of
|
|
the License.
|
|
|
|
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., 51 Franklin Street, Fifth Floor, Boston,
|
|
MA 02110-1301, USA. */
|
|
|
|
// $Id: we_define.h 4726 2013-08-07 03:38:36Z bwilkinson $
|
|
|
|
/** @file */
|
|
|
|
#undef NO_ERROR
|
|
|
|
#pragma once
|
|
#include <string>
|
|
#include <map>
|
|
#include <stdint.h>
|
|
|
|
#define EXPORT
|
|
|
|
/** Namespace WriteEngine */
|
|
namespace WriteEngine
|
|
{
|
|
// Max column size is 16 bytes since MCOL-641. However left this value
|
|
// for backward compatibility
|
|
const short MAX_COLUMN_BOUNDARY = 8; // Max bytes for one column
|
|
const int MAX_SIGNATURE_SIZE = 8000; // Max len of dict sig val
|
|
const int MAX_FIELD_SIZE = 1000; // Max len non-dict fld val
|
|
const int MAX_DB_DIR_LEVEL = 6; // Max lvl of db dir struct
|
|
const int MAX_DB_DIR_NAME_SIZE = 20; // Max len of db dir size
|
|
const short ROW_PER_BYTE = 8; // Rows/byte in bitmap file
|
|
const int BYTE_PER_BLOCK = 8192; // Num bytes per data block
|
|
const int BYTE_PER_SUBBLOCK = 256; // Num bytes per sub block
|
|
const int ENTRY_PER_SUBBLOCK = 32; // Num entries per sub block
|
|
const int INITIAL_EXTENT_ROWS_TO_DISK = 256 * 1024; // Used for initial number of blocks calculation
|
|
const int MAX_INITIAL_EXTENT_BLOCKS_TO_DISK = 256; // Number of blocks in abbrev extent for 8byte col.
|
|
// Num rows reserved to disk for 'initial' extent
|
|
const int FILE_NAME_SIZE = 200; // Max size of file name
|
|
const long long MAX_ALLOW_ERROR_COUNT = 100000; // Max allowable error count
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Dictionary related constants
|
|
//--------------------------------------------------------------------------
|
|
const uint16_t DCTNRY_END_HEADER = 0xffff; // end of header
|
|
const uint64_t NOT_USED_PTR = 0x0; // not continuous ptr
|
|
const int HDR_UNIT_SIZE = 2; // hdr unit size
|
|
const int NEXT_PTR_BYTES = 8; // const ptr size
|
|
const int MAX_OP_COUNT = 1024; // op max size
|
|
const int DCTNRY_HEADER_SIZE = 14; // header total size
|
|
const int MAX_STRING_CACHE_SIZE = 1000;
|
|
// End of Dictionary related constants
|
|
|
|
const int COLPOSPAIR_NULL_TOKEN_OFFSET = -1; // offset value denoting a null token
|
|
const uint32_t BULK_SYSCAT_SESSION_ID = 0; // SessionID for syscat queries
|
|
|
|
const char COL_TYPE_DICT = 'D'; // Dictionary type
|
|
|
|
const uint64_t INVALID_LBID = 0xFFFFFFFFFULL; // 2**36 - 1
|
|
|
|
const unsigned int SUBSYSTEM_ID_DDLPROC = 15;
|
|
const unsigned int SUBSYSTEM_ID_DMLPROC = 20;
|
|
const unsigned int SUBSYSTEM_ID_WE = 19;
|
|
const unsigned int SUBSYSTEM_ID_WE_SRV = 32;
|
|
const unsigned int SUBSYSTEM_ID_WE_SPLIT = 33;
|
|
const unsigned int SUBSYSTEM_ID_WE_BULK = 34;
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Default definitions
|
|
//--------------------------------------------------------------------------
|
|
const int DEFAULT_CACHE_BLOCK = 256; // Max num of cache blocks
|
|
const int DEFAULT_CHK_INTERVAL = 3; // Checkpoint in seconds
|
|
const int DEFAULT_CACHE_PCT_FREE = 25; // Min % of free cache
|
|
const int DEFAULT_BUFSIZ = 1 * 1024 * 1024; // setvbuf buffer size
|
|
const int DEFAULT_COLSIZ = 8; // col size for hdfs rdwr buf
|
|
|
|
const int BLK_INIT = 0;
|
|
const int BLK_READ = 1;
|
|
const int BLK_WRITE = 2;
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Return code definitions
|
|
//--------------------------------------------------------------------------
|
|
const int NO_ERROR = 0; // No error
|
|
const int NOT_FOUND = -1; // Not found
|
|
const int INVALID_NUM = -1; // Invalid number
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Error code definition
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_CODEBASE = 1000; // Generic error codes
|
|
const int ERR_FILEBASE = 1050; // File-related error codes
|
|
const int ERR_XMLBASE = 1150; // XML job file error codes
|
|
const int ERR_TBLLOCKBASE = 1200; // Table-lock error codes
|
|
const int ERR_WRAPPERBASE = 1250; // DDL/DML API related errors
|
|
const int ERR_INDEXBASE = 1300; // Index-related error codes
|
|
const int ERR_FMGRBASE = 1350; // Freemgr errors
|
|
const int ERR_DCTNRYBASE = 1400; // Dictionary errors
|
|
const int ERR_BULKBASE = 1450; // Bulk specific errors
|
|
const int ERR_BRMBASE = 1500; // BRM errors
|
|
const int ERR_DMBASE = 1550; // Disk manager errors
|
|
const int ERR_CACHEBASE = 1600; // Cche management errors
|
|
const int ERR_COMPBASE = 1650; // Compression errors
|
|
const int ERR_AUTOINCBASE = 1700; // Auto-increment errors
|
|
const int ERR_BLKCACHEBASE = 1750; // Block cache flush errors
|
|
const int ERR_METABKUPBASE = 1800; // Backup bulk meta file errors
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Generic error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_UNKNOWN = ERR_CODEBASE + 1; // Generic error
|
|
const int ERR_INVALID_PARAM = ERR_CODEBASE + 2; // Invalid parms
|
|
const int ERR_STRUCT_EMPTY = ERR_CODEBASE + 3; // Struct is empty
|
|
const int ERR_VALUE_OUTOFRANGE = ERR_CODEBASE + 4; // Val out of range
|
|
const int ERR_PARSING = ERR_CODEBASE + 5; // Parsing error
|
|
const int ERR_NO_MEM = ERR_CODEBASE + 6; // Mem alloc error
|
|
const int ERR_DML_LOG_NAME = ERR_CODEBASE + 7; // DML log filename error
|
|
const int ERR_OPEN_DML_LOG = ERR_CODEBASE + 8; // Open DML log file error
|
|
const int ERR_HDFS_BACKUP = ERR_CODEBASE + 9; // HDFS backup error
|
|
|
|
//--------------------------------------------------------------------------
|
|
// File level error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_FILE_CREATE = ERR_FILEBASE + 1; // File creation error, mostly because file has already existed
|
|
const int ERR_FILE_OPEN = ERR_FILEBASE + 2; // Can not open the file, mostly because file not found
|
|
const int ERR_FILE_DELETE = ERR_FILEBASE + 3; // Can not delete the file, common reason is file not exist
|
|
const int ERR_FILE_EXIST = ERR_FILEBASE + 4; // File alreay exists
|
|
const int ERR_FILE_NOT_EXIST = ERR_FILEBASE + 5; // File not exists
|
|
const int ERR_FILE_NULL = ERR_FILEBASE + 6; // File is empty
|
|
const int ERR_FILE_WRITE = ERR_FILEBASE + 7; // Error writing to a DB file
|
|
const int ERR_FILE_READ = ERR_FILEBASE + 8; // Error reading from a DB file
|
|
const int ERR_FILE_SEEK = ERR_FILEBASE + 9; // Error in positioning file handle
|
|
const int ERR_FILE_READ_IMPORT = ERR_FILEBASE + 10; // Error reading import source file
|
|
const int ERR_DIR_CREATE = ERR_FILEBASE + 11; // Error in creating directory
|
|
const int ERR_FILE_NEW_EXTENT_FBO = ERR_FILEBASE + 12; // New extent fbo too large
|
|
const int ERR_FILE_FBO_NEG = ERR_FILEBASE + 13; // File FBO is negative
|
|
const int ERR_FILE_TRUNCATE = ERR_FILEBASE + 14; // Error truncating file
|
|
const int ERR_FILE_DISK_SPACE = ERR_FILEBASE + 15; // Out of space on file system
|
|
const int ERR_FILE_STAT = ERR_FILEBASE + 16; // Error getting stats on file
|
|
const int ERR_VB_FILE_NOT_EXIST = ERR_FILEBASE + 17; // Version buffer file not exists
|
|
const int ERR_FILE_FLUSH = ERR_FILEBASE + 18; // Error flushing file
|
|
const int ERR_FILE_GLOBBING = ERR_FILEBASE + 19; // Error globbing a file name
|
|
const int ERR_FILE_EOF = ERR_FILEBASE + 20; // EOF
|
|
const int ERR_FILE_CHOWN = ERR_FILEBASE + 21; // EOF
|
|
const int ERR_INTERNAL = ERR_FILEBASE + 22; // EOF
|
|
|
|
//--------------------------------------------------------------------------
|
|
// XML level error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_XML_FILE = ERR_XMLBASE + 1; // File error, probably because file does not exist
|
|
const int ERR_XML_ROOT_ELEM = ERR_XMLBASE + 2; // Root element err
|
|
const int ERR_XML_EMPTY = ERR_XMLBASE + 3; // Empty XML file
|
|
const int ERR_XML_PARSE = ERR_XMLBASE + 4; // Parsing error
|
|
|
|
//--------------------------------------------------------------------------
|
|
// table lock level error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_TBLLOCK_LOCK_NOT_FOUND = ERR_TBLLOCKBASE + 1; // table has no lock
|
|
const int ERR_TBLLOCK_GET_LOCK = ERR_TBLLOCKBASE + 2; // error acquiring a table lock
|
|
const int ERR_TBLLOCK_GET_LOCK_LOCKED = ERR_TBLLOCKBASE + 3; // table currently locked
|
|
const int ERR_TBLLOCK_RELEASE_LOCK = ERR_TBLLOCKBASE + 4; // error releasing a table lock
|
|
const int ERR_TBLLOCK_CHANGE_STATE = ERR_TBLLOCKBASE + 5; // error changing state of lock
|
|
const int ERR_TBLLOCK_GET_INFO = ERR_TBLLOCKBASE + 6; // error getting info about a lock
|
|
const int ERR_TBLLOCK_LOCKID_CONFLICT = ERR_TBLLOCKBASE + 7; // lockID for different table than expected
|
|
|
|
//--------------------------------------------------------------------------
|
|
// DDL/DML Interface level error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_STRUCT_VALUE_NOT_MATCH =
|
|
ERR_WRAPPERBASE + 1; // The number of struct not match with the number of value set
|
|
const int ERR_ROWID_VALUE_NOT_MATCH =
|
|
ERR_WRAPPERBASE + 2; // The number of rowid not match with the number of values
|
|
const int ERR_TBL_SYSCAT_ERROR = ERR_WRAPPERBASE + 3; /** @brief Syscatalog query error */
|
|
|
|
//--------------------------------------------------------------------------
|
|
// index error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_IDX_TREE_MOVE_ENTRY = ERR_INDEXBASE + 1; // The error in move part of tree to a new subblock
|
|
const int ERR_IDX_TREE_INVALID_TYPE = ERR_INDEXBASE + 2; // Invalid tree entry type
|
|
const int ERR_IDX_TREE_BITTEST_VAL = ERR_INDEXBASE + 3; // Wrong bit test value in the entry
|
|
const int ERR_IDX_TREE_INVALID_LEVEL = ERR_INDEXBASE + 4; // Invalid testbit treel level
|
|
const int ERR_IDX_TREE_INVALID_GRP = ERR_INDEXBASE + 5; // Invalid group type
|
|
const int ERR_IDX_TREE_LISTPTR_CHANGE = ERR_INDEXBASE + 6; // List pointer change
|
|
// index list error
|
|
const int ERR_IDX_LIST_INVALID_ADDHDR = ERR_INDEXBASE + 7; // Create indexlist header error
|
|
const int ERR_IDX_LIST_INVALID_UPDATE = ERR_INDEXBASE + 8; // Update Index List error
|
|
const int ERR_IDX_LIST_INVALID_DELETE = ERR_INDEXBASE + 9; // Delete rowid in indexlist err*/
|
|
const int ERR_IDX_LIST_INVALID_KEY = ERR_INDEXBASE + 10; // Invalid Key passed
|
|
const int ERR_IDX_LIST_GET_RID_ARRARY = ERR_INDEXBASE + 11; // RID array
|
|
const int ERR_IDX_LIST_WRONG_KEY = ERR_INDEXBASE + 12; // not matched Key passed
|
|
const int ERR_IDX_LIST_HDR_EMPTY = ERR_INDEXBASE + 13; // Delete rowid in indexlist err
|
|
const int ERR_IDX_LIST_GET_SEGMT = ERR_INDEXBASE + 14; // Get Segment
|
|
const int ERR_IDX_LIST_WRONG_LBID_WRITE = ERR_INDEXBASE + 15;
|
|
const int ERR_IDX_LIST_UPDATE_SUB = ERR_INDEXBASE + 16;
|
|
const int ERR_IDX_LIST_UPDATE_NARRAY = ERR_INDEXBASE + 17;
|
|
const int ERR_IDX_LIST_LAST_FBO_NEG = ERR_INDEXBASE + 18;
|
|
const int ERR_IDX_LIST_INIT_NEW_BLKS = ERR_INDEXBASE + 19;
|
|
const int ERR_IDX_LIST_INIT_LINK_BLKS = ERR_INDEXBASE + 20;
|
|
const int ERR_IDX_LIST_UPDATE_COUNT = ERR_INDEXBASE + 21;
|
|
const int ERR_IDX_LIST_SET_NEXT_LBID = ERR_INDEXBASE + 22;
|
|
const int ERR_IDX_LIST_INVALID_LBID = ERR_INDEXBASE + 23;
|
|
const int ERR_IDX_LIST_INVALID_BLK_READ = ERR_INDEXBASE + 24;
|
|
const int ERR_IDX_LIST_UPDATE_HDR_COUNT = ERR_INDEXBASE + 25;
|
|
const int ERR_IDX_LIST_WRONG_BLK = ERR_INDEXBASE + 26;
|
|
const int ERR_IDX_LIST_WRONG_TYPE = ERR_INDEXBASE + 27;
|
|
const int ERR_IDX_LIST_GET_COUNT = ERR_INDEXBASE + 28;
|
|
const int ERR_IDX_LIST_GET_NEXT = ERR_INDEXBASE + 29;
|
|
const int ERR_IDX_LIST_GET_PARENT = ERR_INDEXBASE + 30;
|
|
const int ERR_IDX_LIST_GET_SUB_BLK = ERR_INDEXBASE + 31;
|
|
const int ERR_IDX_LIST_INVALID_UP_HDR = ERR_INDEXBASE + 32; // Update Index List error
|
|
const int ERR_IDX_LIST_INVALID_ADD_LIST = ERR_INDEXBASE + 33; // Update Index List error
|
|
const int ERR_IDX_LIST_INVALID_UP = ERR_INDEXBASE + 34; // Update Index List error
|
|
|
|
//--------------------------------------------------------------------------
|
|
// freemgr error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_FM_ASSIGN_ERR = ERR_FMGRBASE + 1; // General assignment error
|
|
const int ERR_FM_RELEASE_ERR = ERR_FMGRBASE + 2; // General release error
|
|
const int ERR_FM_BAD_FBO = ERR_FMGRBASE + 3; // File Block Offset err
|
|
const int ERR_FM_BAD_TYPE = ERR_FMGRBASE + 4; // type must be pointer or list
|
|
const int ERR_FM_NO_SPACE = ERR_FMGRBASE + 5; // No blocks available
|
|
const int ERR_FM_EXTEND = ERR_FMGRBASE + 6; // Error extending file
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Dictionary error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_DICT_NO_SPACE_INSERT = ERR_DCTNRYBASE + 1; // ins no space
|
|
const int ERR_DICT_SIZE_GT_2G = ERR_DCTNRYBASE + 2; // ins size >8000
|
|
const int ERR_DICT_NO_OP_DELETE = ERR_DCTNRYBASE + 3; // del no op
|
|
const int ERR_DICT_NO_OFFSET_DELETE = ERR_DCTNRYBASE + 4; // del bad offset
|
|
const int ERR_DICT_INVALID_HDR = ERR_DCTNRYBASE + 5; // Delete Hdr
|
|
const int ERR_DICT_ZERO_LEN = ERR_DCTNRYBASE + 6; // Delete zero len
|
|
const int ERR_DICT_TOKEN_NOT_FOUND = ERR_DCTNRYBASE + 7; // token not found
|
|
const int ERR_DICT_FILE_NOT_FOUND = ERR_DCTNRYBASE + 8; // dict file not found
|
|
const int ERR_DICT_BAD_TOKEN_LBID = ERR_DCTNRYBASE + 9; // bad token lbid
|
|
const int ERR_DICT_BAD_TOKEN_OP = ERR_DCTNRYBASE + 10; // token op is bad
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Bulk error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_BULK_MAX_ERR_NUM = ERR_BULKBASE + 1; // Maximum number of error rows reached
|
|
const int ERR_BULK_DATA_COL_NUM =
|
|
ERR_BULKBASE + 2; // The total number of data column not match with column definitions
|
|
const int ERR_BULK_SEND_MSG_ERR = ERR_BULKBASE + 3; // send msg to primproc to flush cache
|
|
const int ERR_BULK_MISSING_EXTENT_ENTRY =
|
|
ERR_BULKBASE + 4; // Missing Extent Entry when trying to save LBID info
|
|
const int ERR_BULK_MISSING_EXTENT_ROW = ERR_BULKBASE + 5; // Missing Extent Row when trying to save LBID info
|
|
const int ERR_BULK_ROW_FILL_BUFFER = ERR_BULKBASE + 6; // Single row fills read buffer
|
|
const int ERR_BULK_DBROOT_CHANGE = ERR_BULKBASE + 7; // Local DBRoot settings changed during an import
|
|
const int ERR_BULK_ROLLBACK_MISS_ROOT =
|
|
ERR_BULKBASE + 8; // Mode3 automatic rollback skipped with missing DBRoot
|
|
const int ERR_BULK_ROLLBACK_SEG_LIST = ERR_BULKBASE + 9; // Error building segment file list in a directory
|
|
const int ERR_BULK_BINARY_PARTIAL_REC =
|
|
ERR_BULKBASE + 10; // Binary input did not end on fixed length record boundary
|
|
const int ERR_BULK_BINARY_IGNORE_FLD =
|
|
ERR_BULKBASE + 11; // <IgnoreField> tag not supported for binary import
|
|
|
|
//--------------------------------------------------------------------------
|
|
// BRM error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_BRM_LOOKUP_LBID = ERR_BRMBASE + 1; // Lookup LBID error
|
|
const int ERR_BRM_LOOKUP_FBO = ERR_BRMBASE + 2; // Lookup FBO error
|
|
const int ERR_BRM_ALLOC_EXTEND = ERR_BRMBASE + 3; // Allocate extent error
|
|
const int ERR_BRM_COMMIT = ERR_BRMBASE + 4; // Commit error
|
|
const int ERR_BRM_ROLLBACK = ERR_BRMBASE + 5; // Rollback error
|
|
const int ERR_BRM_GET_UNCOMM_LBID = ERR_BRMBASE + 6; // Get uncommitted lbid list error
|
|
const int ERR_BRM_DEL_OID = ERR_BRMBASE + 7; // Delete oid error
|
|
const int ERR_BRM_BEGIN_COPY = ERR_BRMBASE + 8; // Begin copy error
|
|
const int ERR_BRM_END_COPY = ERR_BRMBASE + 9; // End copy error
|
|
const int ERR_BRM_GET_HWM = ERR_BRMBASE + 10; // Get hwm error
|
|
const int ERR_BRM_SET_HWM = ERR_BRMBASE + 11; // Set hwm error
|
|
const int ERR_BRM_WR_VB_ENTRY = ERR_BRMBASE + 12; // Write VB entry error
|
|
const int ERR_BRM_VB_COPY_READ = ERR_BRMBASE + 13; // VB copy read error
|
|
const int ERR_BRM_VB_COPY_SEEK_DB = ERR_BRMBASE + 14; // VB copy seek error to DB file
|
|
const int ERR_BRM_VB_COPY_SEEK_VB = ERR_BRMBASE + 15; // VB copy seek error to VB file
|
|
const int ERR_BRM_VB_COPY_WRITE = ERR_BRMBASE + 16; // VB copy write
|
|
const int ERR_BRM_DEAD_LOCK = ERR_BRMBASE + 17; // DEAD lock error
|
|
const int ERR_BRM_MARK_INVALID = ERR_BRMBASE + 18; // Mark extent invalid error from casual paritioning
|
|
const int ERR_BRM_SAVE_STATE = ERR_BRMBASE + 19; // Save state error
|
|
const int ERR_BRM_GET_START_EXTENT = ERR_BRMBASE + 20; // Get starting Extent error
|
|
const int ERR_BRM_VB_OVERFLOW = ERR_BRMBASE + 21; // Version buffer overflow
|
|
const int ERR_BRM_READ_ONLY = ERR_BRMBASE + 22; // BRM is in READ-ONLY state
|
|
const int ERR_BRM_GET_READ_WRITE = ERR_BRMBASE + 23; // error getting BRM READ/WRITE state
|
|
const int ERR_BRM_BULK_RB_COLUMN = ERR_BRMBASE + 24; // error during column bulk rollback
|
|
const int ERR_BRM_BULK_RB_DCTNRY = ERR_BRMBASE + 25; // error during dctnry bulk rollback
|
|
const int ERR_BRM_DELETE_EXTENT_COLUMN = ERR_BRMBASE + 26; // error during delete column extents
|
|
const int ERR_BRM_DELETE_EXTENT_DCTNRY = ERR_BRMBASE + 27; // error during delete dictionary extents
|
|
const int ERR_BRM_TAKE_SNAPSHOT = ERR_BRMBASE + 28; // Taking snapshot of BRM state
|
|
const int ERR_BRM_LOOKUP_START_LBID = ERR_BRMBASE + 29; // Lookup starting LBID error
|
|
const int ERR_BRM_BULK_UPDATE = ERR_BRMBASE + 30; // Error with bulk update of HWM and CP
|
|
const int ERR_BRM_GET_EXT_STATE = ERR_BRMBASE + 31; // Error getting extent state
|
|
const int ERR_EXTENTMAP_LOOKUP = ERR_BRMBASE + 32; // Lookup extent map error
|
|
const int ERR_BRM_LOOKUP_VERSION = ERR_BRMBASE + 33; // Lookup version error
|
|
const int ERR_BRM_LOOKUP_LBID_RANGES = ERR_BRMBASE + 34; // Lookup LBID Ranges error
|
|
const int ERR_BRM_HWMS_NOT_EQUAL = ERR_BRMBASE + 35; // HWMs of same col width not equal
|
|
const int ERR_BRM_HWMS_OUT_OF_SYNC = ERR_BRMBASE + 36; // HWMs for dif col width not in sync
|
|
const int ERR_BRM_DBROOT_HWMS = ERR_BRMBASE + 37; // Error getting HWMs for each DBRoot
|
|
const int ERR_BRM_NETWORK = ERR_BRMBASE + 38; // Network error when calling BRM functions
|
|
const int ERR_BRM_READONLY = ERR_BRMBASE + 39; // DBRM is readonly
|
|
const int ERR_INVALID_VBOID = ERR_BRMBASE + 40; // returned if the given vboid is invalid
|
|
const int ERR_BRM_SET_EXTENTS_CP = ERR_BRMBASE + 41; // Error setting extents min/max
|
|
const int ERR_BRM_SHUTDOWN = ERR_BRMBASE + 42; // BRM is set to shutdown
|
|
const int ERR_BRM_GET_SHUTDOWN = ERR_BRMBASE + 43; // error getting BRM Shutdown flag
|
|
const int ERR_BRM_SUSPEND = ERR_BRMBASE + 44; // BRM is set to Suspend writes
|
|
const int ERR_BRM_GET_SUSPEND = ERR_BRMBASE + 45; // error getting BRM Suspend flag
|
|
const int ERR_BRM_BAD_STRIPE_CNT = ERR_BRMBASE + 46; // Incorrect num of cols allocated in stripe
|
|
const int ERR_BRM_UNSUPP_WIDTH = ERR_BRMBASE + 47; // Non-dict column Width > allowed MAX.
|
|
const int ERR_BRM_GET_EXTENT_CP = ERR_BRMBASE + 48; // Error getting extent's CPInfo
|
|
|
|
//--------------------------------------------------------------------------
|
|
// DM error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_DM_CONVERT_OID = ERR_DMBASE + 1; // Conversion error
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Cache error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_CACHE_KEY_EXIST = ERR_CACHEBASE + 1; // Cache key exist
|
|
const int ERR_CACHE_KEY_NOT_EXIST = ERR_CACHEBASE + 2; // Cache key not exist
|
|
const int ERR_NULL_BLOCK = ERR_CACHEBASE + 3; // Block is NULL
|
|
const int ERR_FREE_LIST_EMPTY = ERR_CACHEBASE + 4; // Empty Free list
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Compression error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_COMP_COMPRESS = ERR_COMPBASE + 1; // Error compressing data
|
|
const int ERR_COMP_UNCOMPRESS = ERR_COMPBASE + 2; // Error uncompressing data
|
|
const int ERR_COMP_PARSE_HDRS = ERR_COMPBASE + 3; // Error parsing compression headers
|
|
const int ERR_COMP_VERIFY_HDRS = ERR_COMPBASE + 4; // Error verifying compression headers
|
|
const int ERR_COMP_PAD_DATA = ERR_COMPBASE + 5; // Pad compressed data failed
|
|
const int ERR_COMP_READ_BLOCK = ERR_COMPBASE + 6; // Failed to read a block
|
|
const int ERR_COMP_SAVE_BLOCK = ERR_COMPBASE + 7; // Failed to save a block
|
|
const int ERR_COMP_WRONG_PTR = ERR_COMPBASE + 8; // Pointer in header is wrong
|
|
const int ERR_COMP_FILE_NOT_FOUND = ERR_COMPBASE + 9; // File not found in map
|
|
const int ERR_COMP_CHUNK_NOT_FOUND = ERR_COMPBASE + 10; // Chunk not found in map
|
|
const int ERR_COMP_UNAVAIL_TYPE = ERR_COMPBASE + 11; // Unavailable compression type
|
|
const int ERR_COMP_REMOVE_FILE = ERR_COMPBASE + 12; // Failed to remove a file
|
|
const int ERR_COMP_RENAME_FILE = ERR_COMPBASE + 13; // Failed to rename a file
|
|
const int ERR_COMP_OPEN_FILE = ERR_COMPBASE + 14; // Failed to open a compressed data file
|
|
const int ERR_COMP_SET_OFFSET = ERR_COMPBASE + 15; // Failed to set offset in a compressed data file
|
|
const int ERR_COMP_READ_FILE = ERR_COMPBASE + 16; // Failed to read from a compressed data file
|
|
const int ERR_COMP_WRITE_FILE = ERR_COMPBASE + 17; // Failed to write to a compresssed data file
|
|
const int ERR_COMP_CLOSE_FILE = ERR_COMPBASE + 18; // Failed to close a compressed data file
|
|
const int ERR_COMP_TRUNCATE_ZERO = ERR_COMPBASE + 19; // Invalid attempt to truncate file to 0 bytes
|
|
const int ERR_COMP_WRONG_COMP_TYPE = ERR_COMPBASE + 20; // Invalid compression type.
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Auto-increment error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_AUTOINC_GEN_EXCEED_MAX =
|
|
ERR_AUTOINCBASE + 1; // Generated autoinc value exceeds max auto increment value/
|
|
const int ERR_AUTOINC_USER_OUT_OF_RANGE =
|
|
ERR_AUTOINCBASE + 2; // User specified autoinc value is out of range
|
|
const int ERR_AUTOINC_TABLE_NAME = ERR_AUTOINCBASE + 3; // Invalid schema/tablename for auto increment
|
|
const int ERR_AUTOINC_INIT1 = ERR_AUTOINCBASE + 4; // Error initializing auto increment (known exception)
|
|
const int ERR_AUTOINC_INIT2 = ERR_AUTOINCBASE + 5; // Error initializing auto increment (unknown exception)
|
|
const int ERR_AUTOINC_RID = ERR_AUTOINCBASE + 6; // Error initializing auto increment (unknown exception)
|
|
const int ERR_AUTOINC_START_SEQ = ERR_AUTOINCBASE + 7; // Error setting up an auto-increment sequence
|
|
const int ERR_AUTOINC_GET_RANGE = ERR_AUTOINCBASE + 8; // Error reserving an auto-increment range
|
|
const int ERR_AUTOINC_GET_LOCK = ERR_AUTOINCBASE + 9; // Error getting a lock to update auto-inc next value
|
|
const int ERR_AUTOINC_REL_LOCK = ERR_AUTOINCBASE + 10; // Error releasing lock to update auto-inc next value
|
|
const int ERR_AUTOINC_UPDATE = ERR_AUTOINCBASE + 11; // Error updating nextValue in system catalog
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Block cache flush error
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_BLKCACHE_FLUSH_LIST = ERR_BLKCACHEBASE + 1; // Error flushing list of blocks to PrimProc
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Bulk backup metadata file and corresponding HWM compressed chunk files
|
|
//--------------------------------------------------------------------------
|
|
const int ERR_METADATABKUP_FILE_RENAME = ERR_METABKUPBASE + 1; // Error renaming meta file */
|
|
const int ERR_METADATABKUP_COMP_PARSE_HDRS = ERR_METABKUPBASE + 2; // Error parsing compression headers */
|
|
const int ERR_METADATABKUP_COMP_VERIFY_HDRS = ERR_METABKUPBASE + 3; // Error verifying compression headers */
|
|
const int ERR_METADATABKUP_COMP_CHUNK_NOT_FOUND = ERR_METABKUPBASE + 4; // Chunk not found in file */
|
|
const int ERR_METADATABKUP_COMP_OPEN_BULK_BKUP = ERR_METABKUPBASE + 5; // Error opening backup chunk file */
|
|
const int ERR_METADATABKUP_COMP_WRITE_BULK_BKUP =
|
|
ERR_METABKUPBASE + 6; // Error writing to backup chunk file */
|
|
const int ERR_METADATABKUP_COMP_READ_BULK_BKUP =
|
|
ERR_METABKUPBASE + 7; // Error reading from backup chunk file */
|
|
const int ERR_METADATABKUP_COMP_RENAME = ERR_METABKUPBASE + 8; // Error renaming chunk file */
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Class used to convert an error code to a corresponding error message string
|
|
//------------------------------------------------------------------------------
|
|
struct WErrorCodes
|
|
{
|
|
EXPORT WErrorCodes();
|
|
EXPORT std::string errorString(int code);
|
|
|
|
private:
|
|
typedef std::map<int, std::string> CodeMap;
|
|
CodeMap fErrorCodes;
|
|
};
|
|
|
|
} // namespace WriteEngine
|
|
|
|
#undef EXPORT
|