List:Commits« Previous MessageNext Message »
From:Magnus Blåudd Date:May 18 2009 10:01am
Subject:bzr commit into mysql-5.1-telco-6.3 branch (magnus.blaudd:2961)
Bug#44685
View as plain text  
#At file:///home/msvensson/mysql/bug44685/ based on revid:magnus.blaudd@strippedy433spcieu0xe77

 2961 Magnus Blåudd	2009-05-18
      Bug#44685 ndb_config --xml does not give all section variants
       - part 3
       - Add new attribute "flags" to the list of configuration parameters
       - print the check="writable" tag if parameter has CI_CHECK_WRITABLE flag set

    modified:
      storage/ndb/src/mgmsrv/ConfigInfo.cpp
      storage/ndb/src/mgmsrv/ConfigInfo.hpp
=== modified file 'storage/ndb/src/mgmsrv/ConfigInfo.cpp'
--- a/storage/ndb/src/mgmsrv/ConfigInfo.cpp	2009-05-18 08:40:00 +0000
+++ b/storage/ndb/src/mgmsrv/ConfigInfo.cpp	2009-05-18 10:01:33 +0000
@@ -293,6 +293,7 @@ const DepricationTransform f_deprication
  * - Attr6:  Default Value (number only)
  * - Attr7:  Min value
  * - Attr8:  Max value
+ * - Attr9: Flags
  * 
  * Parameter constraints are coded in file Config.cpp.
  *
@@ -315,8 +316,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_SECTION,
     0,
-    0, 0 },
-  
+    0, 0, 0
+  },
   {
     KEY_INTERNAL,
     "Id",
@@ -326,8 +327,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     MANDATORY,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     KEY_INTERNAL,
     "HostName",
@@ -337,8 +338,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     MANDATORY,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     KEY_INTERNAL,
     "ByteOrder",
@@ -348,9 +349,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0,
-    0 },
-  
+    0, 0, 0
+  },
+
   /****************************************************************************
    * SYSTEM
    ***************************************************************************/
@@ -363,7 +364,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_SECTION,
     (const char *)CFG_SECTION_SYSTEM,
-    0, 0 },
+    0, 0, 0
+  },
 
   {
     CFG_SYS_NAME,
@@ -374,8 +376,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     MANDATORY,
-    0, 0 },
-  
+    0, 0, 0
+  },
   {
     CFG_SYS_PRIMARY_MGM_NODE,
     "PrimaryMGMNode",
@@ -386,8 +388,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_SYS_CONFIG_GENERATION,
     "ConfigGenerationNumber",
@@ -398,9 +401,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
-  { 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
+  {
     CFG_DB_SUBSCRIPTIONS,
     "MaxNoOfSubscriptions",
     DB_TOKEN,
@@ -410,8 +414,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_SUBSCRIBERS,
     "MaxNoOfSubscribers",
@@ -422,8 +427,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_SUB_OPERATIONS,
     "MaxNoOfConcurrentSubOperations",
@@ -434,8 +440,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "256",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     KEY_INTERNAL,
     "TcpBind_INADDR_ANY",
@@ -446,8 +453,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true"},
-  
+    "true",
+    0
+  },
+
   /***************************************************************************
    * DB
    ***************************************************************************/
@@ -460,9 +469,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_SECTION,
     (const char *)NODE_TYPE_DB, 
-    0, 0
+    0, 0, 0
   },
-
   {
     CFG_NODE_HOST,
     "HostName",
@@ -472,8 +480,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     "localhost",
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_NODE_SYSTEM,
     "System",
@@ -483,8 +491,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     KEY_INTERNAL,
     "Id",
@@ -495,8 +503,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     MANDATORY,
     "1",
-    STR_VALUE(MAX_DATA_NODE_ID) },
-
+    STR_VALUE(MAX_DATA_NODE_ID),
+    0
+  },
   {
     CFG_NODE_ID,
     "NodeId",
@@ -507,8 +516,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     MANDATORY,
     "1",
-    STR_VALUE(MAX_DATA_NODE_ID) },
-
+    STR_VALUE(MAX_DATA_NODE_ID),
+    0
+  },
   {
     KEY_INTERNAL,
     "ServerPort",
@@ -519,8 +529,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     UNDEFINED,
     "1",
-    STR_VALUE(MAX_PORT_NO) },
-
+    STR_VALUE(MAX_PORT_NO),
+    0
+  },
   {
     CFG_DB_NO_REPLICAS,
     "NoOfReplicas",
@@ -531,8 +542,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     MANDATORY,
     "1",
-    "4" },
-
+    "4",
+    0
+  },
   {
     CFG_DB_NO_ATTRIBUTES,
     "MaxNoOfAttributes",
@@ -543,8 +555,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1000",
     "32",
-    STR_VALUE(MAX_INT_RNIL) },
-  
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_NO_TABLES,
     "MaxNoOfTables",
@@ -555,8 +568,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "128",
     "8",
-    STR_VALUE(MAX_TABLES) },
-  
+    STR_VALUE(MAX_TABLES),
+    0
+  },
   {
     CFG_DB_NO_ORDERED_INDEXES,
     "MaxNoOfOrderedIndexes",
@@ -567,8 +581,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "128",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+  0
+  },
   {
     CFG_DB_NO_UNIQUE_HASH_INDEXES,
     "MaxNoOfUniqueHashIndexes",
@@ -579,8 +594,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "64",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_NO_INDEXES,
     "MaxNoOfIndexes",
@@ -591,8 +607,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "128",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_NO_INDEX_OPS,
     "MaxNoOfConcurrentIndexOperations",
@@ -603,9 +620,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "8K",
     "0",
-    STR_VALUE(MAX_INT_RNIL) 
-   },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_NO_TRIGGERS,
     "MaxNoOfTriggers",
@@ -616,8 +633,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "768",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_NO_TRIGGER_OPS,
     "MaxNoOfFiredTriggers",
@@ -628,8 +646,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "4000",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     KEY_INTERNAL,
     "ExecuteOnComputer",
@@ -639,8 +658,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-  
+    0, 0, 0
+  },
   {
     CFG_DB_NO_SAVE_MSGS,
     "MaxNoOfSavedMessages",
@@ -651,8 +670,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "25",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_EXECUTE_LOCK_CPU,
     "LockExecuteThreadToCPU",
@@ -663,8 +683,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "65535",
     "0",
-    "65535" },
-
+    "65535",
+    0
+  },
   {
     CFG_DB_MAINT_LOCK_CPU,
     "LockMaintThreadsToCPU",
@@ -675,8 +696,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "65535",
     "0",
-    "65535" },
-
+    "65535",
+    0
+  },
   {
     CFG_DB_REALTIME_SCHEDULER,
     "RealtimeScheduler",
@@ -687,8 +709,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true" },
-
+    "true",
+    0
+  },
   {
     CFG_DB_MEMLOCK,
     "LockPagesInMainMemory",
@@ -699,8 +722,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "2" },
-
+    "2",
+    0
+  },
   {
     CFG_DB_WATCHDOG_INTERVAL,
     "TimeBetweenWatchDogCheck",
@@ -711,8 +735,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "6000",
     "70",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_SCHED_EXEC_TIME,
     "SchedulerExecutionTimer",
@@ -723,8 +748,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "50",
     "0",
-    "11000" },
-
+    "11000",
+    0
+  },
   {
     CFG_DB_SCHED_SPIN_TIME,
     "SchedulerSpinTimer",
@@ -735,8 +761,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "500" },
-
+    "500",
+    0
+  },
   {
     CFG_DB_WATCHDOG_INTERVAL_INITIAL,
     "TimeBetweenWatchDogCheckInitial",
@@ -747,8 +774,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "6000",
     "70",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_STOP_ON_ERROR,
     "StopOnError",
@@ -759,9 +787,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "true",
     "false",
-    "true" },
-
-  { 
+    "true",
+    0
+  },
+  {
     CFG_DB_STOP_ON_ERROR_INSERT,
     "RestartOnErrorInsert",
     DB_TOKEN,
@@ -771,8 +800,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "2",
     "0",
-    "4" },
-  
+    "4",
+    0
+  },
   {
     CFG_DB_NO_OPS,
     "MaxNoOfConcurrentOperations",
@@ -783,8 +813,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "32k",
     "32",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_NO_LOCAL_OPS,
     "MaxNoOfLocalOperations",
@@ -795,8 +826,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     UNDEFINED,
     "32",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_NO_LOCAL_SCANS,
     "MaxNoOfLocalScans",
@@ -807,8 +839,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     UNDEFINED,
     "32",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_BATCH_SIZE,
     "BatchSizePerLocalScan",
@@ -819,8 +852,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     STR_VALUE(DEF_BATCH_SIZE),
     "1",
-    STR_VALUE(MAX_PARALLEL_OP_PER_SCAN) },
-
+    STR_VALUE(MAX_PARALLEL_OP_PER_SCAN),
+    0
+  },
   {
     CFG_DB_NO_TRANSACTIONS,
     "MaxNoOfConcurrentTransactions",
@@ -831,8 +865,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "4096",
     "32",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_NO_SCANS,
     "MaxNoOfConcurrentScans",
@@ -843,8 +878,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "256",
     "2",
-    "500" },
-
+    "500",
+    0
+  },
   {
     CFG_DB_TRANS_BUFFER_MEM,
     "TransactionBufferMemory",
@@ -855,8 +891,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1M",
     "1K",
-    STR_VALUE(MAX_INT_RNIL) },
- 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_INDEX_MEM,
     "IndexMemory",
@@ -867,8 +904,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT64,
     "18M",
     "1M",
-    "1024G" },
-
+    "1024G",
+    0
+  },
   {
     CFG_DB_DATA_MEM,
     "DataMemory",
@@ -879,8 +917,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT64,
     "80M",
     "1M",
-    "1024G" },
-
+    "1024G",
+    0
+  },
   {
     CFG_DB_UNDO_INDEX_BUFFER,
     "UndoIndexBuffer",
@@ -891,8 +930,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "2M",
     "1M",
-    STR_VALUE(MAX_INT_RNIL)},
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_UNDO_DATA_BUFFER,
     "UndoDataBuffer",
@@ -903,8 +943,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "16M",
     "1M",
-    STR_VALUE(MAX_INT_RNIL)},
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_REDO_BUFFER,
     "RedoBuffer",
@@ -915,8 +956,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "8M",
     "1M",
-    STR_VALUE(MAX_INT_RNIL)},
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_LONG_SIGNAL_BUFFER,
     "LongMessageBuffer",
@@ -927,8 +969,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1M",
     "512k",
-    STR_VALUE(MAX_INT_RNIL)},
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_DISK_PAGE_BUFFER_MEMORY,
     "DiskPageBufferMemory",
@@ -939,8 +982,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT64,
     "64M",
     "4M",
-    "1024G" },
-
+    "1024G",
+    0
+  },
   {
     CFG_DB_SGA,
     "SharedGlobalMemory",
@@ -951,8 +995,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT64,
     "20M",
     "0",
-    "65536G" }, // 32k pages * 32-bit i value
-  
+    "65536G", // 32k pages * 32-bit i value
+    0
+  },
   {
     CFG_DB_START_PARTIAL_TIMEOUT,
     "StartPartialTimeout",
@@ -963,8 +1008,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "30000",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_START_PARTITION_TIMEOUT,
     "StartPartitionedTimeout",
@@ -975,8 +1021,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "60000",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-  
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_START_FAILURE_TIMEOUT,
     "StartFailureTimeout",
@@ -987,8 +1034,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-  
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_HEARTBEAT_INTERVAL,
     "HeartbeatIntervalDbDb",
@@ -999,8 +1047,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1500",
     "10",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_API_HEARTBEAT_INTERVAL,
     "HeartbeatIntervalDbApi",
@@ -1011,8 +1060,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1500",
     "100",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_LCP_INTERVAL,
     "TimeBetweenLocalCheckpoints",
@@ -1023,8 +1073,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "20",
     "0",
-    "31" },
-
+    "31",
+    0
+  },
   {
     CFG_DB_GCP_INTERVAL,
     "TimeBetweenGlobalCheckpoints",
@@ -1035,8 +1086,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "2000",
     "20",
-    "32000" },
-
+    "32000",
+    0
+  },
   {
     CFG_DB_MICRO_GCP_INTERVAL,
     "TimeBetweenEpochs",
@@ -1047,8 +1099,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "100",
     "0",
-    "32000" },
-
+    "32000",
+    0
+  },
   {
     CFG_DB_MICRO_GCP_TIMEOUT,
     "TimeBetweenEpochsTimeout",
@@ -1059,8 +1112,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "4000",
     "0",
-    "32000" },
-
+    "32000",
+    0
+  },
   {
     CFG_DB_MAX_BUFFERED_EPOCHS,
     "MaxBufferedEpochs",
@@ -1071,8 +1125,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "100",
     "0",
-    "100000" },
-
+    "100000",
+    0
+  },
   {
     CFG_DB_NO_REDOLOG_FILES,
     "NoOfFragmentLogFiles",
@@ -1083,8 +1138,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "16",
     "3",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_REDOLOG_FILE_SIZE,
     "FragmentLogFileSize",
@@ -1095,8 +1151,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "16M",
     "4M",
-    "1G" },
-
+    "1G",
+    0
+  },
   {
     CFG_DB_INIT_REDO,
     "InitFragmentLogFiles",
@@ -1106,8 +1163,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_DB_MAX_OPEN_FILES,
     "MaxNoOfOpenFiles",
@@ -1118,8 +1175,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "20",
-    STR_VALUE(MAX_INT_RNIL) },
-  
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_INITIAL_OPEN_FILES,
     "InitialNoOfOpenFiles",
@@ -1130,8 +1188,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "27",
     "20",
-    STR_VALUE(MAX_INT_RNIL) },
-  
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_TRANSACTION_CHECK_INTERVAL,
     "TimeBetweenInactiveTransactionAbortCheck",
@@ -1142,8 +1201,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1000",
     "1000",
-    STR_VALUE(MAX_INT_RNIL) },
-  
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_TRANSACTION_INACTIVE_TIMEOUT,
     "TransactionInactiveTimeout",
@@ -1158,8 +1218,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     STR_VALUE(MAX_INT_RNIL),
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_TRANSACTION_DEADLOCK_TIMEOUT,
     "TransactionDeadlockDetectionTimeout",
@@ -1173,8 +1234,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1200",
     "50",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_LCP_DISC_PAGES_TUP_SR,
     "NoOfDiskPagesToDiskDuringRestartTUP",
@@ -1185,8 +1247,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "40",
     "1",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_LCP_DISC_PAGES_TUP,
     "NoOfDiskPagesToDiskAfterRestartTUP",
@@ -1197,8 +1260,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "40",
     "1",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_LCP_DISC_PAGES_ACC_SR,
     "NoOfDiskPagesToDiskDuringRestartACC",
@@ -1209,8 +1273,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "20",
     "1",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_LCP_DISC_PAGES_ACC,
     "NoOfDiskPagesToDiskAfterRestartACC",
@@ -1221,9 +1286,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "20",
     "1",
-    STR_VALUE(MAX_INT_RNIL) },
-  
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_DISCLESS,
     "Diskless",
@@ -1234,8 +1299,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true"},
-
+    "true",
+    0
+  },
   {
     KEY_INTERNAL,
     "Discless",
@@ -1246,10 +1312,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true"},
-  
-
-  
+    "true",
+    0
+  },
   {
     CFG_DB_ARBIT_TIMEOUT,
     "ArbitrationTimeout",
@@ -1260,8 +1325,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "3000",
     "10",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_NODE_DATADIR,
     "DataDir",
@@ -1271,8 +1337,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     MYSQLCLUSTERDIR,
-    0, 0 },
-
+    0, 0,
+    CI_CHECK_WRITABLE
+  },
   {
     CFG_DB_FILESYSTEM_PATH,
     "FileSystemPath",
@@ -1282,8 +1349,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0,
+    CI_CHECK_WRITABLE
+  },
   {
     CFG_LOGLEVEL_STARTUP,
     "LogLevelStartup",
@@ -1294,8 +1362,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1",
     "0",
-    "15" },
-  
+    "15",
+    0
+  },
   {
     CFG_LOGLEVEL_SHUTDOWN,
     "LogLevelShutdown",
@@ -1306,8 +1375,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "15" },
-
+    "15",
+    0
+  },
   {
     CFG_LOGLEVEL_STATISTICS,
     "LogLevelStatistic",
@@ -1318,8 +1388,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "15" },
-
+    "15",
+    0
+  },
   {
     CFG_LOGLEVEL_CHECKPOINT,
     "LogLevelCheckpoint",
@@ -1330,8 +1401,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "15" },
-
+    "15",
+    0
+  },
   {
     CFG_LOGLEVEL_NODERESTART,
     "LogLevelNodeRestart",
@@ -1342,8 +1414,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "15" },
-
+    "15",
+    0
+  },
   {
     CFG_LOGLEVEL_CONNECTION,
     "LogLevelConnection",
@@ -1354,8 +1427,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "15" },
-
+    "15",
+    0
+  },
   {
     CFG_LOGLEVEL_CONGESTION,
     "LogLevelCongestion",
@@ -1366,8 +1440,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "15" },
-
+    "15",
+    0
+  },
   {
     CFG_LOGLEVEL_ERROR,
     "LogLevelError",
@@ -1378,8 +1453,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "15" },
-
+    "15",
+    0
+  },
   {
     CFG_LOGLEVEL_INFO,
     "LogLevelInfo",
@@ -1390,12 +1466,14 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "15" },
+    "15",
+    0
+  },
 
   /**
    * Backup
    */
-  { 
+  {
     CFG_DB_PARALLEL_BACKUPS,
     "ParallelBackups",
     DB_TOKEN,
@@ -1405,9 +1483,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1",
     "1",
-    "1" },
-  
-  { 
+    "1",
+    0
+  },
+  {
     CFG_DB_BACKUP_DATADIR,
     "BackupDataDir",
     DB_TOKEN,
@@ -1416,9 +1495,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-  
-  { 
+    0, 0,
+    CI_CHECK_WRITABLE
+  },
+  {
     CFG_DB_DISK_SYNCH_SIZE,
     "DiskSyncSize",
     DB_TOKEN,
@@ -1428,9 +1508,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "4M",
     "32k",
-    STR_VALUE(MAX_INT_RNIL) },
-  
-  { 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
+  {
     CFG_DB_CHECKPOINT_SPEED,
     "DiskCheckpointSpeed",
     DB_TOKEN,
@@ -1440,9 +1521,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "10M",
     "1M",
-    STR_VALUE(MAX_INT_RNIL) },
-  
-  { 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
+  {
     CFG_DB_CHECKPOINT_SPEED_SR,
     "DiskCheckpointSpeedInRestart",
     DB_TOKEN,
@@ -1452,9 +1534,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "100M",
     "1M",
-    STR_VALUE(MAX_INT_RNIL) },
-  
-  { 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
+  {
     CFG_DB_BACKUP_MEM,
     "BackupMemory",
     DB_TOKEN,
@@ -1464,9 +1547,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "4M", // sum of BackupDataBufferSize and BackupLogBufferSize
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-  
-  { 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
+  {
     CFG_DB_BACKUP_DATA_BUFFER_MEM,
     "BackupDataBufferSize",
     DB_TOKEN,
@@ -1476,9 +1560,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "2M", // remember to change BackupMemory
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
-  { 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
+  {
     CFG_DB_BACKUP_LOG_BUFFER_MEM,
     "BackupLogBufferSize",
     DB_TOKEN,
@@ -1488,9 +1573,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "2M", // remember to change BackupMemory
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
-  { 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
+  {
     CFG_DB_BACKUP_WRITE_SIZE,
     "BackupWriteSize",
     DB_TOKEN,
@@ -1500,9 +1586,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "32K",
     "2K",
-    STR_VALUE(MAX_INT_RNIL) },
-
-  { 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
+  {
     CFG_DB_BACKUP_MAX_WRITE_SIZE,
     "BackupMaxWriteSize",
     DB_TOKEN,
@@ -1512,9 +1599,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "256K",
     "2K",
-    STR_VALUE(MAX_INT_RNIL) },
-
-  { 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
+  {
     CFG_DB_STRING_MEMORY,
     "StringMemory",
     DB_TOKEN,
@@ -1524,9 +1612,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
-  { 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
+  {
     CFG_DB_MAX_ALLOCATE,
     "MaxAllocate",
     DB_TOKEN,
@@ -1536,9 +1625,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "32M",
     "1M",
-    "1G" },
-
-  { 
+    "1G",
+    0
+  },
+  {
     CFG_DB_MEMREPORT_FREQUENCY,
     "MemReportFrequency",
     DB_TOKEN,
@@ -1548,9 +1638,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-  
-  { 
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
+  {
     CFG_DB_BACKUP_REPORT_FREQUENCY,
     "BackupReportFrequency",
     DB_TOKEN,
@@ -1560,8 +1651,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-  
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_DB_O_DIRECT,
     "ODirect",
@@ -1572,7 +1664,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true"},
+    "true",
+    0
+  },
   {
     CFG_DB_COMPRESSED_BACKUP,
     "CompressedBackup",
@@ -1583,7 +1677,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true"},
+    "true",
+    0
+  },
   {
     CFG_DB_COMPRESSED_LCP,
     "CompressedLCP",
@@ -1594,8 +1690,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true"},
-
+    "true",
+    0
+  },
   {
     CFG_DB_DD_FILESYSTEM_PATH,
     "FileSystemPathDD",
@@ -1605,8 +1702,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0,
+    CI_CHECK_WRITABLE
+  },
   {
     CFG_DB_DD_DATAFILE_PATH,
     "FileSystemPathDataFiles",
@@ -1616,8 +1714,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0,
+    CI_CHECK_WRITABLE
+  },
   {
     CFG_DB_DD_UNDOFILE_PATH,
     "FileSystemPathUndoFiles",
@@ -1627,8 +1726,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0,
+    CI_CHECK_WRITABLE
+  },
   {
     CFG_DB_DD_LOGFILEGROUP_SPEC,
     "InitialLogfileGroup",
@@ -1638,8 +1738,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_DB_DD_TABLEPACE_SPEC,
     "InitialTablespace",
@@ -1649,8 +1749,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_DB_LCP_TRY_LOCK_TIMEOUT,
     "MaxLCPStartDelay",
@@ -1661,7 +1761,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "600" },
+    "600",
+    0
+  },
 
   /***************************************************************************
    * API
@@ -1674,10 +1776,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_USED,
     false,
     ConfigInfo::CI_SECTION,
-    (const char *)NODE_TYPE_API, 
-    0, 0
+    (const char *)NODE_TYPE_API,
+    0, 0, 0
   },
-
   {
     KEY_INTERNAL,
     "wan",
@@ -1688,9 +1789,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true"
+    "true",
+    0
   },
-  
   {
     CFG_NODE_HOST,
     "HostName",
@@ -1700,8 +1801,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     "",
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_NODE_SYSTEM,
     "System",
@@ -1711,8 +1812,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     KEY_INTERNAL,
     "Id",
@@ -1723,8 +1824,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     MANDATORY,
     "1",
-    STR_VALUE(MAX_NODES_ID) },
-
+    STR_VALUE(MAX_NODES_ID),
+    0
+  },
   {
     CFG_NODE_ID,
     "NodeId",
@@ -1735,8 +1837,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     MANDATORY,
     "1",
-    STR_VALUE(MAX_NODES_ID) },
-
+    STR_VALUE(MAX_NODES_ID),
+    0
+  },
   {
     KEY_INTERNAL,
     "ExecuteOnComputer",
@@ -1746,8 +1849,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_NODE_ARBIT_RANK,
     "ArbitrationRank",
@@ -1758,8 +1861,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    "2" },
-
+    "2",
+    0
+  },
   {
     CFG_NODE_ARBIT_DELAY,
     "ArbitrationDelay",
@@ -1770,8 +1874,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_MAX_SCAN_BATCH_SIZE,
     "MaxScanBatchSize",
@@ -1782,8 +1887,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     STR_VALUE(MAX_SCAN_BATCH_SIZE),
     "32k",
-    "16M" },
-  
+    "16M",
+    0
+  },
   {
     CFG_BATCH_BYTE_SIZE,
     "BatchByteSize",
@@ -1794,8 +1900,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     STR_VALUE(SCAN_BATCH_SIZE),
     "1k",
-    "1M" },
-
+    "1M",
+    0
+  },
   {
     CFG_BATCH_SIZE,
     "BatchSize",
@@ -1806,8 +1913,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     STR_VALUE(DEF_BATCH_SIZE),
     "1",
-    STR_VALUE(MAX_PARALLEL_OP_PER_SCAN) },
-
+    STR_VALUE(MAX_PARALLEL_OP_PER_SCAN),
+    0
+  },
   {
     KEY_INTERNAL,
     "ConnectionMap",
@@ -1818,10 +1926,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_STRING,
     UNDEFINED,
     0,
+    0,
     0
   },
 
-
   /****************************************************************************
    * MGM
    ***************************************************************************/
@@ -1834,9 +1942,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_SECTION,
     (const char *)NODE_TYPE_MGM, 
-    0, 0
+    0, 0,
+    0
   },
-
   {
     KEY_INTERNAL,
     "wan",
@@ -1847,9 +1955,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true"
+    "true",
+    0
   },
-  
   {
     CFG_NODE_HOST,
     "HostName",
@@ -1859,8 +1967,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     "",
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_NODE_DATADIR,
     "DataDir",
@@ -1870,8 +1978,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     MYSQLCLUSTERDIR,
-    0, 0 },
-
+    0, 0,
+    CI_CHECK_WRITABLE
+  },
   {
     CFG_NODE_SYSTEM,
     "System",
@@ -1881,8 +1990,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     KEY_INTERNAL,
     "Id",
@@ -1893,8 +2002,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     MANDATORY,
     "1",
-    STR_VALUE(MAX_NODES_ID) },
-  
+    STR_VALUE(MAX_NODES_ID),
+    0
+  },
   {
     CFG_NODE_ID,
     "NodeId",
@@ -1905,8 +2015,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     MANDATORY,
     "1",
-    STR_VALUE(MAX_NODES_ID) },
-  
+    STR_VALUE(MAX_NODES_ID),
+    0
+  },
   {
     CFG_LOG_DESTINATION,
     "LogDestination",
@@ -1916,8 +2027,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     0,
-    0, 0 },
-  
+    0, 0, 0
+  },
   {
     KEY_INTERNAL,
     "ExecuteOnComputer",
@@ -1927,8 +2038,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     0,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     KEY_INTERNAL,
     "MaxNoOfSavedEvents",
@@ -1939,8 +2050,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "100",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_MGM_PORT,
     "PortNumber",
@@ -1951,8 +2063,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     NDB_PORT,
     "0",
-    STR_VALUE(MAX_PORT_NO) },
-
+    STR_VALUE(MAX_PORT_NO),
+    0
+  },
   {
     KEY_INTERNAL,
     "PortNumberStats",
@@ -1963,8 +2076,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     UNDEFINED,
     "0",
-    STR_VALUE(MAX_PORT_NO) },
-
+    STR_VALUE(MAX_PORT_NO),
+    0
+  },
   {
     CFG_NODE_ARBIT_RANK,
     "ArbitrationRank",
@@ -1975,8 +2089,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1",
     "0",
-    "2" },
-
+    "2",
+    0,
+  },
   {
     CFG_NODE_ARBIT_DELAY,
     "ArbitrationDelay",
@@ -1987,7 +2102,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
 
   /****************************************************************************
    * TCP
@@ -2000,10 +2117,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_USED,
     false,
     ConfigInfo::CI_SECTION,
-    (const char *)CONNECTION_TYPE_TCP, 
-    0, 0
+    (const char *)CONNECTION_TYPE_TCP,
+    0, 0, 0
   },
-
   {
     CFG_CONNECTION_HOSTNAME_1,
     "HostName1",
@@ -2013,8 +2129,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_HOSTNAME_2,
     "HostName2",
@@ -2024,8 +2140,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_NODE_1,
     "NodeId1",
@@ -2035,8 +2151,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     MANDATORY,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_NODE_2,
     "NodeId2",
@@ -2046,8 +2162,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     MANDATORY,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_GROUP,
     "Group",
@@ -2057,8 +2173,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     "55",
-    "0", "200" },
-
+    "0", "200",
+    0
+  },
   {
     CFG_CONNECTION_NODE_ID_SERVER,
     "NodeIdServer",
@@ -2068,8 +2185,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     MANDATORY,
-    "1", "63" },
-
+    "1", "63",
+    0
+  },
   {
     CFG_CONNECTION_SEND_SIGNAL_ID,
     "SendSignalId",
@@ -2080,9 +2198,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "true",
     "false",
-    "true" },
-
-
+    "true",
+    0
+  },
   {
     CFG_CONNECTION_CHECKSUM,
     "Checksum",
@@ -2093,8 +2211,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true" },
-
+    "true",
+    0,
+  },

   {
     CFG_CONNECTION_SERVER_PORT,
     "PortNumber",
@@ -2105,8 +2224,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     MANDATORY,
     "0",
-    STR_VALUE(MAX_PORT_NO) },
-
+    STR_VALUE(MAX_PORT_NO),
+    0
+  },
   {
     CFG_TCP_SEND_BUFFER_SIZE,
     "SendBufferMemory",
@@ -2117,8 +2237,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "256K",
     "64K",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_TCP_RECEIVE_BUFFER_SIZE,
     "ReceiveBufferMemory",
@@ -2129,8 +2250,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "64K",
     "16K",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_TCP_PROXY,
     "Proxy",
@@ -2140,8 +2262,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_NODE_1_SYSTEM,
     "NodeId1_System",
@@ -2151,8 +2273,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_NODE_2_SYSTEM,
     "NodeId2_System",
@@ -2162,8 +2284,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_TCP_SND_BUF_SIZE,
     "TCP_SND_BUF_SIZE",
@@ -2173,10 +2295,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     "71540",
-    "1", 
-    "2G"
+    "1",
+    "2G",
+    0
   },
-
   {
     CFG_TCP_RCV_BUF_SIZE,
     "TCP_RCV_BUF_SIZE",
@@ -2186,10 +2308,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     "70080",
-    "1", 
-    "2G" 
+    "1",
+    "2G",
+    0
   },
-  
   {
     CFG_TCP_MAXSEG_SIZE,
     "TCP_MAXSEG_SIZE",
@@ -2199,10 +2321,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     "0",
-    "0", 
-    "2G" 
+    "0",
+    "2G",
+    0
   },
-
   {
     CFG_TCP_BIND_INADDR_ANY,
     "TcpBind_INADDR_ANY",
@@ -2212,7 +2334,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_BOOL,
     "false",
-    "false", "true" },
+    "false", "true",
+    0
+  },
 
   /****************************************************************************
    * SHM
@@ -2225,9 +2349,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_USED,
     false,
     ConfigInfo::CI_SECTION,
-    (const char *)CONNECTION_TYPE_SHM, 
-    0, 0 },
-
+    (const char *)CONNECTION_TYPE_SHM,
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_HOSTNAME_1,
     "HostName1",
@@ -2237,8 +2361,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_HOSTNAME_2,
     "HostName2",
@@ -2248,8 +2372,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_SERVER_PORT,
     "PortNumber",
@@ -2259,9 +2383,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     MANDATORY,
-    "0", 
-    STR_VALUE(MAX_PORT_NO) },
-
+    "0",
+    STR_VALUE(MAX_PORT_NO),
+    0
+  },
   {
     CFG_SHM_SIGNUM,
     "Signum",
@@ -2271,9 +2396,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     UNDEFINED,
-    "0", 
-    STR_VALUE(MAX_INT_RNIL) },
-
+    "0",
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_CONNECTION_NODE_1,
     "NodeId1",
@@ -2283,8 +2409,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     MANDATORY,
-    0, 0 },
-  
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_NODE_2,
     "NodeId2",
@@ -2294,8 +2420,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     MANDATORY,
-    0, 0 },
-  
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_GROUP,
     "Group",
@@ -2305,8 +2431,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     "35",
-    "0", "200" },
-
+    "0", "200",
+    0
+  },
   {
     CFG_CONNECTION_NODE_ID_SERVER,
     "NodeIdServer",
@@ -2316,8 +2443,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     MANDATORY,
-    "1", "63" },
-
+    "1", "63",
+    0
+  },
   {
     CFG_CONNECTION_SEND_SIGNAL_ID,
     "SendSignalId",
@@ -2328,9 +2456,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true" },
-  
-  
+    "true",
+    0
+  },
   {
     CFG_CONNECTION_CHECKSUM,
     "Checksum",
@@ -2341,8 +2469,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "true",
     "false",
-    "true" },
-  
+    "true",
+    0
+  },
   {
     CFG_SHM_KEY,
     "ShmKey",
@@ -2353,8 +2482,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     UNDEFINED,
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-  
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_SHM_BUFFER_MEM,
     "ShmSize",
@@ -2365,8 +2495,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1M",
     "64K",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_CONNECTION_NODE_1_SYSTEM,
     "NodeId1_System",
@@ -2376,8 +2507,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_NODE_2_SYSTEM,
     "NodeId2_System",
@@ -2387,7 +2518,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
+    0, 0, 0
+  },
 
   /****************************************************************************
    * SCI
@@ -2400,10 +2532,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_USED,
     false,
     ConfigInfo::CI_SECTION,
-    (const char *)CONNECTION_TYPE_SCI, 
-    0, 0 
+    (const char *)CONNECTION_TYPE_SCI,
+    0, 0, 0
   },
-
   {
     CFG_CONNECTION_NODE_1,
     "NodeId1",
@@ -2414,8 +2545,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_STRING,
     MANDATORY,
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_CONNECTION_NODE_2,
     "NodeId2",
@@ -2426,8 +2558,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_STRING,
     MANDATORY,
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_CONNECTION_GROUP,
     "Group",
@@ -2437,8 +2570,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     "15",
-    "0", "200" },
-
+    "0", "200",
+    0
+  },
   {
     CFG_CONNECTION_NODE_ID_SERVER,
     "NodeIdServer",
@@ -2448,8 +2582,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     MANDATORY,
-    "1", "63" },
-
+    "1", "63",
+    0
+  },
   {
     CFG_CONNECTION_HOSTNAME_1,
     "HostName1",
@@ -2459,8 +2594,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_HOSTNAME_2,
     "HostName2",
@@ -2470,8 +2605,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_SERVER_PORT,
     "PortNumber",
@@ -2481,9 +2616,10 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_INT,
     MANDATORY,
-    "0", 
-    STR_VALUE(MAX_PORT_NO) },
-
+    "0",
+    STR_VALUE(MAX_PORT_NO),
+    0
+  },
   {
     CFG_SCI_HOST1_ID_0,
     "Host1SciId0",
@@ -2494,8 +2630,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     MANDATORY,
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_SCI_HOST1_ID_1,
     "Host1SciId1",
@@ -2506,8 +2643,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_SCI_HOST2_ID_0,
     "Host2SciId0",
@@ -2518,8 +2656,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     MANDATORY,
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_SCI_HOST2_ID_1,
     "Host2SciId1",
@@ -2530,8 +2669,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "0",
     "0",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_CONNECTION_SEND_SIGNAL_ID,
     "SendSignalId",
@@ -2542,8 +2682,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "true",
     "false",
-    "true" },
-
+    "true",
+    0
+  },
   {
     CFG_CONNECTION_CHECKSUM,
     "Checksum",
@@ -2554,8 +2695,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_BOOL,
     "false",
     "false",
-    "true" },
-
+    "true",
+    0
+  },
   {
     CFG_SCI_SEND_LIMIT,
     "SendLimit",
@@ -2566,8 +2708,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "8K",
     "128",
-    "32K" },
-
+    "32K",
+    0
+  },
   {
     CFG_SCI_BUFFER_MEM,
     "SharedBufferSize",
@@ -2578,8 +2721,9 @@ const ConfigInfo::ParamInfo ConfigInfo::
     ConfigInfo::CI_INT,
     "1M",
     "64K",
-    STR_VALUE(MAX_INT_RNIL) },
-
+    STR_VALUE(MAX_INT_RNIL),
+    0
+  },
   {
     CFG_CONNECTION_NODE_1_SYSTEM,
     "NodeId1_System",
@@ -2589,8 +2733,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 },
-
+    0, 0, 0
+  },
   {
     CFG_CONNECTION_NODE_2_SYSTEM,
     "NodeId2_System",
@@ -2600,7 +2744,8 @@ const ConfigInfo::ParamInfo ConfigInfo::
     false,
     ConfigInfo::CI_STRING,
     UNDEFINED,
-    0, 0 }
+    0, 0, 0
+  }
 };
 
 const int ConfigInfo::m_NoOfParams = sizeof(m_ParamInfo) / sizeof(ParamInfo);
@@ -2649,6 +2794,7 @@ ConfigInfo::ConfigInfo()
     pinfo.put("Updateable",  param._updateable);
     pinfo.put("Type",        param._type);
     pinfo.put("Status",      param._status);
+    pinfo.put("Flags",       param._flags);
 
     switch (param._type) {
       case CI_BOOL:
@@ -2875,7 +3021,7 @@ ConfigInfo::getMandatory(const Propertie
 
 const char*
 ConfigInfo::getDescription(const Properties * section,
-                           const char* fname) const {
+                          const char* fname) const {
   return getInfoString(section, fname, "Description");
 }
 
@@ -2913,6 +3059,11 @@ ConfigInfo::getStatus(const Properties *
   return (ConfigInfo::Status) getInfoInt(section, fname, "Status");
 }
 
+Uint32
+ConfigInfo::getFlags(const Properties* section, const char* fname) const {
+  return getInfoInt(section, fname, "Flags");
+}
+
 /****************************************************************************
  * Printers
  ****************************************************************************/
@@ -3123,6 +3274,16 @@ public:
     case ConfigInfo::CI_SECTION:
       return; // Don't print anything for the section itself
     }
+
+    // Get "check" flags
+    Uint32 flags = info.getFlags(section, param_name);
+    buf.clear();
+    if (flags & ConfigInfo::CI_CHECK_WRITABLE)
+      buf.append("writable");
+
+    if (buf.length())
+      pairs.put("check", buf.c_str());
+
     print_xml("param", pairs);
   }
 };

=== modified file 'storage/ndb/src/mgmsrv/ConfigInfo.hpp'
--- a/storage/ndb/src/mgmsrv/ConfigInfo.hpp	2009-05-18 08:02:33 +0000
+++ b/storage/ndb/src/mgmsrv/ConfigInfo.hpp	2009-05-18 10:01:33 +0000
@@ -49,6 +49,10 @@ public:
 		     CI_INTERNAL         ///< Not configurable by the user
   };
 
+  enum Flags       {
+    CI_CHECK_WRITABLE = 1 // Check that path given by parameter is writable
+  };
+
   /**
    *   Entry for one configuration parameter
    */
@@ -63,6 +67,7 @@ public:
     const char*    _default;
     const char*    _min;
     const char*    _max;
+    Uint32         _flags;
   };
 
 #ifndef NDB_MGMAPI
@@ -114,6 +119,7 @@ public:
   Uint64       getMin(const Properties * section, const char* fname) const;
   Uint64       getMax(const Properties * section, const char* fname) const;
   Uint64 getDefault(const Properties * section, const char* fname) const;
+  Uint32 getFlags(const Properties * section, const char* fname) const;
   const char* getDefaultString(const Properties * section,
                                const char* fname) const;
   bool getMandatory(const Properties * section, const char* fname) const;

Attachment: [text/bzr-bundle] bzr/magnus.blaudd@sun.com-20090518100133-eie44d5sl20r5cdt.bundle
Thread
bzr commit into mysql-5.1-telco-6.3 branch (magnus.blaudd:2961)Bug#44685Magnus Blåudd18 May