AlterTab.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 ALTER_TAB_HPP
  14. #define ALTER_TAB_HPP
  15. #include "SignalData.hpp"
  16. #include "GlobalSignalNumbers.h"
  17. /**
  18.  * AlterTab
  19.  *
  20.  * Implemenatation of AlterTable
  21.  */
  22. class AlterTabReq {
  23.   /**
  24.    * Sender(s) / Reciver(s)
  25.    */
  26.   friend class Dbdict;
  27.   friend class Dbdih;
  28.   friend class Dbtc;
  29.   friend class Dblqh;
  30.   /**
  31.    * For printing
  32.    */
  33.   friend bool printALTER_TAB_REQ(FILE*, const Uint32*, Uint32, Uint16);
  34.   
  35. public:
  36.   STATIC_CONST( SignalLength = 9 );
  37.   
  38.   enum RequestType {
  39.     AlterTablePrepare = 0, // Prepare alter table
  40.     AlterTableCommit = 1,  // Commit alter table
  41.     AlterTableRevert = 2   // Prepare failed, revert instead
  42.   };
  43. private:
  44.   Uint32 senderRef;
  45.   Uint32 senderData;
  46.   Uint32 clientRef;
  47.   Uint32 clientData;
  48.   Uint32 changeMask;
  49.   Uint32 tableId;
  50.   Uint32 tableVersion;
  51.   Uint32 gci;
  52.   Uint32 requestType;
  53.   SECTION( DICT_TAB_INFO = 0 );
  54. };
  55. struct AlterTabRef {
  56.   /**
  57.    * Sender(s) / Reciver(s)
  58.    */
  59.   friend class Dbdict;
  60.   friend class Dbdih;
  61.   friend class Dbtc;
  62.   friend class Dblqh;
  63.   friend class Dbtup;
  64.   friend class SafeCounter;
  65.   
  66.   /**
  67.    * For printing
  68.    */
  69.   friend bool printALTER_TAB_REF(FILE *, const Uint32 *, Uint32, Uint16);
  70.   
  71.   STATIC_CONST( SignalLength = 7 );
  72.   STATIC_CONST( GSN = GSN_ALTER_TAB_REF );
  73.   enum ErrorCode {
  74.     NF_FakeErrorREF = 255
  75.   };
  76.   Uint32 senderRef;
  77.   Uint32 senderData;
  78.   Uint32 errorCode;
  79.   Uint32 errorLine; 
  80.   Uint32 errorKey;
  81.   Uint32 errorStatus;
  82.   Uint32 requestType;
  83. };
  84. class AlterTabConf {
  85.   /**
  86.    * Sender(s) / Reciver(s)
  87.    */
  88.   friend class Dbdict;
  89.   friend class Dbdih;
  90.   friend class Dbtc;
  91.   friend class Dblqh;
  92.   friend class Dbtup;
  93.   
  94.   /**
  95.    * For printing
  96.    */
  97.   friend bool printALTER_TAB_CONF(FILE *, const Uint32 *, Uint32, Uint16);
  98.   
  99. public:
  100.   STATIC_CONST( SignalLength = 7 );
  101. private:
  102.   Uint32 senderRef;
  103.   Uint32 senderData;
  104.   Uint32 changeMask;
  105.   Uint32 tableId;
  106.   Uint32 tableVersion;
  107.   Uint32 gci;
  108.   Uint32 requestType;
  109. };
  110. #endif