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

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 LQH_FRAG_HPP
  14. #define LQH_FRAG_HPP
  15. #include "SignalData.hpp"
  16. class AddFragReq {
  17.   /**
  18.    * Sender(s)
  19.    */
  20.   friend class Dbdih;
  21.   /**
  22.    * Receiver(s)
  23.    */
  24.   friend class Dbdict;
  25.   
  26.   friend bool printADD_FRAG_REQ(FILE *, const Uint32 *, Uint32, Uint16);
  27. public:
  28.   STATIC_CONST( SignalLength = 9 );
  29.   
  30.   enum RequestInfo {
  31.     CreateInRunning = 0x8000000,
  32.     TemporaryTable = 0x00000010
  33.   };
  34. private:
  35.   Uint32 dihPtr;
  36.   Uint32 senderData; // The same data as sent in DIADDTABREQ
  37.   Uint32 fragmentId;
  38.   Uint32 requestInfo; 
  39.   Uint32 tableId;
  40.   Uint32 nextLCP;
  41.   Uint32 nodeId;
  42.   Uint32 totalFragments;
  43.   Uint32 startGci;
  44. };
  45. class AddFragRef {
  46.   /**
  47.    * Sender(s)
  48.    */
  49.   friend class Dbdict;
  50.   /**
  51.    * Receiver(s)
  52.    */
  53.   friend class Dbdih;
  54.   friend bool printADD_FRAG_REF(FILE *, const Uint32 *, Uint32, Uint16);
  55. public:
  56.   STATIC_CONST( SignalLength = 1 );
  57.   
  58. private:
  59.   Uint32 dihPtr;
  60. };
  61. class AddFragConf {
  62.   /**
  63.    * Sender(s)
  64.    */
  65.   friend class Dbdict;
  66.   /**
  67.    * Receiver(s)
  68.    */
  69.   friend class Dbdih;
  70.   friend bool printADD_FRAG_CONF(FILE *, const Uint32 *, Uint32, Uint16);
  71. public:
  72.   STATIC_CONST( SignalLength = 2 );
  73.   
  74. private:
  75.   Uint32 dihPtr;
  76.   Uint32 fragId;
  77. };
  78. class LqhFragReq {
  79.   /**
  80.    * Sender(s)
  81.    */
  82.   friend class Dbdict;
  83.   /**
  84.    * Receiver(s)
  85.    */
  86.   friend class Dblqh;
  87.   
  88.   friend bool printLQH_FRAG_REQ(FILE *, const Uint32 *, Uint32, Uint16);
  89. public:
  90.   STATIC_CONST( SignalLength = 25 );
  91.   
  92.   enum RequestInfo {
  93.     CreateInRunning = 0x8000000,
  94.     TemporaryTable = 0x00000010
  95.   };
  96. private:
  97.   Uint32 senderData;
  98.   Uint32 senderRef;
  99.   Uint32 fragmentId;
  100.   Uint32 requestInfo; 
  101.   Uint32 tableId;
  102.   Uint32 localKeyLength;
  103.   Uint32 maxLoadFactor;
  104.   Uint32 minLoadFactor;
  105.   Uint32 kValue;
  106.   Uint32 lh3DistrBits;
  107.   Uint32 lh3PageBits;
  108.   Uint32 noOfAttributes;
  109.   Uint32 noOfNullAttributes;
  110.   Uint32 noOfPagesToPreAllocate;
  111.   Uint32 schemaVersion;
  112.   Uint32 keyLength;
  113.   Uint32 nextLCP;
  114.   Uint32 noOfKeyAttr;
  115.   Uint32 noOfNewAttr;           // noOfCharsets in upper half
  116.   Uint32 checksumIndicator;
  117.   Uint32 noOfAttributeGroups;
  118.   Uint32 GCPIndicator;
  119.   Uint32 startGci;
  120.   Uint32 tableType;             // DictTabInfo::TableType
  121.   Uint32 primaryTableId;        // table of index or RNIL
  122. };
  123. class LqhFragConf {
  124.   /**
  125.    * Sender(s)
  126.    */
  127.   friend class Dblqh;
  128.   /**
  129.    * Receiver(s)
  130.    */
  131.   friend class Dbdict;
  132.   friend bool printLQH_FRAG_CONF(FILE *, const Uint32 *, Uint32, Uint16);
  133. public:
  134.   STATIC_CONST( SignalLength = 2 );
  135. private:
  136.   Uint32 senderData;
  137.   Uint32 lqhFragPtr;
  138. };
  139. class LqhFragRef {
  140.   /**
  141.    * Sender(s)
  142.    */
  143.   friend class Dblqh;
  144.   /**
  145.    * Receiver(s)
  146.    */
  147.   friend class Dbdict;
  148.   friend bool printLQH_FRAG_REF(FILE *, const Uint32 *, Uint32, Uint16);
  149. public:
  150.   STATIC_CONST( SignalLength = 2 );
  151. private:
  152.   Uint32 senderData;
  153.   Uint32 errorCode;
  154. };
  155. class LqhAddAttrReq {
  156.   /**
  157.    * Sender(s)
  158.    */
  159.   friend class Dbdict;
  160.   /**
  161.    * Receiver(s)
  162.    */
  163.   friend class Dblqh;
  164.   friend bool printLQH_ADD_ATTR_REQ(FILE *, const Uint32 *, Uint32, Uint16);
  165. public:
  166.   STATIC_CONST( HeaderLength = 4 );
  167.   STATIC_CONST( EntryLength = 3 );
  168.   STATIC_CONST( MAX_ATTRIBUTES = 6 );
  169.   struct Entry {
  170.     Uint32 attrId;              // for index, includes primary attr id << 16
  171.     Uint32 attrDescriptor;      // 2 words type info
  172.     Uint32 extTypeInfo;
  173.   };
  174. private:
  175.   Uint32 lqhFragPtr;
  176.   Uint32 noOfAttributes;
  177.   Uint32 senderData;
  178.   Uint32 senderAttrPtr;
  179.   Entry attributes[MAX_ATTRIBUTES];
  180. };
  181. class LqhAddAttrRef {
  182.   /**
  183.    * Sender(s)
  184.    */
  185.   friend class Dblqh;
  186.   
  187.   /**
  188.    * Receiver(s)
  189.    */
  190.   friend class Dbdict;
  191.   friend bool printLQH_ADD_ATTR_REF(FILE *, const Uint32 *, Uint32, Uint16);
  192. public:
  193.   STATIC_CONST( SignalLength = 2 );
  194. private:
  195.   Uint32 senderData;
  196.   Uint32 errorCode;
  197. };
  198. class LqhAddAttrConf {
  199.   /**
  200.    * Sender(s)
  201.    */
  202.   friend class Dblqh;
  203.   
  204.   /**
  205.    * Receiver(s)
  206.    */
  207.   friend class Dbdict;
  208.   friend bool printLQH_ADD_ATTR_CONF(FILE *, const Uint32 *, Uint32, Uint16);
  209. public:
  210.   STATIC_CONST( SignalLength = 3 );
  211. private:
  212.   Uint32 senderData;
  213.   Uint32 senderAttrPtr;
  214.   Uint32 fragId;
  215. };
  216. #endif