List:Commits« Previous MessageNext Message »
From:tomas Date:June 27 2006 11:30am
Subject:bk commit into 5.1 tree (tomas:1.2221)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of tomas. When tomas does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2221 06/06/27 11:30:21 tomas@stripped +3 -0
  Merge poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
  into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb

  storage/ndb/include/kernel/signaldata/DictTabInfo.hpp
    1.30 06/06/27 11:30:16 tomas@stripped +0 -1
    manual merge

  sql/ha_ndbcluster.cc
    1.338 06/06/27 11:30:16 tomas@stripped +0 -0
    manual merge

  storage/ndb/include/kernel/signaldata/DictTabInfo.hpp
    1.17.4.2 06/06/27 11:28:39 tomas@stripped +0 -0
    Merge rename: ndb/include/kernel/signaldata/DictTabInfo.hpp ->
storage/ndb/include/kernel/signaldata/DictTabInfo.hpp

  storage/ndb/include/kernel/GlobalSignalNumbers.h
    1.19 06/06/27 11:28:39 tomas@stripped +0 -2
    Auto merged

  storage/ndb/include/kernel/GlobalSignalNumbers.h
    1.7.5.2 06/06/27 11:28:38 tomas@stripped +0 -0
    Merge rename: ndb/include/kernel/GlobalSignalNumbers.h ->
storage/ndb/include/kernel/GlobalSignalNumbers.h

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	tomas
# Host:	poseidon.ndb.mysql.com
# Root:	/home/tomas/mysql-5.1-new-ndb/RESYNC

--- 1.7.5.1/ndb/include/kernel/GlobalSignalNumbers.h	2006-06-27 11:25:54 +02:00
+++ 1.19/storage/ndb/include/kernel/GlobalSignalNumbers.h	2006-06-27 11:28:39 +02:00
@@ -23,7 +23,7 @@
  *
  * When adding a new signal, remember to update MAX_GSN and SignalNames.cpp
  */
-const GlobalSignalNumber MAX_GSN = 712;
+const GlobalSignalNumber MAX_GSN = 730;
 
 struct GsnName {
   GlobalSignalNumber gsn;
@@ -111,9 +111,9 @@
 /* 57 unused */
 /* 58 unused */
 /* 59 unused */
-/* 60 unused */
-/* 61 unused */
-/* 62 unused */
+#define GSN_ALLOC_NODEID_REQ            60
+#define GSN_ALLOC_NODEID_CONF           61
+#define GSN_ALLOC_NODEID_REF            62
 /* 63 unused */
 /* 64 unused */
 /* 65 unused */
@@ -124,30 +124,34 @@
  */
 
 #define GSN_ACC_ABORTCONF               67
-/* 68 unused */
-/* 69 unused */
+/* 68 not unused */
+/* 69 not unused */
 /* 70 unused */
 #define GSN_ACC_ABORTREQ                71
 #define GSN_ACC_CHECK_SCAN              72
 #define GSN_ACC_COMMITCONF              73
 #define GSN_ACC_COMMITREQ               74
-#define GSN_ACC_CONTOPCONF              75
-#define GSN_ACC_CONTOPREQ               76
-#define GSN_ACC_LCPCONF                 77
-#define GSN_ACC_LCPREF                  78
-#define GSN_ACC_LCPREQ                  79
-#define GSN_ACC_LCPSTARTED              80
+/* 75 unused */
+/* 76 unused */
+
+/* 79 unused */
+/* 78 unused */
+/* 77 unused */
+
+/* 80 unused */
 #define GSN_ACC_OVER_REC                81
 
-#define GSN_ACC_SAVE_PAGES              83
+/* 83 unused */
 #define GSN_ACC_SCAN_INFO               84
 #define GSN_ACC_SCAN_INFO24             85
 #define GSN_ACC_SCANCONF                86
 #define GSN_ACC_SCANREF                 87
 #define GSN_ACC_SCANREQ                 88
-#define GSN_ACC_SRCONF                  89
-#define GSN_ACC_SRREF                   90
-#define GSN_ACC_SRREQ                   91
+
+#define GSN_RESTORE_LCP_REQ             91
+#define GSN_RESTORE_LCP_REF             90
+#define GSN_RESTORE_LCP_CONF            89
+
 #define GSN_ACC_TO_CONF                 92
 #define GSN_ACC_TO_REF                  93
 #define GSN_ACC_TO_REQ                  94
@@ -169,6 +173,7 @@
 #define GSN_ADD_FRAGREF                 110
 #define GSN_ADD_FRAGREQ                 111
 
+#define GSN_API_START_REP               120
 #define GSN_API_FAILCONF                113
 #define GSN_API_FAILREQ                 114
 #define GSN_CNTR_START_REQ              115
@@ -176,7 +181,7 @@
 #define GSN_CNTR_START_REF              117
 #define GSN_CNTR_START_CONF             118
 #define GSN_CNTR_START_REP              119
-/* 120 unused */
+/* 120 not unused */
 /* 121 unused */
 /* 122 unused */
 /* 123 unused */
@@ -330,7 +335,9 @@
 #define GSN_DIVERIFYREQ                 241
 #define GSN_ENABLE_COMORD               242
 #define GSN_END_LCPCONF                 243
+#define GSN_END_LCP_CONF                243
 #define GSN_END_LCPREQ                  244
+#define GSN_END_LCP_REQ                 244
 #define GSN_END_TOCONF                  245
 #define GSN_END_TOREQ                   246
 #define GSN_EVENT_REP                   247
@@ -371,21 +378,24 @@
 #define GSN_GCP_SAVEREF                 282
 #define GSN_GCP_SAVEREQ                 283
 #define GSN_GCP_TCFINISHED              284
-#define GSN_SR_FRAGIDCONF               285
-#define GSN_SR_FRAGIDREF                286
-#define GSN_SR_FRAGIDREQ                287
+
+/* 285 unused */
+/* 286 unused */
+/* 287 unused */
 #define GSN_GETGCICONF                  288
 #define GSN_GETGCIREQ                   289
 #define GSN_HOT_SPAREREP                290
 #define GSN_INCL_NODECONF               291
 #define GSN_INCL_NODEREF                292
 #define GSN_INCL_NODEREQ                293
-#define GSN_LCP_FRAGIDCONF              294
-#define GSN_LCP_FRAGIDREF               295
-#define GSN_LCP_FRAGIDREQ               296
-#define GSN_LCP_HOLDOPCONF              297
-#define GSN_LCP_HOLDOPREF               298
-#define GSN_LCP_HOLDOPREQ               299
+
+#define GSN_LCP_PREPARE_REQ             296
+#define GSN_LCP_PREPARE_REF             295
+#define GSN_LCP_PREPARE_CONF            294
+
+/* 297 unused */
+/* 298 unused */
+/* 299 unused */
 #define GSN_SHRINKCHECK2                301
 #define GSN_GET_SCHEMA_INFOREQ          302
 /* 303 not unused */
@@ -507,26 +517,24 @@
 #define GSN_TEST_ORD                    407
 #define GSN_TESTSIG                     408
 #define GSN_TIME_SIGNAL                 409
-/* 410 unused  */
-/* 411 unused  */
-/* 412 unused */
 #define GSN_TUP_ABORTREQ                414
 #define GSN_TUP_ADD_ATTCONF             415
 #define GSN_TUP_ADD_ATTRREF             416
 #define GSN_TUP_ADD_ATTRREQ             417
 #define GSN_TUP_ATTRINFO                418
 #define GSN_TUP_COMMITREQ               419
-/* 420 unused */
-#define GSN_TUP_LCPCONF                 421
-#define GSN_TUP_LCPREF                  422
-#define GSN_TUP_LCPREQ                  423
-#define GSN_TUP_LCPSTARTED              424
-#define GSN_TUP_PREPLCPCONF             425
-#define GSN_TUP_PREPLCPREF              426
-#define GSN_TUP_PREPLCPREQ              427
-#define GSN_TUP_SRCONF                  428
-#define GSN_TUP_SRREF                   429
-#define GSN_TUP_SRREQ                   430
+
+/* 421 unused */
+/* 422 unused */
+/* 423 unused */
+
+/* 424 unused */
+/* 425 unused */
+/* 426 unused */
+/* 427 unused */
+/* 428 unused */
+/* 429 unused */
+/* 430 unused */
 #define GSN_TUPFRAGCONF                 431
 #define GSN_TUPFRAGREF                  432
 #define GSN_TUPFRAGREQ                  433
@@ -558,10 +566,10 @@
 #define GSN_EVENT_SUBSCRIBE_REQ         458
 #define GSN_EVENT_SUBSCRIBE_CONF        459
 #define GSN_EVENT_SUBSCRIBE_REF         460
-#define GSN_ACC_COM_BLOCK               461
-#define GSN_ACC_COM_UNBLOCK             462
-#define GSN_TUP_COM_BLOCK               463
-#define GSN_TUP_COM_UNBLOCK             464
+/* 461 unused */
+/* 462 unused */
+/* 463 unused */
+/* 464 unused */
 
 #define GSN_DUMP_STATE_ORD              465
 
@@ -591,6 +599,7 @@
 #define GSN_BLOCK_COMMIT_ORD            485
 #define GSN_UNBLOCK_COMMIT_ORD          486
 
+#define GSN_NODE_START_REP              502
 #define GSN_NODE_STATE_REP              487
 #define GSN_CHANGE_NODE_STATE_REQ       488
 #define GSN_CHANGE_NODE_STATE_CONF      489
@@ -611,6 +620,8 @@
 #define GSN_WAIT_GCP_REF                500
 #define GSN_WAIT_GCP_CONF               501
 
+/* 502 used */
+
 /**
  * Trigger and index signals
  */
@@ -741,7 +752,7 @@
 #define GSN_SUB_SYNC_REQ                582
 #define GSN_SUB_SYNC_REF                583
 #define GSN_SUB_SYNC_CONF               584
-#define GSN_SUB_META_DATA               585
+/*                                      585 unused */
 #define GSN_SUB_TABLE_DATA              586
 
 #define GSN_CREATE_TABLE_REQ            587
@@ -773,66 +784,59 @@
 #define GSN_ALTER_INDX_REF              604
 #define GSN_ALTER_INDX_CONF             605
 
-/**
- * Grep signals
- */
 #define GSN_ALTER_TABLE_REP             606
 #define GSN_API_BROADCAST_REP           607
-#define GSN_GREP_SUB_CREATE_CONF        608
-#define GSN_GREP_CREATE_REQ             609
-#define GSN_GREP_CREATE_REF             610
-#define GSN_GREP_CREATE_CONF            611
-
-#define GSN_GREP_SUB_START_REQ          612
-#define GSN_GREP_SUB_START_REF          613
-#define GSN_GREP_SUB_START_CONF         614
-#define GSN_GREP_START_REQ              615
-#define GSN_GREP_START_REF              616
-#define GSN_GREP_START_CONF             617
-
-#define GSN_GREP_SUB_SYNC_REQ	        618
-#define GSN_GREP_SUB_SYNC_REF	        619
-#define GSN_GREP_SUB_SYNC_CONF          620
-#define GSN_GREP_SYNC_REQ               621
-#define GSN_GREP_SYNC_REF               622
-#define GSN_GREP_SYNC_CONF              623
-
-/**
- * REP signals
- */
-#define GSN_REP_WAITGCP_REQ             627
-#define GSN_REP_WAITGCP_REF             628
-#define GSN_REP_WAITGCP_CONF            629
-#define GSN_GREP_WAITGCP_REQ            630
-#define GSN_GREP_WAITGCP_REF            631
-#define GSN_GREP_WAITGCP_CONF           632
-#define GSN_REP_GET_GCI_REQ		633
-#define GSN_REP_GET_GCI_REF		634
-#define GSN_REP_GET_GCI_CONF		635
-#define GSN_REP_GET_GCIBUFFER_REQ      	636
-#define GSN_REP_GET_GCIBUFFER_REF      	637
-#define GSN_REP_GET_GCIBUFFER_CONF     	638
-#define GSN_REP_INSERT_GCIBUFFER_REQ  	639
-#define GSN_REP_INSERT_GCIBUFFER_REF    640
-#define GSN_REP_INSERT_GCIBUFFER_CONF	641
-#define GSN_REP_CLEAR_PS_GCIBUFFER_REQ  642
-#define GSN_REP_CLEAR_PS_GCIBUFFER_REF  643
-#define GSN_REP_CLEAR_PS_GCIBUFFER_CONF 644
-#define GSN_REP_CLEAR_SS_GCIBUFFER_REQ  645
-#define GSN_REP_CLEAR_SS_GCIBUFFER_REF  646
-#define GSN_REP_CLEAR_SS_GCIBUFFER_CONF 647
-#define GSN_REP_DATA_PAGE	  	648
-#define GSN_REP_GCIBUFFER_ACC_REP 	649
-
-#define GSN_GREP_SUB_REMOVE_REQ	        650
-#define GSN_GREP_SUB_REMOVE_REF	        651
-#define GSN_GREP_SUB_REMOVE_CONF        652
-#define GSN_GREP_REMOVE_REQ             653
-#define GSN_GREP_REMOVE_REF             654
-#define GSN_GREP_REMOVE_CONF            655
+#define GSN_608
+#define GSN_609
+#define GSN_610
+#define GSN_611
+
+#define GSN_612
+#define GSN_613
+#define GSN_614
+#define GSN_615
+#define GSN_616
+#define GSN_617
+
+#define GSN_618
+#define GSN_619
+#define GSN_620
+#define GSN_621
+#define GSN_622
+#define GSN_623
+
+#define GSN_627
+#define GSN_628
+#define GSN_629
+#define GSN_630
+#define GSN_631
+#define GSN_632
+#define GSN_633
+#define GSN_634
+#define GSN_635
+#define GSN_636
+#define GSN_637
+#define GSN_638
+#define GSN_639
+#define GSN_640
+#define GSN_641
+#define GSN_642
+#define GSN_643
+#define GSN_644
+#define GSN_645
+#define GSN_646
+#define GSN_647
+#define GSN_648
+#define GSN_649
+
+#define GSN_650
+#define GSN_651
+#define GSN_652
+#define GSN_653
+#define GSN_654
+#define GSN_655
 
-/* Start Global Replication */
-#define GSN_GREP_REQ                    656
+#define GSN_656
 
 #define GSN_UTIL_CREATE_LOCK_REQ        132
 #define GSN_UTIL_CREATE_LOCK_REF        133
@@ -855,13 +859,12 @@
 #define GSN_CREATE_SUBID_REF            662      
 #define GSN_CREATE_SUBID_CONF           663      
 
-/* GREP */
-#define GSN_GREP_CREATE_SUBID_REQ       664      
-#define GSN_GREP_CREATE_SUBID_REF       665
-#define GSN_GREP_CREATE_SUBID_CONF      666    
-#define GSN_REP_DROP_TABLE_REQ          667      
-#define GSN_REP_DROP_TABLE_REF          668
-#define GSN_REP_DROP_TABLE_CONF         669    
+/* used 664 */
+/* used 665 */
+/* used 666 */
+/* used 667 */
+/* used 668 */
+/* used 669 */
 
 /*
  * TUX
@@ -903,27 +906,27 @@
 /**
  * SUMA restart protocol
  */
-#define GSN_SUMA_START_ME               691
+#define GSN_SUMA_START_ME_REQ           691
+#define GSN_SUMA_START_ME_REF           694
+#define GSN_SUMA_START_ME_CONF          695
 #define GSN_SUMA_HANDOVER_REQ           692
+#define GSN_SUMA_HANDOVER_REF           696
 #define GSN_SUMA_HANDOVER_CONF          693
 
-/* not used                             694 */
-/* not used                             695 */
-/* not used                             696 */
-
-/**
- * GREP restart protocol
- */
-#define GSN_GREP_START_ME              706
-#define GSN_GREP_ADD_SUB_REQ           707
-#define GSN_GREP_ADD_SUB_REF           708
-#define GSN_GREP_ADD_SUB_CONF          709
+/* used 694 */
+/* used 695 */
+/* used 696 */
+
+#define GSN_706
+#define GSN_707
+#define GSN_708
+#define GSN_709
 
 
 /*
  * EVENT Signals
  */
-#define GSN_SUB_GCP_COMPLETE_ACC        699
+#define GSN_SUB_GCP_COMPLETE_ACK        699
 
 #define GSN_CREATE_EVNT_REQ             700
 #define GSN_CREATE_EVNT_CONF            701
@@ -936,6 +939,50 @@
 #define GSN_TUX_BOUND_INFO		710
 
 #define GSN_ACC_LOCKREQ			711
-#define GSN_READ_PSUEDO_REQ             712
+#define GSN_READ_PSEUDO_REQ             712
+
+/**
+ * Filegroup 
+ */
+#define GSN_CREATE_FILEGROUP_REQ        713
+#define GSN_CREATE_FILEGROUP_REF        714
+#define GSN_CREATE_FILEGROUP_CONF       715
+
+#define GSN_CREATE_FILE_REQ             716
+#define GSN_CREATE_FILE_REF             717
+#define GSN_CREATE_FILE_CONF            718
+
+#define GSN_DROP_FILEGROUP_REQ          719
+#define GSN_DROP_FILEGROUP_REF          720
+#define GSN_DROP_FILEGROUP_CONF         721
+
+#define GSN_DROP_FILE_REQ               722
+#define GSN_DROP_FILE_REF               723
+#define GSN_DROP_FILE_CONF              724
+
+#define GSN_CREATE_OBJ_REQ              725
+#define GSN_CREATE_OBJ_REF              726
+#define GSN_CREATE_OBJ_CONF             727
+
+#define GSN_DROP_OBJ_REQ                728
+#define GSN_DROP_OBJ_REF                729
+#define GSN_DROP_OBJ_CONF               730
+
+#define GSN_ALLOC_EXTENT_REQ             68
+#define GSN_FREE_EXTENT_REQ              69
+
+#define GSN_DICT_COMMIT_REQ             664
+#define GSN_DICT_COMMIT_REF             665
+#define GSN_DICT_COMMIT_CONF            666
+
+#define GSN_DICT_ABORT_REQ              667
+#define GSN_DICT_ABORT_REF              668
+#define GSN_DICT_ABORT_CONF             669
+
+/* DICT LOCK signals */
+#define GSN_DICT_LOCK_REQ               410
+#define GSN_DICT_LOCK_CONF              411
+#define GSN_DICT_LOCK_REF               412
+#define GSN_DICT_UNLOCK_ORD             420
 
 #endif

--- 1.17.4.1/ndb/include/kernel/signaldata/DictTabInfo.hpp	2006-06-27 11:25:54 +02:00
+++ 1.30/storage/ndb/include/kernel/signaldata/DictTabInfo.hpp	2006-06-27 11:30:16 +02:00
@@ -21,8 +21,8 @@
 #include <AttributeDescriptor.hpp>
 #include <SimpleProperties.hpp>
 #include <ndb_limits.h>
-#include <trigger_definitions.h>
 #include <NdbSqlUtil.hpp>
+#include <ndb_global.h>
 
 #ifndef my_decimal_h
 
@@ -90,9 +90,9 @@
     CopyTable           = 3, // Between DICT's
     ReadTableFromDiskSR = 4, // Local in DICT
     GetTabInfoConf      = 5,
-    AlterTableFromAPI  = 6
+    AlterTableFromAPI   = 6
   };
-
+  
   enum KeyValues {
     TableName          = 1,  // String, Mandatory
     TableId            = 2,  //Mandatory between DICT's otherwise not allowed
@@ -121,12 +121,24 @@
     FragmentCount      = 128, // No of fragments in table (!fragment replicas)
     FragmentDataLen    = 129,
     FragmentData       = 130, // CREATE_FRAGMENTATION reply
-
+    TablespaceId       = 131,
+    TablespaceVersion  = 132,
+    TablespaceDataLen  = 133,
+    TablespaceData     = 134,
+    RangeListDataLen   = 135,
+    RangeListData      = 136,
+    ReplicaDataLen     = 137,
+    ReplicaData        = 138,
     MaxRowsLow         = 139,
     MaxRowsHigh        = 140,
+    DefaultNoPartFlag  = 141,
+    LinearHashFlag     = 142,
     MinRowsLow         = 143,
     MinRowsHigh        = 144,
 
+    RowGCIFlag         = 150,
+    RowChecksumFlag    = 151,
+    
     TableEnd           = 999,
     
     AttributeName          = 1000, // String, Mandatory
@@ -135,7 +147,7 @@
     AttributeSize          = 1003, //Default DictTabInfo::a32Bit
     AttributeArraySize     = 1005, //Default 1
     AttributeKeyFlag       = 1006, //Default noKey
-    AttributeStorage       = 1007, //Default MainMemory
+    AttributeStorageType   = 1007, //Default NDB_STORAGETYPE_MEMORY
     AttributeNullableFlag  = 1008, //Default NotNullable
     AttributeDKey          = 1010, //Default NotDKey
     AttributeExtType       = 1013, //Default ExtUnsigned
@@ -143,7 +155,8 @@
     AttributeExtScale      = 1015, //Default 0
     AttributeExtLength     = 1016, //Default 0
     AttributeAutoIncrement = 1017, //Default false
-    AttributeDefaultValue  = 1018, //Default value (printable string)
+    AttributeDefaultValue  = 1018, //Default value (printable string),
+    AttributeArrayType     = 1019, //Default NDB_ARRAYTYPE_FIXED
     AttributeEnd           = 1999  //
   };
   // ----------------------------------------------------------------------
@@ -158,7 +171,12 @@
     AllNodesSmallTable = 0,
     AllNodesMediumTable = 1,
     AllNodesLargeTable = 2,
-    SingleFragment = 3
+    SingleFragment = 3,
+    DistrKeyHash = 4,
+    DistrKeyLin = 5,
+    UserDefined = 6,
+    DistrKeyUniqueHashIndex = 7,
+    DistrKeyOrderedIndex = 8
   };
   
   // TableType constants + objects
@@ -171,11 +189,21 @@
     UniqueOrderedIndex = 5,
     OrderedIndex = 6,
     // constant 10 hardcoded in Dbdict.cpp
-    HashIndexTrigger = 10 + TriggerType::SECONDARY_INDEX,
-    SubscriptionTrigger = 10 + TriggerType::SUBSCRIPTION,
-    ReadOnlyConstraint = 10 + TriggerType::READ_ONLY_CONSTRAINT,
-    IndexTrigger = 10 + TriggerType::ORDERED_INDEX
+    HashIndexTrigger = 11,
+    SubscriptionTrigger = 16,
+    ReadOnlyConstraint = 17,
+    IndexTrigger = 18,
+    
+    Tablespace = 20,        ///< Tablespace
+    LogfileGroup = 21,      ///< Logfile group
+    Datafile = 22,          ///< Datafile
+    Undofile = 23           ///< Undofile
   };
+
+  // used 1) until type BlobTable added 2) in upgrade code
+  static bool
+  isBlobTableName(const char* name, Uint32* ptab_id = 0, Uint32* pcol_no = 0);
+  
   static inline bool
   isTable(int tableType) {
     return
@@ -214,7 +242,28 @@
       tableType == UniqueOrderedIndex ||
       tableType == OrderedIndex;
   }
+  static inline bool
+  isTrigger(int tableType) {
+    return
+      tableType == HashIndexTrigger ||
+      tableType == SubscriptionTrigger ||
+      tableType == ReadOnlyConstraint ||
+      tableType == IndexTrigger;
+  }
+  static inline bool
+  isFilegroup(int tableType) {
+    return
+      tableType == Tablespace ||
+      tableType == LogfileGroup;
+  }
 
+  static inline bool
+  isFile(int tableType) {
+    return
+      tableType == Datafile||
+      tableType == Undofile;
+  }
+  
   // Object state for translating from/to API
   enum ObjectState {
     StateUndefined = 0,
@@ -257,7 +306,6 @@
     Uint32 MaxLoadFactor;
     Uint32 KeyLength;
     Uint32 FragmentType;
-    Uint32 TableStorage;
     Uint32 TableType;
     Uint32 TableVersion;
     Uint32 IndexState;
@@ -265,16 +313,39 @@
     Uint32 UpdateTriggerId;
     Uint32 DeleteTriggerId;
     Uint32 CustomTriggerId;
+    Uint32 TablespaceId;
+    Uint32 TablespaceVersion;
+    Uint32 MaxRowsLow;
+    Uint32 MaxRowsHigh;
+    Uint32 DefaultNoPartFlag;
+    Uint32 LinearHashFlag;
+    /*
+      TODO RONM:
+      We need to replace FRM, Fragment Data, Tablespace Data and in
+      very particular RangeListData with dynamic arrays
+    */
     Uint32 FrmLen;
     char   FrmData[MAX_FRM_DATA_SIZE];
     Uint32 FragmentCount;
+    Uint32 ReplicaDataLen;
+    Uint16 ReplicaData[MAX_FRAGMENT_DATA_BYTES];
     Uint32 FragmentDataLen;
-    Uint16 FragmentData[(MAX_FRAGMENT_DATA_BYTES+1)/2];
+    Uint16 FragmentData[3*MAX_NDB_PARTITIONS];
+
     Uint32 MaxRowsLow;
     Uint32 MaxRowsHigh;
     Uint32 MinRowsLow;
     Uint32 MinRowsHigh;
+
+    Uint32 TablespaceDataLen;
+    Uint32 TablespaceData[2*MAX_NDB_PARTITIONS];
+    Uint32 RangeListDataLen;
+    char   RangeListData[4*2*MAX_NDB_PARTITIONS*2];
+    
+    Uint32 RowGCIFlag;
+    Uint32 RowChecksumFlag;
     
+    Table() {}
     void init();
   };
 
@@ -325,6 +396,7 @@
     Uint32 AttributeType; // for osu 4.1->5.0.x
     Uint32 AttributeSize;
     Uint32 AttributeArraySize;
+    Uint32 AttributeArrayType;
     Uint32 AttributeKeyFlag;
     Uint32 AttributeNullableFlag;
     Uint32 AttributeDKey;
@@ -333,8 +405,10 @@
     Uint32 AttributeExtScale;
     Uint32 AttributeExtLength;
     Uint32 AttributeAutoIncrement;
+    Uint32 AttributeStorageType;
     char   AttributeDefaultValue[MAX_ATTR_DEFAULT_VALUE_SIZE];
     
+    Attribute() {}
     void init();
 
     inline
@@ -469,8 +543,9 @@
       fprintf(out, "AttributeType = %d\n", AttributeType);
       fprintf(out, "AttributeSize = %d\n", AttributeSize);
       fprintf(out, "AttributeArraySize = %d\n", AttributeArraySize);
+      fprintf(out, "AttributeArrayType = %d\n", AttributeArrayType);
       fprintf(out, "AttributeKeyFlag = %d\n", AttributeKeyFlag);
-      fprintf(out, "AttributeStorage = %d\n", AttributeStorage);
+      fprintf(out, "AttributeStorageType = %d\n", AttributeStorageType);
       fprintf(out, "AttributeNullableFlag = %d\n", AttributeNullableFlag);
       fprintf(out, "AttributeDKey = %d\n", AttributeDKey);
       fprintf(out, "AttributeGroup = %d\n", AttributeGroup);
@@ -508,20 +583,142 @@
   Uint32 tabInfoData[DataLength];
 
 public:
-  enum Depricated 
+  enum Depricated
   {
     AttributeDGroup    = 1009, //Default NotDGroup
     AttributeStoredInd = 1011, //Default NotStored
+    TableStorageVal    = 14, //Disk storage specified per attribute
     SecondTableId      = 17, //Mandatory between DICT's otherwise not allowed
     FragmentKeyTypeVal = 16 //Default PrimaryKey
   };
-  
-  enum Unimplemented 
+    
+  enum Unimplemented
   {
-    TableStorageVal    = 14, //Default StorageType::MainMemory
     ScanOptimised      = 15, //Default updateOptimised
-    AttributeGroup     = 1012 //Default 0
+    AttributeGroup     = 1012, //Default 0
+    FileNo             = 102
+  };
+};
+
+#define DFGIMAP(x, y, z) \
+  { DictFilegroupInfo::y, offsetof(x, z), SimpleProperties::Uint32Value, 0, (~0), 0 }
+
+#define DFGIMAP2(x, y, z, u, v) \
+  { DictFilegroupInfo::y, offsetof(x, z), SimpleProperties::Uint32Value, u, v, 0 }
+
+#define DFGIMAPS(x, y, z, u, v) \
+  { DictFilegroupInfo::y, offsetof(x, z), SimpleProperties::StringValue, u, v, 0 }
+
+#define DFGIMAPB(x, y, z, u, v, l) \
+  { DictFilegroupInfo::y, offsetof(x, z), SimpleProperties::BinaryValue, u, v, \
+                     offsetof(x, l) }
+
+#define DFGIBREAK(x) \
+  { DictFilegroupInfo::x, 0, SimpleProperties::InvalidValue, 0, 0, 0 }
+
+struct DictFilegroupInfo {
+  enum KeyValues {
+    FilegroupName     = 1,
+    FilegroupType     = 2,
+    FilegroupId       = 3,
+    FilegroupVersion  = 4,
+
+    /**
+     * File parameters
+     */
+    FileName          = 100,
+    FileType          = 101,
+    FileId            = 103,
+    FileFGroupId      = 104,
+    FileFGroupVersion = 105,
+    FileSizeHi        = 106,
+    FileSizeLo        = 107,
+    FileFreeExtents   = 108,
+    FileVersion       = 109,
+    FileEnd           = 199, //    
+
+    /**
+     * Tablespace parameters
+     */
+    TS_ExtentSize          = 1000, // specified in bytes
+    TS_LogfileGroupId      = 1001, 
+    TS_LogfileGroupVersion = 1002, 
+    TS_GrowLimit           = 1003, // In bytes
+    TS_GrowSizeHi          = 1004,
+    TS_GrowSizeLo          = 1005,
+    TS_GrowPattern         = 1006,
+    TS_GrowMaxSize         = 1007,
+
+    /**
+     * Logfile group parameters
+     */
+    LF_UndoBufferSize  = 2005, // In bytes
+    LF_UndoGrowLimit   = 2000, // In bytes
+    LF_UndoGrowSizeHi  = 2001,
+    LF_UndoGrowSizeLo  = 2002,
+    LF_UndoGrowPattern = 2003,
+    LF_UndoGrowMaxSize = 2004,
+    LF_UndoFreeWordsHi = 2006,
+    LF_UndoFreeWordsLo = 2007
+  };
+
+  // FragmentType constants
+  enum FileTypeValues {
+    Datafile = 0,
+    Undofile = 1
+    //, Redofile
+  };
+ 
+  struct GrowSpec {
+    Uint32 GrowLimit;
+    Uint32 GrowSizeHi;
+    Uint32 GrowSizeLo;
+    char   GrowPattern[PATH_MAX];
+    Uint32 GrowMaxSize;
+  };
+  
+  // Table data interpretation
+  struct Filegroup {
+    char   FilegroupName[MAX_TAB_NAME_SIZE];
+    Uint32 FilegroupType; // ObjType
+    Uint32 FilegroupId;
+    Uint32 FilegroupVersion;
+
+    union {
+      Uint32 TS_ExtentSize;
+      Uint32 LF_UndoBufferSize;
+    };
+    Uint32 TS_LogfileGroupId;
+    Uint32 TS_LogfileGroupVersion;
+    union {
+      GrowSpec TS_DataGrow;
+      GrowSpec LF_UndoGrow;
+    };
+    //GrowSpec LF_RedoGrow;
+    Uint32 LF_UndoFreeWordsHi;
+    Uint32 LF_UndoFreeWordsLo;
+    Filegroup() {}
+    void init();
+  };
+  static const Uint32 MappingSize;
+  static const SimpleProperties::SP2StructMapping Mapping[];
+
+  struct File {
+    char FileName[PATH_MAX];
+    Uint32 FileType;
+    Uint32 FileId;
+    Uint32 FileVersion;
+    Uint32 FilegroupId;
+    Uint32 FilegroupVersion;
+    Uint32 FileSizeHi;
+    Uint32 FileSizeLo;
+    Uint32 FileFreeExtents;
+
+    File() {}
+    void init();
   };
+  static const Uint32 FileMappingSize;
+  static const SimpleProperties::SP2StructMapping FileMapping[];
 };
 
 #endif
Thread
bk commit into 5.1 tree (tomas:1.2221)tomas27 Jun