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

📄 backupformat.hpp

📁 mysql-5.0.22.tar.gz源码包
💻 HPP
字号:
/* 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 BACKUP_FORMAT_HPP#define BACKUP_FORMAT_HPP#include <ndb_types.h>static const char BACKUP_MAGIC[] = { 'N', 'D', 'B', 'B', 'C', 'K', 'U', 'P' };struct BackupFormat {  /**   * Section types in file   */  enum SectionType {    FILE_HEADER       = 1,    FRAGMENT_HEADER   = 2,    FRAGMENT_FOOTER   = 3,    TABLE_LIST        = 4,    TABLE_DESCRIPTION = 5,    GCP_ENTRY         = 6  };  struct FileHeader {    char Magic[8];    Uint32 NdbVersion;    Uint32 SectionType;    Uint32 SectionLength;    Uint32 FileType;    Uint32 BackupId;    Uint32 BackupKey_0;    Uint32 BackupKey_1;    Uint32 ByteOrder;  };    /**   * File types   */  enum FileType {    CTL_FILE = 1,    LOG_FILE = 2,    DATA_FILE = 3  };    /**   * Data file formats   */  struct DataFile {    struct FragmentHeader {      Uint32 SectionType;      Uint32 SectionLength;      Uint32 TableId;      Uint32 FragmentNo;      Uint32 ChecksumType;    };        struct VariableData {      Uint32 Sz;      Uint32 Id;      Uint32 Data[1];    };        struct Record {      Uint32 Length;      Uint32 NullBitmask[1];      Uint32 DataFixedKeys[1];      Uint32 DataFixedAttributes[1];      VariableData DataVariableAttributes[1];    };        struct FragmentFooter {      Uint32 SectionType;      Uint32 SectionLength;      Uint32 TableId;      Uint32 FragmentNo;      Uint32 NoOfRecords;      Uint32 Checksum;    };  };  /**   * CTL file formats   */  struct CtlFile {        /**     * Table list     */    struct TableList {      Uint32 SectionType;      Uint32 SectionLength;      Uint32 TableIds[1];      // Length = SectionLength - 2    };    /**     * Table description(s)     */    struct TableDescription {      Uint32 SectionType;      Uint32 SectionLength;      Uint32 DictTabInfo[1];   // Length = SectionLength - 2    };    /**     * GCP Entry     */    struct GCPEntry {      Uint32 SectionType;      Uint32 SectionLength;      Uint32 StartGCP;      Uint32 StopGCP;    };  };  /**   * LOG file format   */  struct LogFile {    /**     * Log Entry     */    struct LogEntry {      Uint32 Length;      Uint32 TableId;      // If TriggerEvent & 0x10000 == true then GCI is right after data      Uint32 TriggerEvent;       Uint32 Data[1]; // Len = Length - 2    };  };};#endif

⌨️ 快捷键说明

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