CreateTable.hpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #ifndef CREATE_TABLE_HPP
  14. #define CREATE_TABLE_HPP
  15. #include "SignalData.hpp"
  16. /**
  17.  * CreateTable
  18.  *
  19.  * This signal is sent by API to DICT/TRIX
  20.  * as a request to create a secondary index
  21.  * and then from TRIX to TRIX(n) and TRIX to TC.
  22.  */
  23. class CreateTableReq {
  24.   /**
  25.    * Sender(s)
  26.    */
  27.   // API
  28.   
  29.   /**
  30.    * Sender(s) / Reciver(s)
  31.    */
  32.   friend class NdbDictInterface;
  33.   friend class Dbdict;
  34.   friend class Ndbcntr;
  35.   /**
  36.    * For printing
  37.    */
  38.   friend bool printCREATE_TABLE_REQ(FILE*, const Uint32*, Uint32, Uint16);
  39.   
  40. public:
  41.   STATIC_CONST( SignalLength = 2 );
  42.   
  43. private:
  44.   Uint32 senderData;
  45.   Uint32 senderRef;
  46.   SECTION( DICT_TAB_INFO = 0 );
  47. };
  48. class CreateTableRef {
  49.   /**
  50.    * Sender(s)
  51.    */
  52.   friend class Dbdict;
  53.   
  54.   /**
  55.    * Sender(s) / Reciver(s)
  56.    */
  57.   friend class Ndbcntr;
  58.   friend class NdbDictInterface;
  59.   
  60.   /**
  61.    * For printing
  62.    */
  63.   friend bool printCREATE_TABLE_REF(FILE *, const Uint32 *, Uint32, Uint16);
  64.   
  65. public:
  66.   STATIC_CONST( SignalLength = 7 );
  67.   enum ErrorCode {
  68.     NoError = 0,
  69.     Busy = 701,
  70.     NotMaster = 702,
  71.     InvalidFormat = 703,
  72.     AttributeNameTooLong = 704,
  73.     TableNameTooLong = 705,
  74.     Inconsistency = 706,
  75.     NoMoreTableRecords = 707,
  76.     NoMoreAttributeRecords = 708,
  77.     AttributeNameTwice = 720,
  78.     TableAlreadyExist = 721,
  79.     ArraySizeTooBig = 737,
  80.     RecordTooBig = 738,
  81.     InvalidPrimaryKeySize  = 739,
  82.     NullablePrimaryKey = 740,
  83.     InvalidCharset = 743
  84.   };
  85. private:
  86.   Uint32 senderData;
  87.   Uint32 senderRef;
  88.   Uint32 masterNodeId;
  89.   Uint32 errorCode;
  90.   Uint32 errorLine; 
  91.   Uint32 errorKey;
  92.   Uint32 status;
  93. public:
  94.   Uint32 getErrorCode() const {
  95.     return errorCode;
  96.   }
  97.   Uint32 getErrorLine() const {
  98.     return errorLine;
  99.   }
  100. };
  101. class CreateTableConf {
  102.   /**
  103.    * Sender(s)
  104.    */
  105.   friend class Dbdict;
  106.   
  107.   /**
  108.    * Sender(s) / Reciver(s)
  109.    */
  110.   friend class Ndbcntr;
  111.   friend class NdbDictInterface;
  112.   
  113.   /**
  114.    * For printing
  115.    */
  116.   friend bool printCREATE_TABLE_REF(FILE *, const Uint32 *, Uint32, Uint16);
  117.   
  118. public:
  119.   STATIC_CONST( SignalLength = 4 );
  120. private:
  121.   Uint32 senderData;
  122.   Uint32 senderRef;
  123.   Uint32 tableId;
  124.   Uint32 tableVersion;
  125. };
  126. #endif