List:Internals« Previous MessageNext Message »
From:jonas Date:October 10 2005 4:48pm
Subject:bk commit into 5.1 tree (jonas:1.2038)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of jonas. When jonas 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.2038 05/10/10 16:48:27 jonas@stripped +20 -0
  post merge fixes

  storage/ndb/src/ndbapi/ndberror.c
    1.54 05/10/10 16:48:22 jonas@stripped +1 -1
    post merge fixes

  storage/ndb/src/ndbapi/NdbRecAttr.cpp
    1.24 05/10/10 16:48:22 jonas@stripped +188 -196
    post merge fixes

  storage/ndb/src/kernel/vm/SafeCounter.cpp
    1.4 05/10/10 16:48:22 jonas@stripped +1 -1
    post merge fixes

  storage/ndb/src/kernel/blocks/tsman.hpp
    1.29 05/10/10 16:48:22 jonas@stripped +1 -0
    post merge fixes

  storage/ndb/src/kernel/blocks/tsman.cpp
    1.54 05/10/10 16:48:22 jonas@stripped +22 -0
    post merge fixes

  storage/ndb/src/kernel/blocks/pgman.hpp
    1.34 05/10/10 16:48:22 jonas@stripped +1 -0
    post merge fixes

  storage/ndb/src/kernel/blocks/pgman.cpp
    1.41 05/10/10 16:48:22 jonas@stripped +22 -0
    post merge fixes

  storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp
    1.31 05/10/10 16:48:22 jonas@stripped +7 -8
    post merge fixes

  storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp
    1.30 05/10/10 16:48:22 jonas@stripped +5 -1
    post merge fixes

  storage/ndb/src/kernel/blocks/lgman.hpp
    1.40 05/10/10 16:48:22 jonas@stripped +1 -0
    post merge fixes

  storage/ndb/src/kernel/blocks/lgman.cpp
    1.62 05/10/10 16:48:22 jonas@stripped +22 -0
    post merge fixes

  storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp
    1.46 05/10/10 16:48:22 jonas@stripped +15 -11
    post merge fixes

  storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp
    1.13 05/10/10 16:48:22 jonas@stripped +12 -12
    post merge fixes

  storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp
    1.10 05/10/10 16:48:22 jonas@stripped +13 -13
    post merge fixes

  storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp
    1.68 05/10/10 16:48:22 jonas@stripped +1 -209
    post merge fixes

  storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp
    1.28 05/10/10 16:48:22 jonas@stripped +0 -16
    post merge fixes

  storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp
    1.32 05/10/10 16:48:22 jonas@stripped +1 -188
    post merge fixes

  storage/ndb/src/kernel/blocks/backup/BackupInit.cpp
    1.20 05/10/10 16:48:22 jonas@stripped +2 -1
    post merge fixes

  storage/ndb/src/kernel/blocks/backup/Backup.hpp
    1.21 05/10/10 16:48:22 jonas@stripped +0 -1
    post merge fixes

  storage/ndb/src/kernel/blocks/backup/Backup.cpp
    1.54 05/10/10 16:48:22 jonas@stripped +0 -100
    post merge fixes

# 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:	jonas
# Host:	perch.ndb.mysql.com
# Root:	/home/jonas/src/mysql-5.1-ndb-dd

--- 1.61/storage/ndb/src/kernel/blocks/lgman.cpp	2005-10-10 14:31:35 +02:00
+++ 1.62/storage/ndb/src/kernel/blocks/lgman.cpp	2005-10-10 16:48:22 +02:00
@@ -58,6 +58,7 @@
   
   // Add received signals
   addRecSignal(GSN_STTOR, &Lgman::execSTTOR);
+  addRecSignal(GSN_READ_CONFIG_REQ, &Lgman::execREAD_CONFIG_REQ);
   addRecSignal(GSN_DUMP_STATE_ORD, &Lgman::execDUMP_STATE_ORD);
   addRecSignal(GSN_CONTINUEB, &Lgman::execCONTINUEB);
 
@@ -99,6 +100,27 @@
 }
 
 BLOCK_FUNCTIONS(Lgman)
+
+void 
+Lgman::execREAD_CONFIG_REQ(Signal* signal)
+{
+  jamEntry();
+
+  const ReadConfigReq * req = (ReadConfigReq*)signal->getDataPtr();
+
+  Uint32 ref = req->senderRef;
+  Uint32 senderData = req->senderData;
+
+  const ndb_mgm_configuration_iterator * p = 
+    theConfiguration.getOwnConfigIterator();
+  ndbrequire(p != 0);
+
+  ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtrSend();
+  conf->senderRef = reference();
+  conf->senderData = senderData;
+  sendSignal(ref, GSN_READ_CONFIG_CONF, signal, 
+	     ReadConfigConf::SignalLength, JBB);
+}
 
 void
 Lgman::execSTTOR(Signal* signal) 

--- 1.39/storage/ndb/src/kernel/blocks/lgman.hpp	2005-10-10 14:31:35 +02:00
+++ 1.40/storage/ndb/src/kernel/blocks/lgman.hpp	2005-10-10 16:48:22 +02:00
@@ -38,6 +38,7 @@
   
   void execSTTOR(Signal* signal);
   void sendSTTORRY(Signal*);
+  void execREAD_CONFIG_REQ(Signal* signal);
   void execDUMP_STATE_ORD(Signal* signal);
   void execCONTINUEB(Signal* signal);
   

--- 1.40/storage/ndb/src/kernel/blocks/pgman.cpp	2005-10-10 14:31:35 +02:00
+++ 1.41/storage/ndb/src/kernel/blocks/pgman.cpp	2005-10-10 16:48:22 +02:00
@@ -46,6 +46,7 @@
 
   // Add received signals
   addRecSignal(GSN_STTOR, &Pgman::execSTTOR);
+  addRecSignal(GSN_READ_CONFIG_REQ, &Pgman::execREAD_CONFIG_REQ);
   addRecSignal(GSN_DUMP_STATE_ORD, &Pgman::execDUMP_STATE_ORD);
   addRecSignal(GSN_CONTINUEB, &Pgman::execCONTINUEB);
   addRecSignal(GSN_FSREADREF, &Pgman::execFSREADREF, true);
@@ -81,6 +82,27 @@
 }
 
 BLOCK_FUNCTIONS(Pgman)
+
+void 
+Pgman::execREAD_CONFIG_REQ(Signal* signal)
+{
+  jamEntry();
+
+  const ReadConfigReq * req = (ReadConfigReq*)signal->getDataPtr();
+
+  Uint32 ref = req->senderRef;
+  Uint32 senderData = req->senderData;
+
+  const ndb_mgm_configuration_iterator * p = 
+    theConfiguration.getOwnConfigIterator();
+  ndbrequire(p != 0);
+
+  ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtrSend();
+  conf->senderRef = reference();
+  conf->senderData = senderData;
+  sendSignal(ref, GSN_READ_CONFIG_CONF, signal, 
+	     ReadConfigConf::SignalLength, JBB);
+}
 
 Pgman::Stats::Stats() :
   m_max_pages(64),      // smallish for testing

--- 1.33/storage/ndb/src/kernel/blocks/pgman.hpp	2005-10-10 14:31:35 +02:00
+++ 1.34/storage/ndb/src/kernel/blocks/pgman.hpp	2005-10-10 16:48:22 +02:00
@@ -252,6 +252,7 @@
 protected:
   void execSTTOR(Signal* signal);
   void sendSTTORRY(Signal*);
+  void execREAD_CONFIG_REQ(Signal* signal);
   void execDUMP_STATE_ORD(Signal* signal);
   void execCONTINUEB(Signal* signal);
 

--- 1.53/storage/ndb/src/kernel/blocks/tsman.cpp	2005-10-10 14:31:35 +02:00
+++ 1.54/storage/ndb/src/kernel/blocks/tsman.cpp	2005-10-10 16:48:22 +02:00
@@ -43,6 +43,7 @@
   
   // Add received signals
   addRecSignal(GSN_STTOR, &Tsman::execSTTOR);
+  addRecSignal(GSN_READ_CONFIG_REQ, &Tsman::execREAD_CONFIG_REQ);
   addRecSignal(GSN_DUMP_STATE_ORD, &Tsman::execDUMP_STATE_ORD);
   addRecSignal(GSN_CONTINUEB, &Tsman::execCONTINUEB);
 
@@ -81,6 +82,27 @@
 }
 
 BLOCK_FUNCTIONS(Tsman)
+
+void 
+Tsman::execREAD_CONFIG_REQ(Signal* signal)
+{
+  jamEntry();
+
+  const ReadConfigReq * req = (ReadConfigReq*)signal->getDataPtr();
+
+  Uint32 ref = req->senderRef;
+  Uint32 senderData = req->senderData;
+
+  const ndb_mgm_configuration_iterator * p = 
+    theConfiguration.getOwnConfigIterator();
+  ndbrequire(p != 0);
+
+  ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtrSend();
+  conf->senderRef = reference();
+  conf->senderData = senderData;
+  sendSignal(ref, GSN_READ_CONFIG_CONF, signal, 
+	     ReadConfigConf::SignalLength, JBB);
+}
 
 void
 Tsman::execSTTOR(Signal* signal) 

--- 1.28/storage/ndb/src/kernel/blocks/tsman.hpp	2005-10-10 14:31:35 +02:00
+++ 1.29/storage/ndb/src/kernel/blocks/tsman.hpp	2005-10-10 16:48:22 +02:00
@@ -38,6 +38,7 @@
   
   void execSTTOR(Signal* signal);
   void sendSTTORRY(Signal*);
+  void execREAD_CONFIG_REQ(Signal* signal);
   void execDUMP_STATE_ORD(Signal* signal);
   void execCONTINUEB(Signal* signal);
 

--- 1.53/storage/ndb/src/kernel/blocks/backup/Backup.cpp	2005-10-10 14:35:19 +02:00
+++ 1.54/storage/ndb/src/kernel/blocks/backup/Backup.cpp	2005-10-10 16:48:22 +02:00
@@ -74,106 +74,6 @@
 #define SEND_BACKUP_STARTED_FLAG(A) (((A) & 0x3) > 0)
 #define SEND_BACKUP_COMPLETED_FLAG(A) (((A) & 0x3) > 1)
 
-void 
-Backup::execREAD_CONFIG_REQ(Signal* signal)
-{
-  jamEntry();
-
-  const ReadConfigReq * req = (ReadConfigReq*)signal->getDataPtr();
-
-  Uint32 ref = req->senderRef;
-  Uint32 senderData = req->senderData;
-
-  const ndb_mgm_configuration_iterator * p = 
-    theConfiguration.getOwnConfigIterator();
-  ndbrequire(p != 0);
-
-  c_nodePool.setSize(MAX_NDB_NODES);
-
-  Uint32 noBackups = 0, noTables = 0, noAttribs = 0;
-  ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_DB_DISCLESS, &m_diskless));
-  ndb_mgm_get_int_parameter(p, CFG_DB_PARALLEL_BACKUPS, &noBackups);
-  //  ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_DB_NO_TABLES, &noTables));
-  ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_DICT_TABLE, &noTables));
-  ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_DB_NO_ATTRIBUTES, &noAttribs));
-
-  noAttribs++; //RT 527 bug fix
-
-  c_backupPool.setSize(noBackups);
-  c_backupFilePool.setSize(3 * noBackups);
-  c_tablePool.setSize(noBackups * noTables);
-  c_attributePool.setSize(noBackups * noAttribs);
-  c_triggerPool.setSize(noBackups * 3 * noTables);
-
-  // 2 = no of replicas
-  c_fragmentPool.setSize(noBackups * 2 * NO_OF_FRAG_PER_NODE * noTables);
-  
-  Uint32 szMem = 0;
-  ndb_mgm_get_int_parameter(p, CFG_DB_BACKUP_MEM, &szMem);
-  Uint32 noPages = (szMem + sizeof(Page32) - 1) / sizeof(Page32);
-  // We need to allocate an additional of 2 pages. 1 page because of a bug in
-  // ArrayPool and another one for DICTTAINFO.
-  c_pagePool.setSize(noPages + NO_OF_PAGES_META_FILE + 2); 
-
-  Uint32 szDataBuf = (2 * 1024 * 1024);
-  Uint32 szLogBuf = (2 * 1024 * 1024);
-  Uint32 szWrite = 32768;
-  ndb_mgm_get_int_parameter(p, CFG_DB_BACKUP_DATA_BUFFER_MEM, &szDataBuf);
-  ndb_mgm_get_int_parameter(p, CFG_DB_BACKUP_LOG_BUFFER_MEM, &szLogBuf);
-  ndb_mgm_get_int_parameter(p, CFG_DB_BACKUP_WRITE_SIZE, &szWrite);
-  
-  c_defaults.m_logBufferSize = szLogBuf;
-  c_defaults.m_dataBufferSize = szDataBuf;
-  c_defaults.m_minWriteSize = szWrite;
-  c_defaults.m_maxWriteSize = szWrite;
-  
-  { // Init all tables
-    ArrayList<Table> tables(c_tablePool);
-    TablePtr ptr;
-    while(tables.seize(ptr)){
-      new (ptr.p) Table(c_attributePool, c_fragmentPool);
-    }
-    tables.release();
-  }
-
-  {
-    ArrayList<BackupFile> ops(c_backupFilePool);
-    BackupFilePtr ptr;
-    while(ops.seize(ptr)){
-      new (ptr.p) BackupFile(* this, c_pagePool);
-    }
-    ops.release();
-  }
-  
-  {
-    ArrayList<BackupRecord> recs(c_backupPool);
-    BackupRecordPtr ptr;
-    while(recs.seize(ptr)){
-      new (ptr.p) BackupRecord(* this, c_pagePool, c_tablePool, 
-			       c_backupFilePool, c_triggerPool);
-    }
-    recs.release();
-  }
-
-  // Initialize BAT for interface to file system
-  {
-    Page32Ptr p;
-    ndbrequire(c_pagePool.seizeId(p, 0));
-    c_startOfPages = (Uint32 *)p.p;
-    c_pagePool.release(p);
-    
-    NewVARIABLE* bat = allocateBat(1);
-    bat[0].WA = c_startOfPages;
-    bat[0].nrr = c_pagePool.getSize()*sizeof(Page32)/sizeof(Uint32);
-  }
-  
-  ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtrSend();
-  conf->senderRef = reference();
-  conf->senderData = senderData;
-  sendSignal(ref, GSN_READ_CONFIG_CONF, signal, 
-	     ReadConfigConf::SignalLength, JBB);
-}
-
 void
 Backup::execSTTOR(Signal* signal) 
 {

--- 1.20/storage/ndb/src/kernel/blocks/backup/Backup.hpp	2005-10-10 14:35:19 +02:00
+++ 1.21/storage/ndb/src/kernel/blocks/backup/Backup.hpp	2005-10-10 16:48:22 +02:00
@@ -53,7 +53,6 @@
   void execNODE_FAILREP(Signal* signal);
   void execINCL_NODEREQ(Signal* signal);
   void execCONTINUEB(Signal* signal);
-  void execREAD_CONFIG_REQ(Signal*);
   
   /**
    * Testing

--- 1.19/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp	2005-10-10 14:35:19 +02:00
+++ 1.20/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp	2005-10-10 16:48:22 +02:00
@@ -155,7 +155,7 @@
 
   noAttribs++; //RT 527 bug fix
 
-
+  c_nodePool.setSize(MAX_NDB_NODES);
   c_backupPool.setSize(noBackups + 1);
   c_backupFilePool.setSize(3 * noBackups + 1);
   c_tablePool.setSize(noBackups * noTables + 1);
@@ -233,3 +233,4 @@
   sendSignal(ref, GSN_READ_CONFIG_CONF, signal, 
 	     ReadConfigConf::SignalLength, JBB);
 }
+

--- 1.31/storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp	2005-10-10 14:35:19 +02:00
+++ 1.32/storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp	2005-10-10 16:48:22 +02:00
@@ -62,8 +62,6 @@
 }\
 */
 
-#define dbgUndoword(ptr, ind, val)
-
 // Constants
 /** ------------------------------------------------------------------------ 
  *   THESE ARE CONSTANTS THAT ARE USED FOR DEFINING THE SIZE OF BUFFERS, THE
@@ -103,39 +101,6 @@
 #define ZOVERFLOW_PAGE_TYPE 1
 #define ZDEFAULT_LIST 3
 #define ZWORDS_IN_PAGE 2048
-/* --------------------------------------------------------------------------------- */
-/*       CONSTANTS FOR THE ZERO PAGES                                                */
-/* --------------------------------------------------------------------------------- */
-#define ZPAGEZERO_PREV_UNDOP 8
-#define ZPAGEZERO_NO_OVER_PAGE 9
-#define ZPAGEZERO_TABID 10
-#define ZPAGEZERO_FRAGID0 11
-#define ZPAGEZERO_FRAGID1 12
-#define ZPAGEZERO_HASH_CHECK 13
-#define ZPAGEZERO_DIRSIZE 14
-#define ZPAGEZERO_EXPCOUNTER 15
-#define ZPAGEZERO_NEXT_UNDO_FILE 16
-#define ZPAGEZERO_SLACK 17
-#define ZPAGEZERO_NO_PAGES 18
-#define ZPAGEZERO_HASHCHECKBIT 19
-#define ZPAGEZERO_K 20
-#define ZPAGEZERO_LHFRAGBITS 21
-#define ZPAGEZERO_LHDIRBITS 22
-#define ZPAGEZERO_LOCALKEYLEN 23
-#define ZPAGEZERO_MAXP 24
-#define ZPAGEZERO_MAXLOADFACTOR 25
-#define ZPAGEZERO_MINLOADFACTOR 26
-#define ZPAGEZERO_MYFID 27
-#define ZPAGEZERO_LAST_OVER_INDEX 28
-#define ZPAGEZERO_P 29
-#define ZPAGEZERO_NO_OF_ELEMENTS 30
-#define ZPAGEZERO_ELEMENT_LENGTH 31
-#define ZPAGEZERO_KEY_LENGTH 32
-#define ZPAGEZERO_NODETYPE 33
-#define ZPAGEZERO_SLACK_CHECK 34
-/* --------------------------------------------------------------------------------- */
-/*       CONSTANTS IN ALPHABETICAL ORDER                                             */
-/* --------------------------------------------------------------------------------- */
 #define ZADDFRAG 0
 #define ZCOPY_NEXT 1
 #define ZCOPY_NEXT_COMMIT 2
@@ -151,17 +116,14 @@
 #define ZFS_CONNECTSIZE 300
 #define ZFS_OPSIZE 100
 #define ZKEYINKEYREQ 4
-#define ZLCP_CONNECTSIZE 2
 #define ZLEFT 1
 #define ZLOCALLOGFILE 2
 #define ZLOCKED 0
 #define ZMAXSCANSIGNALLEN 20
 #define ZMAINKEYLEN 8
-#define ZMAX_UNDO_VERSION 4
 #define ZNO_OF_DISK_VERSION 3
 #define ZNO_OF_OP_PER_SIGNAL 20
 //#define ZNOT_EMPTY_FRAGMENT 1
-#define ZNR_OF_UNDO_PAGE_GROUP 16
 #define ZOP_HEAD_INFO_LN 3
 #define ZOPRECSIZE 740
 #define ZOVERFLOWRECSIZE 5
@@ -181,35 +143,21 @@
 #define ZSCAN_LOCK_ALL 3
 #define ZSCAN_OP 5
 #define ZSCAN_REC_SIZE 256
-#define ZSR_VERSION_REC_SIZE 16
 #define ZSTAND_BY 2
 #define ZTABLESIZE 16
 #define ZTABMAXINDEX 3
 #define ZUNDEFINED_OP 6
-#define ZUNDOHEADSIZE 7
 #define ZUNLOCKED 1
-#define ZUNDOPAGE_BASE_ADD 2
-#define ZUNDOPAGEINDEXBITS 13
-#define ZUNDOPAGEINDEX_MASK 0x1fff
-#define ZWRITEPAGESIZE 8
-#define ZWRITE_UNDOPAGESIZE 2
-#define ZMIN_UNDO_PAGES_AT_COMMIT 4
-#define ZMIN_UNDO_PAGES_AT_OPERATION 10
-#define ZMIN_UNDO_PAGES_AT_EXPAND 16
 
 /* --------------------------------------------------------------------------------- */
 /* CONTINUEB CODES                                                                   */
 /* --------------------------------------------------------------------------------- */
-#define ZLOAD_BAL_LCP_TIMER 0
 #define ZINITIALISE_RECORDS 1
-#define ZSR_READ_PAGES_ALLOC 2
-#define ZSTART_UNDO 3
 #define ZSEND_SCAN_HBREP 4
 #define ZREL_ROOT_FRAG 5
 #define ZREL_FRAG 6
 #define ZREL_DIR 7
 #define ZREPORT_MEMORY_USAGE 8
-#define ZLCP_OP_WRITE_RT_BREAK 9
 
 /* ------------------------------------------------------------------------- */
 /* ERROR CODES                                                               */
@@ -235,7 +183,6 @@
 #define ZWRITE_ERROR 630
 #define ZTO_OP_STATE_ERROR 631
 #define ZTOO_EARLY_ACCESS_ERROR 632
-#define ZTEMPORARY_ACC_UNDO_FAILURE 677
 #endif
 
 class ElementHeader {
@@ -332,32 +279,8 @@
   FREEFRAG = 0,
   ACTIVEFRAG = 1,
   //SEND_QUE_OP = 2,
-  WAIT_ACC_LCPREQ = 3,
-  LCP_SEND_PAGES = 4,
-  LCP_SEND_OVER_PAGES = 5,
-  LCP_SEND_ZERO_PAGE = 6,
-  SR_READ_PAGES = 7,
-  SR_READ_OVER_PAGES = 8,
-  WAIT_ZERO_PAGE_STORED = 9,
   WAIT_NOTHING = 10,
-  WAIT_OPEN_UNDO_LCP = 11,
-  WAIT_OPEN_UNDO_LCP_NEXT = 12,
-  WAIT_OPEN_DATA_FILE_FOR_READ = 13,
-  WAIT_OPEN_DATA_FILE_FOR_WRITE = 14,
-  OPEN_UNDO_FILE_SR = 15,
-  READ_UNDO_PAGE = 16,
-  READ_UNDO_PAGE_AND_CLOSE = 17,
-  WAIT_READ_DATA = 18,
-  WAIT_READ_PAGE_ZERO = 19,
-  WAIT_WRITE_DATA = 20,
-  WAIT_WRITE_UNDO = 21,
-  WAIT_WRITE_UNDO_EXIT = 22,
-  WAIT_CLOSE_UNDO = 23,
-  LCP_CLOSE_DATA = 24,
-  SR_CLOSE_DATA = 25,
   WAIT_ONE_CONF = 26,
-  LCP_FREE = 28,
-  LCP_ACTIVE = 29,
   FREE_OP = 30,
   WAIT_EXE_OP = 32,
   WAIT_IN_QUEUE = 34,
@@ -377,8 +300,7 @@
   ADDSECONDFRAG = 49,
   DELETEFIRSTFRAG = 50,
   DELETESECONDFRAG = 51,
-  ACTIVEROOT = 52,
-  LCP_CREATION = 53
+  ACTIVEROOT = 52
 };
 
 // Records
@@ -407,7 +329,6 @@
 /* --------------------------------------------------------------------------------- */
 struct Fragmentrec {
   Uint32 scan[MAX_PARALLEL_SCANS_PER_FRAG];
-  Uint32 lcpPtr;
   union {
     Uint32 mytabptr;
     Uint32 myTableId;
@@ -443,9 +364,7 @@
 // List of lock owners and list of lock waiters to support LCP handling
 //-----------------------------------------------------------------------------
   Uint32 lockOwnersList;
-  Uint32 m_lcp_lock_owner_list;
   Uint32 m_current_sequence_no;
-  Uint32 m_lcp_started_sequence_no;
 
 //-----------------------------------------------------------------------------
 // References to Directory Ranges (which in turn references directories, which
@@ -506,7 +425,6 @@
 //-----------------------------------------------------------------------------
   Uint32 nextfreefrag;
 
-  Uint32 lcpLqhPtr;
 //-----------------------------------------------------------------------------
 // This variable is used during restore to keep track of page id of read pages.
 // During read of bucket pages this is used to calculate the page id and also
@@ -516,12 +434,6 @@
   Uint32 nextAllocPage;
 
 //-----------------------------------------------------------------------------
-// Page reference during LCP and restore of page zero where fragment data is
-// saved
-//-----------------------------------------------------------------------------
-  Uint32 zeroPagePtr;
-
-//-----------------------------------------------------------------------------
 // Number of pages read from file during restore
 //-----------------------------------------------------------------------------
   Uint32 noOfExpectedPages;
@@ -568,20 +480,6 @@
 
   typedef Ptr<Fragmentrec> FragmentrecPtr;
 
-  /* ----------------------------------------------------------------------- */
-  /* LCP_CONNECTREC                                                          */
-  /* ----------------------------------------------------------------------- */
-  struct LcpConnectrec {
-    Uint32 nextLcpConn;
-    Uint32 lcpUserptr;
-    Uint32 fragrecptr;
-    State syncUndopageState;
-    State lcpstate;
-    Uint32 lcpUserblockref;
-    Uint16 localCheckPid;
-  };
-  typedef Ptr<LcpConnectrec> LcpConnectrecPtr;
-
 /* --------------------------------------------------------------------------------- */
 /* OPERATIONREC                                                                      */
 /* --------------------------------------------------------------------------------- */
@@ -631,7 +529,6 @@
   Uint8 dirtyRead;
   Uint8 commitDeleteCheckFlag;
   Uint8 isAccLockReq;
-  Uint8 isUndoLogReq;
 }; /* p2c: size = 168 bytes */
 
   typedef Ptr<Operationrec> OperationrecPtr;
@@ -733,22 +630,14 @@
   void execEXPANDCHECK2(Signal* signal);
   void execSHRINKCHECK2(Signal* signal);
   void execACC_OVER_REC(Signal* signal);
-  void execACC_SAVE_PAGES(Signal* signal);
   void execNEXTOPERATION(Signal* signal);
   void execREAD_PSEUDO_REQ(Signal* signal);
 
   // Received signals
   void execSTTOR(Signal* signal);
-  void execSR_FRAGIDREQ(Signal* signal);
-  void execLCP_FRAGIDREQ(Signal* signal);
-  void execLCP_HOLDOPREQ(Signal* signal);
-  void execEND_LCPREQ(Signal* signal);
-  void execACC_LCPREQ(Signal* signal);
-  void execSTART_RECREQ(Signal* signal);
   void execACCKEYREQ(Signal* signal);
   void execACCSEIZEREQ(Signal* signal);
   void execACCFRAGREQ(Signal* signal);
-  void execACC_SRREQ(Signal* signal);
   void execNEXT_SCANREQ(Signal* signal);
   void execACC_ABORTREQ(Signal* signal);
   void execACC_SCANREQ(Signal* signal);
@@ -768,10 +657,8 @@
 
   typedef void * RootfragmentrecPtr;
   void initRootFragPageZero(FragmentrecPtr, Page8Ptr);
-  void initRootFragSr(RootfragmentrecPtr, Page8Ptr);
   void initFragAdd(Signal*, FragmentrecPtr);
   void initFragPageZero(FragmentrecPtr, Page8Ptr);
-  void initFragSr(FragmentrecPtr, Page8Ptr);
   void initFragGeneral(FragmentrecPtr);
   void verifyFragCorrect(FragmentrecPtr regFragPtr);
   void releaseFragResources(Signal* signal, Uint32 fragIndex);
@@ -789,11 +676,6 @@
   void releaseOverflowResources(Signal* signal, FragmentrecPtr regFragPtr);
   void releaseDirIndexResources(Signal* signal, FragmentrecPtr regFragPtr);
   void releaseFragRecord(Signal* signal, FragmentrecPtr regFragPtr);
-  Uint32 remainingUndoPages();
-  void updateLastUndoPageIdWritten(Signal* signal, Uint32 aNewValue);
-  void updateUndoPositionPage(Signal* signal, Uint32 aNewValue);
-  void srCheckPage(Signal* signal);
-  void srCheckContainer(Signal* signal);
   void initScanFragmentPart(Signal* signal);
   Uint32 checkScanExpand(Signal* signal);
   Uint32 checkScanShrink(Signal* signal);
@@ -802,14 +684,11 @@
   void initialiseFragRec(Signal* signal);
   void initialiseFsConnectionRec(Signal* signal);
   void initialiseFsOpRec(Signal* signal);
-  void initialiseLcpConnectionRec(Signal* signal);
   void initialiseOperationRec(Signal* signal);
   void initialiseOverflowRec(Signal* signal);
   void initialisePageRec(Signal* signal);
-  void initialiseLcpPages(Signal* signal);
   void initialiseRootfragRec(Signal* signal);
   void initialiseScanRec(Signal* signal);
-  void initialiseSrVerRec(Signal* signal);
   void initialiseTableRec(Signal* signal);
   bool addfragtotab(Signal* signal, Uint32 rootIndex, Uint32 fragId);
   void initOpRec(Signal* signal);
@@ -873,10 +752,8 @@
   bool getfragmentrec(Signal* signal, FragmentrecPtr&, Uint32 fragId);
   void insertLockOwnersList(Signal* signal, const OperationrecPtr&);
   void takeOutLockOwnersList(Signal* signal, const OperationrecPtr&);
-  void undo_operation(Signal* signal, Operationrec * op_p);
 
   void initFsOpRec(Signal* signal);
-  void initLcpConnRec(Signal* signal);
   void initOverpage(Signal* signal);
   void initPage(Signal* signal);
   void initRootfragrec(Signal* signal);
@@ -887,27 +764,21 @@
   void releaseDirrange(Signal* signal);
   void releaseFsConnRec(Signal* signal);
   void releaseFsOpRec(Signal* signal);
-  void releaseLcpConnectRec(Signal* signal);
   void releaseOpRec(Signal* signal);
   void releaseOverflowRec(Signal* signal);
   void releaseOverpage(Signal* signal);
   void releasePage(Signal* signal);
-  void releaseLcpPage(Signal* signal);
-  void releaseSrRec(Signal* signal);
   void releaseLogicalPage(Fragmentrec * fragP, Uint32 logicalPageId);
   void seizeDirectory(Signal* signal);
   void seizeDirrange(Signal* signal);
   void seizeFragrec(Signal* signal);
   void seizeFsConnectRec(Signal* signal);
   void seizeFsOpRec(Signal* signal);
-  void seizeLcpConnectRec(Signal* signal);
   void seizeOpRec(Signal* signal);
   void seizeOverRec(Signal* signal);
   void seizePage(Signal* signal);
-  void seizeLcpPage(Page8Ptr&);
   void seizeRootfragrec(Signal* signal);
   void seizeScanRec(Signal* signal);
-  void seizeSrVerRec(Signal* signal);
   void sendSystemerror(Signal* signal, int line);
   void takeRecOutOfFreeOverdir(Signal* signal);
   void takeRecOutOfFreeOverpage(Signal* signal);
@@ -915,51 +786,26 @@
 
   void addFragRefuse(Signal* signal, Uint32 errorCode);
   void ndbsttorryLab(Signal* signal);
-  void srCloseDataFileLab(Signal* signal);
   void acckeyref1Lab(Signal* signal, Uint32 result_code);
   void insertelementLab(Signal* signal);
-  void startUndoLab(Signal* signal);
   void checkNextFragmentLab(Signal* signal);
   void endofexpLab(Signal* signal);
   void endofshrinkbucketLab(Signal* signal);
-  void srStartUndoLab(Signal* signal);
   void senddatapagesLab(Signal* signal);
-  void undoNext2Lab(Signal* signal);
   void sttorrysignalLab(Signal* signal);
   void sendholdconfsignalLab(Signal* signal);
   void accIsLockedLab(Signal* signal);
   void insertExistElemLab(Signal* signal);
   void refaccConnectLab(Signal* signal);
-  void srReadOverPagesLab(Signal* signal);
   void releaseScanLab(Signal* signal);
-  void lcpOpenUndofileConfLab(Signal* signal);
-  void srFsOpenConfLab(Signal* signal);
-  void checkSyncUndoPagesLab(Signal* signal);
-  void sendaccSrconfLab(Signal* signal);
-  void checkSendLcpConfLab(Signal* signal);
-  void endsaveoverpageLab(Signal* signal);
-  void lcpCloseDataFileLab(Signal* signal);
-  void srOpenDataFileLoopLab(Signal* signal);
-  void srReadPagesLab(Signal* signal);
-  void srDoUndoLab(Signal* signal);
   void ndbrestart1Lab(Signal* signal);
   void initialiseRecordsLab(Signal* signal, Uint32 ref, Uint32 data);
-  void srReadPagesAllocLab(Signal* signal);
   void checkNextBucketLab(Signal* signal);
-  void endsavepageLab(Signal* signal);
-  void saveZeroPageLab(Signal* signal);
-  void srAllocPage0011Lab(Signal* signal);
-  void sendLcpFragidconfLab(Signal* signal);
-  void savepagesLab(Signal* signal);
-  void saveOverPagesLab(Signal* signal);
-  void srReadPageZeroLab(Signal* signal);
   void storeDataPageInDirectoryLab(Signal* signal);
-  void lcpFsOpenConfLab(Signal* signal);
 
   void zpagesize_error(const char* where);
 
   void reportMemoryUsage(Signal* signal, int gth);
-  void lcp_write_op_to_undolog(Signal* signal);
   void reenable_expand_after_redo_log_exection_complete(Signal*);
 
   // charsets
@@ -1003,14 +849,6 @@
 /* --------------------------------------------------------------------------------- */
 /* FS_CONNECTREC                                                                     */
 /* --------------------------------------------------------------------------------- */
-/* --------------------------------------------------------------------------------- */
-/* LCP_CONNECTREC                                                                    */
-/* --------------------------------------------------------------------------------- */
-  LcpConnectrec *lcpConnectrec;
-  LcpConnectrecPtr lcpConnectptr;
-  Uint32 clcpConnectsize;
-  Uint32 cfirstfreelcpConnect;
-/* --------------------------------------------------------------------------------- */
 /* OPERATIONREC                                                                      */
 /* --------------------------------------------------------------------------------- */
   Operationrec *operationrec;
@@ -1080,9 +918,7 @@
   Uint32 cfirstfreepage;
   Uint32 cfreepage;
   Uint32 cpagesize;
-  Uint32 cfirstfreeLcpPage;
   Uint32 cnoOfAllocatedPages;
-  Uint32 cnoLcpPages;
 /* --------------------------------------------------------------------------------- */
 /* ROOTFRAGMENTREC                                                                   */
 /*          DURING EXPAND FRAGMENT PROCESS, EACH FRAGMEND WILL BE EXPAND INTO TWO    */
@@ -1144,7 +980,6 @@
   Uint32 tgeContainerptr;
   Uint32 tgeElementptr;
   Uint32 tgeForward;
-  Uint32 tundoElemIndex;
   Uint32 texpReceivedBucket;
   Uint32 texpDirInd;
   Uint32 texpDirRangeIndex;
@@ -1166,7 +1001,6 @@
   Uint32 tsscElementptr;
   Uint32 tfid;
   Uint32 tscanFlag;
-  Uint32 theadundoindex;
   Uint32 tgflBufType;
   Uint32 tgseIsforward;
   Uint32 tsscIsforward;
@@ -1197,11 +1031,9 @@
   Uint32 tslUpdateHeader;
   Uint32 tuserptr;
   BlockReference tuserblockref;
-  Uint32 tundoindex;
   Uint32 tlqhPointer;
   Uint32 tholdSentOp;
   Uint32 tholdMore;
-  Uint32 tlcpLqhCheckV;
   Uint32 tgdiPageindex;
   Uint32 tiopIndex;
   Uint32 tnciTmp;
@@ -1212,34 +1044,15 @@
   Uint32 tscanTrid1;
   Uint32 tscanTrid2;
 
-  Uint16 clastUndoPageIdWritten;
-  Uint32 cactiveCheckpId;
-  Uint32 cactiveSrFsPtr;
-  Uint32 cactiveUndoFilePage;
-  Uint32 cactiveSrUndoPage;
-  Uint32 cactiveOpenUndoFsPtr;
-  Uint32 cprevUndoaddress;
-  Uint32 creadyUndoaddress;
   Uint32 ctest;
-  Uint32 cundoLogActive;
   Uint32 clqhPtr;
   BlockReference clqhBlockRef;
   Uint32 cminusOne;
   NodeId cmynodeid;
-  Uint32 cactiveUndoFileVersion;
   BlockReference cownBlockref;
   BlockReference cndbcntrRef;
   Uint16 csignalkey;
-  Uint32 cundopagesize;
-  Uint32 cundoposition;
-  Uint32 cundoElemIndex;
-  Uint32 cundoinfolength;
   Uint32 czero;
-  Uint32 csrVersList[16];
-  Uint32 clblPageCounter;
-  Uint32 clblPageOver;
-  Uint32 clblPagesPerTick;
-  Uint32 clblPagesPerTickAfterSr;
   Uint32 csystemRestart;
   Uint32 cexcForward;
   Uint32 cexcPageindex;

--- 1.27/storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp	2005-10-10 15:33:14 +02:00
+++ 1.28/storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp	2005-10-10 16:48:22 +02:00
@@ -26,7 +26,6 @@
   cdirarraysize = ZDIRARRAY;
   coprecsize = ZOPRECSIZE;
   cpagesize = ZPAGESIZE;
-  clcpConnectsize = ZLCP_CONNECTSIZE;
   ctablesize = ZTABLESIZE;
   cfragmentsize = ZFRAGMENTSIZE;
   cdirrangesize = ZDIRRANGESIZE;
@@ -37,7 +36,6 @@
   dirRange = 0;
   directoryarray = 0;
   fragmentrec = 0;
-  lcpConnectrec = 0;
   operationrec = 0;
   overflowRecord = 0;
   page8 = 0;
@@ -63,11 +61,6 @@
 				    sizeof(DirRange), 
 				    cdirrangesize);
 
-  undopage = (Undopage*)allocRecord("Undopage",
-				    sizeof(Undopage), 
-				    cundopagesize,
-				    false);
-  
   directoryarray = (Directoryarray*)allocRecord("Directoryarray",
 						sizeof(Directoryarray), 
 						cdirarraysize);
@@ -76,10 +69,6 @@
 					  sizeof(Fragmentrec), 
 					  cfragmentsize);
 
-  lcpConnectrec = (LcpConnectrec*)allocRecord("LcpConnectrec",
-					      sizeof(LcpConnectrec),
-					      clcpConnectsize);
-
   overflowRecord = (OverflowRecord*)allocRecord("OverflowRecord",
 						sizeof(OverflowRecord),
 						coverflowrecsize);
@@ -139,7 +128,6 @@
                     &sdDirptr,
                     &nciOverflowDirptr,
                     &fragrecptr,
-                    &lcpConnectptr,
                     &operationRecPtr,
                     &idrOperationRecPtr,
                     &copyInOperPtr,
@@ -210,10 +198,6 @@
   deallocRecord((void **)&fragmentrec, "Fragmentrec",
 		sizeof(Fragmentrec), 
 		cfragmentsize);
-  
-  deallocRecord((void **)&lcpConnectrec, "LcpConnectrec",
-		sizeof(LcpConnectrec),
-		clcpConnectsize);
   
   deallocRecord((void **)&operationrec, "Operationrec",
 		sizeof(Operationrec),

--- 1.67/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp	2005-10-10 15:33:15 +02:00
+++ 1.68/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp	2005-10-10 16:48:22 +02:00
@@ -64,24 +64,6 @@
   tdata0 = signal->theData[1];
   tresult = 0;
   switch (tcase) {
-  case ZLOAD_BAL_LCP_TIMER:
-    if (clblPageOver == 0) {
-      jam();
-      clblPageCounter = clblPagesPerTick;
-    } else {
-      if (clblPageOver > clblPagesPerTick) {
-        jam();
-        clblPageOver = clblPageOver - clblPagesPerTick;
-      } else {
-        jam();
-        clblPageOver = 0;
-        clblPageCounter = clblPagesPerTick - clblPageOver;
-      }//if
-    }//if
-    signal->theData[0] = ZLOAD_BAL_LCP_TIMER;
-    sendSignalWithDelay(cownBlockref, GSN_CONTINUEB, signal, 100, 1);
-    return;
-    break;
   case ZINITIALISE_RECORDS:
     jam();
     initialiseRecordsLab(signal, signal->theData[3], signal->theData[4]);
@@ -181,8 +163,6 @@
     return;
     break;
   case ZSPH2:
-    cnoLcpPages = 2 * (ZWRITEPAGESIZE + 1);
-    initialiseLcpPages(signal);
     ndbsttorryLab(signal);
     return;
     break;
@@ -199,13 +179,9 @@
       //---------------------------------------------
       csystemRestart = ZFALSE;
     }//if
-    
-    signal->theData[0] = ZLOAD_BAL_LCP_TIMER;
-    sendSignalWithDelay(cownBlockref, GSN_CONTINUEB, signal, 100, 1);
     break;
   case ZSPH6:
     jam();
-    clblPagesPerTick = clblPagesPerTickAfterSr;
     csystemRestart = ZFALSE;
 
     signal->theData[0] = ZREPORT_MEMORY_USAGE;
@@ -251,19 +227,7 @@
   czero = 0;
   cminusOne = czero - 1;
   ctest = 0;
-  cundoLogActive = ZFALSE;
   csystemRestart = ZTRUE;
-  clblPageOver = 0;
-  clblPageCounter = 0;
-  cactiveUndoFilePage = 0;
-  cprevUndoaddress = cminusOne;
-  cundoposition = 0;
-  clastUndoPageIdWritten = 0;
-  cactiveUndoFileVersion = RNIL;
-  cactiveOpenUndoFsPtr = RNIL;
-  for (Uint32 tmp = 0; tmp < ZMAX_UNDO_VERSION; tmp++) {
-    csrVersList[tmp] = RNIL;
-  }//for
   return;
 }//Dbacc::ndbrestart1Lab()
 
@@ -279,7 +243,6 @@
     break;
   case 3:
     jam();
-    initialiseLcpConnectionRec(signal);
     break;
   case 4:
     jam();
@@ -364,20 +327,6 @@
     theConfiguration.getOwnConfigIterator();
   ndbrequire(p != 0);
   
-  Uint32 log_page_size= 0;
-  ndb_mgm_get_int_parameter(p, CFG_DB_UNDO_INDEX_BUFFER,  
-			    &log_page_size);
-
-  /**
-   * Always set page size in half MBytes
-   */
-  cundopagesize= (log_page_size / sizeof(Undopage));
-  Uint32 mega_byte_part= cundopagesize & 15;
-  if (mega_byte_part != 0) {
-    jam();
-    cundopagesize+= (16 - mega_byte_part);
-  }
-
   ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_ACC_DIR_RANGE, &cdirrangesize));
   ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_ACC_DIR_ARRAY, &cdirarraysize));
   ndbrequire(!ndb_mgm_get_int_parameter(p, CFG_ACC_FRAGMENT, &cfragmentsize));
@@ -390,14 +339,6 @@
   initRecords();
   ndbrestart1Lab(signal);
 
-  clblPagesPerTick = 50;
-  ndb_mgm_get_int_parameter(p, CFG_DB_LCP_DISC_PAGES_ACC_SR, 
-			    &clblPagesPerTick);
-
-  clblPagesPerTickAfterSr = 50;
-  ndb_mgm_get_int_parameter(p, CFG_DB_LCP_DISC_PAGES_ACC, 
-			    &clblPagesPerTickAfterSr);
-
   tdata0 = 0;
   initialiseRecordsLab(signal, ref, senderData);
   return;
@@ -484,26 +425,6 @@
 }//Dbacc::initialiseFragRec()
 
 /* --------------------------------------------------------------------------------- */
-/* INITIALISE_LCP_CONNECTION_REC                                                     */
-/*              INITIALATES THE LCP_CONNECTION RECORDS                               */
-/* --------------------------------------------------------------------------------- */
-void Dbacc::initialiseLcpConnectionRec(Signal* signal) 
-{
-  ndbrequire(clcpConnectsize > 0);
-  for (lcpConnectptr.i = 0; lcpConnectptr.i < clcpConnectsize; lcpConnectptr.i++) {
-    ptrAss(lcpConnectptr, lcpConnectrec);
-    lcpConnectptr.p->nextLcpConn = lcpConnectptr.i + 1;
-    lcpConnectptr.p->lcpUserptr = RNIL;
-    lcpConnectptr.p->fragrecptr = RNIL;
-    lcpConnectptr.p->lcpstate = LCP_FREE;
-  }//for
-  lcpConnectptr.i = clcpConnectsize - 1;
-  ptrAss(lcpConnectptr, lcpConnectrec);
-  lcpConnectptr.p->nextLcpConn = RNIL;
-  cfirstfreelcpConnect = 0;
-}//Dbacc::initialiseLcpConnectionRec()
-
-/* --------------------------------------------------------------------------------- */
 /* INITIALISE_OPERATION_REC                                                          */
 /*              INITIALATES THE OPERATION RECORDS.                                   */
 /* --------------------------------------------------------------------------------- */
@@ -556,36 +477,6 @@
   cnoOfAllocatedPages = 0;
 }//Dbacc::initialisePageRec()
 
-/* --------------------------------------------------------------------------------- */
-/* INITIALISE_LCP_PAGES                                                              */
-/*              INITIALATES THE LCP PAGE RECORDS.                                    */
-/* --------------------------------------------------------------------------------- */
-void Dbacc::initialiseLcpPages(Signal* signal) 
-{
-  Uint32 tilpIndex;
-
-  ndbrequire(cnoLcpPages >= (2 * (ZWRITEPAGESIZE + 1)));
-  /* --------------------------------------------------------------------------------- */
-  /*       AN ABSOLUTE MINIMUM IS THAT WE HAVE 16 LCP PAGES TO HANDLE TWO CONCURRENT   */
-  /*       LCP'S ON LOCAL FRAGMENTS.                                                   */
-  /* --------------------------------------------------------------------------------- */
-  ndbrequire(cpagesize >= (cnoLcpPages + 8));
-  /* --------------------------------------------------------------------------------- */
-  /*       THE NUMBER OF PAGES MUST BE AT LEAST 8 PLUS THE NUMBER OF PAGES REQUIRED BY */
-  /*       THE LOCAL CHECKPOINT PROCESS. THIS NUMBER IS 8 TIMES THE PARALLELISM OF     */
-  /*       LOCAL CHECKPOINTS.                                                          */
-  /* --------------------------------------------------------------------------------- */
-  /* --------------------------------------------------------------------------------- */
-  /*       WE SET UP A LINKED LIST OF PAGES FOR EXCLUSIVE USE BY LOCAL CHECKPOINTS.    */
-  /* --------------------------------------------------------------------------------- */
-  cfirstfreeLcpPage = RNIL;
-  for (tilpIndex = 0; tilpIndex < cnoLcpPages; tilpIndex++) {
-    jam();
-    seizePage(signal);
-    rlpPageptr = spPageptr;
-    releaseLcpPage(signal);
-  }//for
-}//Dbacc::initialiseLcpPages()
 
 /* --------------------------------------------------------------------------------- */
 /* INITIALISE_ROOTFRAG_REC                                                           */
@@ -843,13 +734,7 @@
 
 void Dbacc::verifyFragCorrect(FragmentrecPtr regFragPtr)
 {
-  for (Uint32 i = 0; i < ZWRITEPAGESIZE; i++) {
-    jam();
-    ndbrequire(regFragPtr.p->datapages[i] == RNIL);
-  }//for
   ndbrequire(regFragPtr.p->lockOwnersList == RNIL);
-  //ndbrequire(regFragPtr.p->fsConnPtr == RNIL);
-  ndbrequire(regFragPtr.p->zeroPagePtr == RNIL);
 }//Dbacc::verifyFragCorrect()
 
 void Dbacc::releaseDirResources(Signal* signal, 
@@ -1105,7 +990,6 @@
   // bit to mark lock operation
   operationRecPtr.p->isAccLockReq = (Treqinfo >> 31) & 0x1;
   // undo log is not run via ACCKEYREQ
-  operationRecPtr.p->isUndoLogReq = 0;
 
   if(ERROR_INSERTED(5900) || ERROR_INSERTED(5901))
   {
@@ -2748,8 +2632,7 @@
    * - table key for ACCKEYREQ, stored in TUP
    * - local key (1 word) for ACC_LOCKREQ and UNDO, stored in ACC
    */
-  const bool searchLocalKey =
-    operationRecPtr.p->isAccLockReq || operationRecPtr.p->isUndoLogReq;
+  const bool searchLocalKey = operationRecPtr.p->isAccLockReq;
 
   ndbrequire(TelemLen == ZELEM_HEAD_SIZE + fragrecptr.p->localkeylen);
   tgeNextptrtype = ZLEFT;
@@ -5365,53 +5248,14 @@
   regFragPtr.p->lastOverflowRec = RNIL;
   regFragPtr.p->lockOwnersList = RNIL;
   regFragPtr.p->firstFreeDirindexRec = RNIL;
-  regFragPtr.p->zeroPagePtr = RNIL;
 
   regFragPtr.p->activeDataPage = 0;
   regFragPtr.p->hasCharAttr = ZFALSE;
   regFragPtr.p->nextAllocPage = 0;
   regFragPtr.p->fragState = FREEFRAG;
-  for (Uint32 i = 0; i < ZWRITEPAGESIZE; i++) {
-    regFragPtr.p->datapages[i] = RNIL;
-  }//for
 }//Dbacc::initFragGeneral()
 
 
-void Dbacc::initFragPageZero(FragmentrecPtr regFragPtr, Page8Ptr regPagePtr) 
-{
-  //------------------------------------------------------------------
-  // PREV_UNDOP, NEXT_UNDO_FILE, NO_OVER_PAGE, NO_PAGES
-  // is set at end of copy phase
-  //------------------------------------------------------------------
-  regPagePtr.p->word32[ZPAGEZERO_DIRSIZE] = regFragPtr.p->dirsize;
-  regPagePtr.p->word32[ZPAGEZERO_EXPCOUNTER] = regFragPtr.p->expandCounter;
-  regPagePtr.p->word32[ZPAGEZERO_SLACK] = regFragPtr.p->slack;
-  regPagePtr.p->word32[ZPAGEZERO_HASHCHECKBIT] = regFragPtr.p->hashcheckbit;
-  regPagePtr.p->word32[ZPAGEZERO_K] = regFragPtr.p->k;
-  regPagePtr.p->word32[ZPAGEZERO_LHFRAGBITS] = regFragPtr.p->lhfragbits;
-  regPagePtr.p->word32[ZPAGEZERO_LHDIRBITS] = regFragPtr.p->lhdirbits;
-  regPagePtr.p->word32[ZPAGEZERO_LOCALKEYLEN] = regFragPtr.p->localkeylen;
-  regPagePtr.p->word32[ZPAGEZERO_MAXP] = regFragPtr.p->maxp;
-  regPagePtr.p->word32[ZPAGEZERO_MAXLOADFACTOR] = regFragPtr.p->maxloadfactor;
-  regPagePtr.p->word32[ZPAGEZERO_MINLOADFACTOR] = regFragPtr.p->minloadfactor;
-  regPagePtr.p->word32[ZPAGEZERO_MYFID] = regFragPtr.p->myfid;
-  regPagePtr.p->word32[ZPAGEZERO_LAST_OVER_INDEX] = regFragPtr.p->lastOverIndex;
-  regPagePtr.p->word32[ZPAGEZERO_NODETYPE] = regFragPtr.p->nodetype;
-  regPagePtr.p->word32[ZPAGEZERO_P] = regFragPtr.p->p;
-  regPagePtr.p->word32[ZPAGEZERO_ELEMENT_LENGTH] = regFragPtr.p->elementLength;
-  regPagePtr.p->word32[ZPAGEZERO_KEY_LENGTH] = regFragPtr.p->keyLength;
-  regPagePtr.p->word32[ZPAGEZERO_SLACK_CHECK] = regFragPtr.p->slackCheck;
-}//Dbacc::initFragPageZero()
-
-void Dbacc::initRootFragPageZero(FragmentrecPtr rootPtr, Page8Ptr regPagePtr) 
-{
-  regPagePtr.p->word32[ZPAGEZERO_TABID] = rootPtr.p->mytabptr;
-  regPagePtr.p->word32[ZPAGEZERO_FRAGID0] = rootPtr.p->fragmentid;
-  regPagePtr.p->word32[ZPAGEZERO_FRAGID1] = RNIL;
-  regPagePtr.p->word32[ZPAGEZERO_HASH_CHECK] = rootPtr.p->roothashcheck;
-  regPagePtr.p->word32[ZPAGEZERO_NO_OF_ELEMENTS] = rootPtr.p->noOfElements;
-}//Dbacc::initRootFragPageZero()
-
 void
 Dbacc::releaseLogicalPage(Fragmentrec * fragP, Uint32 logicalPageId){
   Ptr<struct DirRange> dirRangePtr;
@@ -6176,7 +6020,6 @@
   operationRecPtr.p->elementPointer = tisoElementptr;
   operationRecPtr.p->elementPage = isoPageptr.i;
   operationRecPtr.p->isAccLockReq = ZFALSE;
-  operationRecPtr.p->isUndoLogReq = ZFALSE;
   tisoLocalPtr = tisoElementptr + tisoIsforward;
   guard24 = fragrecptr.p->localkeylen - 1;
   for (tisoTmp = 0; tisoTmp <= guard24; tisoTmp++) {
@@ -6743,16 +6586,6 @@
 }//Dbacc::getrootfragmentrec()
 
 /* --------------------------------------------------------------------------------- */
-/* INIT_LCP_CONN_REC                                                                 */
-/* --------------------------------------------------------------------------------- */
-void Dbacc::initLcpConnRec(Signal* signal) 
-{
-  lcpConnectptr.p->lcpUserblockref = tuserblockref;
-  lcpConnectptr.p->lcpUserptr = tuserptr;
-  lcpConnectptr.p->syncUndopageState = WAIT_NOTHING;
-}//Dbacc::initLcpConnRec()
-
-/* --------------------------------------------------------------------------------- */
 /* INIT_OVERPAGE                                                                     */
 /*         INPUT. IOP_PAGEPTR, POINTER TO AN OVERFLOW PAGE RECORD                    */
 /*         DESCRIPTION: CONTAINERS AND FREE LISTS OF THE PAGE, GET INITIALE VALUE    */
@@ -7028,17 +6861,6 @@
 }//Dbacc::releaseDirrange()
 
 /* --------------------------------------------------------------------------------- */
-/* RELEASE_LCP_CONNECT_REC                                                           */
-/* --------------------------------------------------------------------------------- */
-void Dbacc::releaseLcpConnectRec(Signal* signal) 
-{
-  lcpConnectptr.p->lcpstate = LCP_FREE;
-  lcpConnectptr.p->nextLcpConn = cfirstfreelcpConnect;
-  lcpConnectptr.p->lcpstate = LCP_FREE;
-  cfirstfreelcpConnect = lcpConnectptr.i;
-}//Dbacc::releaseLcpConnectRec()
-
-/* --------------------------------------------------------------------------------- */
 /* RELEASE OP RECORD                                                                 */
 /*         PUT A FREE OPERATION IN A FREE LIST OF THE OPERATIONS                     */
 /* --------------------------------------------------------------------------------- */
@@ -7225,15 +7047,6 @@
   cnoOfAllocatedPages--;
 }//Dbacc::releasePage()
 
-/* ------------------------------------------------------------------------ */
-/* RELEASE_LCP_PAGE                                                         */
-/* ------------------------------------------------------------------------ */
-void Dbacc::releaseLcpPage(Signal* signal) 
-{
-  rlpPageptr.p->word32[0] = cfirstfreeLcpPage;
-  cfirstfreeLcpPage = rlpPageptr.i;
-}//Dbacc::releaseLcpPage()
-
 /* --------------------------------------------------------------------------------- */
 /* SEIZE_DIRECTORY                                                                   */
 /*          DESCRIPTION: A DIRECTORY BLOCK (ZDIRBLOCKSIZE NUMBERS OF DIRECTORY       */
@@ -7296,17 +7109,6 @@
 }//Dbacc::seizeFragrec()
 
 /* --------------------------------------------------------------------------------- */
-/* SEIZE_LCP_CONNECT_REC                                                             */
-/* --------------------------------------------------------------------------------- */
-void Dbacc::seizeLcpConnectRec(Signal* signal) 
-{
-  lcpConnectptr.i = cfirstfreelcpConnect;
-  ptrCheckGuard(lcpConnectptr, clcpConnectsize, lcpConnectrec);
-  cfirstfreelcpConnect = lcpConnectptr.p->nextLcpConn;
-  lcpConnectptr.p->nextLcpConn = RNIL;
-}//Dbacc::seizeLcpConnectRec()
-
-/* --------------------------------------------------------------------------------- */
 /* SEIZE_OP_REC                                                                      */
 /* --------------------------------------------------------------------------------- */
 void Dbacc::seizeOpRec(Signal* signal) 
@@ -7372,16 +7174,6 @@
     cnoOfAllocatedPages++;
   }//if
 }//Dbacc::seizePage()
-
-/* --------------------------------------------------------------------------------- */
-/* SEIZE_PAGE                                                                        */
-/* --------------------------------------------------------------------------------- */
-void Dbacc::seizeLcpPage(Page8Ptr& regPagePtr) 
-{
-  regPagePtr.i = cfirstfreeLcpPage;
-  ptrCheckGuard(regPagePtr, cpagesize, page8);
-  cfirstfreeLcpPage = regPagePtr.p->word32[0];
-}//Dbacc::seizeLcpPage()
 
 /* --------------------------------------------------------------------------------- */
 /* SEIZE_ROOTFRAGREC                                                                 */

--- 1.9/storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp	2005-10-07 01:06:18 +02:00
+++ 1.10/storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp	2005-10-10 16:48:22 +02:00
@@ -25,19 +25,6 @@
 {
   cpageFileSize = ZPAGEREC;
 
-  apiConnectRecord = 0;
-  connectRecord = 0;
-  fileRecord = 0;
-  fragmentstore = 0;
-  pageRecord = 0;
-  replicaRecord = 0;
-  tabRecord = 0;
-  takeOverRecord = 0;
-  createReplicaRecord = 0;
-  nodeGroupRecord = 0;
-  nodeRecord = 0;
-  c_nextNodeGroup = 0;
-
   // Records with constant sizes
   createReplicaRecord = (CreateReplicaRecord*)
     allocRecord("CreateReplicaRecord", sizeof(CreateReplicaRecord),
@@ -262,6 +249,19 @@
 
   addRecSignal(GSN_CREATE_FRAGMENTATION_REQ, 
 	       &Dbdih::execCREATE_FRAGMENTATION_REQ);
+
+  apiConnectRecord = 0;
+  connectRecord = 0;
+  fileRecord = 0;
+  fragmentstore = 0;
+  pageRecord = 0;
+  replicaRecord = 0;
+  tabRecord = 0;
+  takeOverRecord = 0;
+  createReplicaRecord = 0;
+  nodeGroupRecord = 0;
+  nodeRecord = 0;
+  c_nextNodeGroup = 0;
 }//Dbdih::Dbdih()
 
 Dbdih::~Dbdih() 

--- 1.12/storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp	2005-10-10 14:35:19 +02:00
+++ 1.13/storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp	2005-10-10 16:48:22 +02:00
@@ -41,18 +41,6 @@
   clqhblockref = DBLQH_REF;
   cerrorBlockref = NDBCNTR_REF;
 
-  cacheRecord = 0;
-  apiConnectRecord = 0;
-  tcConnectRecord = 0;
-  hostRecord = 0;
-  tableRecord = 0;
-  scanRecord = 0;
-  databufRecord = 0;
-  attrbufRecord = 0;
-  gcpRecord = 0;
-  tcFailRecord = 0;
-  c_apiConTimer = 0;
-  c_apiConTimer_line = 0;
   // Records with constant sizes
   tcFailRecord = (TcFailRecord*)allocRecord("TcFailRecord",
 					    sizeof(TcFailRecord), 1);
@@ -307,6 +295,18 @@
     init_globals_list(tmp, sizeof(tmp)/sizeof(tmp[0]));
   }
 #endif
+  cacheRecord = 0;
+  apiConnectRecord = 0;
+  tcConnectRecord = 0;
+  hostRecord = 0;
+  tableRecord = 0;
+  scanRecord = 0;
+  databufRecord = 0;
+  attrbufRecord = 0;
+  gcpRecord = 0;
+  tcFailRecord = 0;
+  c_apiConTimer = 0;
+  c_apiConTimer_line = 0;
 }//Dbtc::Dbtc()
 
 Dbtc::~Dbtc() 

--- 1.45/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp	2005-10-10 15:33:15 +02:00
+++ 1.46/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp	2005-10-10 16:48:22 +02:00
@@ -48,17 +48,6 @@
   c_maxTriggersPerTable = ZDEFAULT_MAX_NO_TRIGGERS_PER_TABLE;
   c_noOfBuildIndexRec = 32;
 
-  attrbufrec = 0;
-  fragoperrec = 0;
-  fragrecord = 0;
-  hostBuffer = 0;
-  cpage = 0;
-  pageRange = 0;
-  tablerec = 0;
-  tableDescriptor = 0;
-  totNoOfPagesAllocated = 0;
-  cnoOfAllocatedPages = 0;
-  
   // Records with constant sizes
   init_list_sizes();
 }//Dbtup::initData()
@@ -113,6 +102,17 @@
   addRecSignal(GSN_NEXT_SCANREQ, &Dbtup::execNEXT_SCANREQ);
   addRecSignal(GSN_ACC_CHECK_SCAN, &Dbtup::execACC_CHECK_SCAN);
 
+  attrbufrec = 0;
+  fragoperrec = 0;
+  fragrecord = 0;
+  hostBuffer = 0;
+  cpage = 0;
+  pageRange = 0;
+  tablerec = 0;
+  tableDescriptor = 0;
+  totNoOfPagesAllocated = 0;
+  cnoOfAllocatedPages = 0;
+  
   initData();
 }//Dbtup::Dbtup()
 
@@ -348,6 +348,10 @@
   hostBuffer = (HostBuffer*)allocRecord("HostBuffer",
 					sizeof(HostBuffer), 
 					MAX_NODES);
+
+  tableDescriptor = (TableDescriptor*)allocRecord("TableDescriptor",
+						  sizeof(TableDescriptor),
+						  cnoOfTabDescrRec);
 
   Uint32 tmp;
   const ndb_mgm_configuration_iterator * p = 

--- 1.29/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp	2005-10-10 14:35:20 +02:00
+++ 1.30/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp	2005-10-10 16:48:22 +02:00
@@ -104,7 +104,11 @@
   TRIX_REF,
   BACKUP_REF,
   DBUTIL_REF,
-  SUMA_REF
+  SUMA_REF,
+  TSMAN_REF,
+  LGMAN_REF,
+  PGMAN_REF,
+  RESTORE_REF
 };
 
 /*******************************/

--- 1.30/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp	2005-10-10 15:33:15 +02:00
+++ 1.31/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp	2005-10-10 16:48:22 +02:00
@@ -54,6 +54,7 @@
   SimulatedBlock(NDBFS, conf),
   scanningInProgress(false),
   theLastId(0),
+  theRequestPool(0),
   m_maxOpenedFiles(0)
 {
   BLOCK_CONSTRUCTOR(Ndbfs);
@@ -84,8 +85,9 @@
     theFiles[i] = NULL;
   }//for
   theFiles.clear();
-
-  delete theRequestPool;
+  
+  if (theRequestPool)
+    delete theRequestPool;
 }
 
 void 
@@ -99,14 +101,11 @@
   const ndb_mgm_configuration_iterator * p = 
     theConfiguration.getOwnConfigIterator();
   ndbrequire(p != 0);
-  theFileSystemPath.assfmt("%sndb_%u_fs%s", conf.fileSystemPath(),
-		                             getOwnNodeId(), DIR_SEPARATOR);
-  theBackupFilePath.assign(conf.backupFilePath());
+  theFileSystemPath.assfmt("%sndb_%u_fs%s", theConfiguration.fileSystemPath(),
+			   getOwnNodeId(), DIR_SEPARATOR);
+  theBackupFilePath.assign(theConfiguration.backupFilePath());
 
   theRequestPool = new Pool<Request>;
-
-  const ndb_mgm_configuration_iterator * p = conf.getOwnConfigIterator();
-  ndbrequire(p != 0);
 
   m_maxFiles = 40;
   ndb_mgm_get_int_parameter(p, CFG_DB_MAX_OPEN_FILES, &m_maxFiles);

--- 1.3/storage/ndb/src/kernel/vm/SafeCounter.cpp	2005-10-07 01:06:21 +02:00
+++ 1.4/storage/ndb/src/kernel/vm/SafeCounter.cpp	2005-10-10 16:48:22 +02:00
@@ -26,7 +26,7 @@
   
 bool
 SafeCounterManager::setSize(Uint32 maxNoOfActiveMutexes, bool exit_on_error) {
-  return m_counterPool.setSize(maxNoOfActiveMutexes, exit_on_error);
+  return m_counterPool.setSize(maxNoOfActiveMutexes, false, exit_on_error);
 }
 
 Uint32

--- 1.23/storage/ndb/src/ndbapi/NdbRecAttr.cpp	2005-10-10 15:33:15 +02:00
+++ 1.24/storage/ndb/src/ndbapi/NdbRecAttr.cpp	2005-10-10 16:48:22 +02:00
@@ -187,203 +187,195 @@
     if (j > 0)
       out << " ";
 
-    switch(r.getType())
-      {
-      case NdbDictionary::Column::Bigunsigned:
-	out << r.u_64_value();
-	break;
-      case NdbDictionary::Column::Bit:
-	out << hex << "H'" << r.u_32_value() << dec;
-	break;
-      case NdbDictionary::Column::Unsigned:
-	out << r.u_32_value();
-	break;
-      case NdbDictionary::Column::Smallunsigned:
-	out << r.u_short_value();
-	break;
-      case NdbDictionary::Column::Tinyunsigned:
-	out << (unsigned) r.u_char_value();
-	break;
-      case NdbDictionary::Column::Bigint:
-	out << r.int64_value();
-	break;
-      case NdbDictionary::Column::Int:
-	out << r.int32_value();
-	break;
-      case NdbDictionary::Column::Smallint:
-	out << r.short_value();
-	break;
-      case NdbDictionary::Column::Tinyint:
-	out << (int) r.char_value();
-	break;
-      case NdbDictionary::Column::Binary:
-	j = r.get_size_in_bytes();
-	ndbrecattr_print_string(out,"Binary", r.aRef(), j);
-	break;
-      case NdbDictionary::Column::Char:
-	j = r.get_size_in_bytes();
-	ndbrecattr_print_string(out,"Char", r.aRef(), j);
-	break;
-      case NdbDictionary::Column::Varbinary:
-      {
-	j = r.get_size_in_bytes();
-	ndbrecattr_print_string(out,"Varbinary", r.aRef(), j);
-	j = length;
-      }
-      break;
-      case NdbDictionary::Column::Varchar:
-        {
-          unsigned len = *(const unsigned char*)r.aRef();
-          ndbrecattr_print_string(out,"Varchar", r.aRef()+1,len);
-          j = length;
-        }
-	break;
-      case NdbDictionary::Column::Varbinary:
-        {
-          unsigned len = *(const unsigned char*)r.aRef();
-          ndbrecattr_print_string(out,"Varbinary", r.aRef()+1,len);
-          j = length;
-        }
-	break;
-      case NdbDictionary::Column::Float:
-	out << r.float_value();
-	break;
-      case NdbDictionary::Column::Double:
-	out << r.double_value();
-	break;
-      case NdbDictionary::Column::Olddecimal:
-        {
-          short len = 1 + c->getPrecision() + (c->getScale() > 0);
-          out.print("%.*s", len, r.aRef());
-        }
-        break;
-      case NdbDictionary::Column::Olddecimalunsigned:
-        {
-          short len = 0 + c->getPrecision() + (c->getScale() > 0);
-          out.print("%.*s", len, r.aRef());
-        }
-	break;
-      case NdbDictionary::Column::Decimal:
-      case NdbDictionary::Column::Decimalunsigned:
-        goto unknown;   // TODO
-        break;
+    switch(r.getType()){
+    case NdbDictionary::Column::Bigunsigned:
+      out << r.u_64_value();
+      break;
+    case NdbDictionary::Column::Bit:
+      out << hex << "H'" << r.u_32_value() << dec;
+      break;
+    case NdbDictionary::Column::Unsigned:
+      out << r.u_32_value();
+      break;
+    case NdbDictionary::Column::Smallunsigned:
+      out << r.u_short_value();
+      break;
+    case NdbDictionary::Column::Tinyunsigned:
+      out << (unsigned) r.u_char_value();
+      break;
+    case NdbDictionary::Column::Bigint:
+      out << r.int64_value();
+      break;
+    case NdbDictionary::Column::Int:
+      out << r.int32_value();
+      break;
+    case NdbDictionary::Column::Smallint:
+      out << r.short_value();
+      break;
+    case NdbDictionary::Column::Tinyint:
+      out << (int) r.char_value();
+      break;
+    case NdbDictionary::Column::Binary:
+      j = r.get_size_in_bytes();
+      ndbrecattr_print_string(out,"Binary", r.aRef(), j);
+      break;
+    case NdbDictionary::Column::Char:
+      j = r.get_size_in_bytes();
+      ndbrecattr_print_string(out,"Char", r.aRef(), j);
+      break;
+    case NdbDictionary::Column::Varchar:
+    {
+      unsigned len = *(const unsigned char*)r.aRef();
+      ndbrecattr_print_string(out,"Varchar", r.aRef()+1,len);
+      j = length;
+    }
+    break;
+    case NdbDictionary::Column::Varbinary:
+    {
+      unsigned len = *(const unsigned char*)r.aRef();
+      ndbrecattr_print_string(out,"Varbinary", r.aRef()+1,len);
+      j = length;
+    }
+    break;
+    case NdbDictionary::Column::Float:
+      out << r.float_value();
+      break;
+    case NdbDictionary::Column::Double:
+      out << r.double_value();
+      break;
+    case NdbDictionary::Column::Olddecimal:
+    {
+      short len = 1 + c->getPrecision() + (c->getScale() > 0);
+      out.print("%.*s", len, r.aRef());
+    }
+    break;
+    case NdbDictionary::Column::Olddecimalunsigned:
+    {
+      short len = 0 + c->getPrecision() + (c->getScale() > 0);
+      out.print("%.*s", len, r.aRef());
+    }
+    break;
+    case NdbDictionary::Column::Decimal:
+    case NdbDictionary::Column::Decimalunsigned:
+      goto unknown;   // TODO
+      break;
       // for dates cut-and-paste from field.cc
-      case NdbDictionary::Column::Datetime:
-        {
-          ulonglong tmp=r.u_64_value();
-          long part1,part2,part3;
-          part1=(long) (tmp/LL(1000000));
-          part2=(long) (tmp - (ulonglong) part1*LL(1000000));
-          char buf[40];
-          char* pos=(char*) buf+19;
-          *pos--=0;
-          *pos--= (char) ('0'+(char) (part2%10)); part2/=10; 
-          *pos--= (char) ('0'+(char) (part2%10)); part3= (int) (part2 / 10);
-          *pos--= ':';
-          *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
-          *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
-          *pos--= ':';
-          *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
-          *pos--= (char) ('0'+(char) part3);
-          *pos--= '/';
-          *pos--= (char) ('0'+(char) (part1%10)); part1/=10;
-          *pos--= (char) ('0'+(char) (part1%10)); part1/=10;
-          *pos--= '-';
-          *pos--= (char) ('0'+(char) (part1%10)); part1/=10;
-          *pos--= (char) ('0'+(char) (part1%10)); part3= (int) (part1/10);
-          *pos--= '-';
-          *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
-          *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
-          *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
-          *pos=(char) ('0'+(char) part3);
-          out << buf;
-        }
-	break;
-      case NdbDictionary::Column::Date:
-        {
-          uint32 tmp=(uint32) uint3korr(r.aRef());
-          int part;
-          char buf[40];
-          char *pos=(char*) buf+10;
-          *pos--=0;
-          part=(int) (tmp & 31);
-          *pos--= (char) ('0'+part%10);
-          *pos--= (char) ('0'+part/10);
-          *pos--= '-';
-          part=(int) (tmp >> 5 & 15);
-          *pos--= (char) ('0'+part%10);
-          *pos--= (char) ('0'+part/10);
-          *pos--= '-';
-          part=(int) (tmp >> 9);
-          *pos--= (char) ('0'+part%10); part/=10;
-          *pos--= (char) ('0'+part%10); part/=10;
-          *pos--= (char) ('0'+part%10); part/=10;
-          *pos=   (char) ('0'+part);
-          out << buf;
-        }
-	break;
-      case NdbDictionary::Column::Time:
-        {
-          long tmp=(long) sint3korr(r.aRef());
-          int hour=(uint) (tmp/10000);
-          int minute=(uint) (tmp/100 % 100);
-          int second=(uint) (tmp % 100);
-          char buf[40];
-          sprintf(buf, "%02d:%02d:%02d", hour, minute, second);
-          out << buf;
-        }
-	break;
-      case NdbDictionary::Column::Year:
-        {
-          uint year = 1900 + r.u_char_value();
-          char buf[40];
-          sprintf(buf, "%04d", year);
-          out << buf;
-        }
-	break;
-      case NdbDictionary::Column::Timestamp:
-        {
-          time_t time = r.u_32_value();
-          out << (uint)time;
-        }
-	break;
-      case NdbDictionary::Column::Blob:
-        {
-          const NdbBlob::Head* h = (const NdbBlob::Head*)r.aRef();
-          out << h->length << ":";
-          const unsigned char* p = (const unsigned char*)(h + 1);
-          unsigned n = r.get_size_in_bytes() - sizeof(*h);
-          for (unsigned k = 0; k < n && k < h->length; k++)
-            out.print("%02X", (int)p[k]);
-          j = length;
-        }
-        break;
-      case NdbDictionary::Column::Text:
-        {
-          const NdbBlob::Head* h = (const NdbBlob::Head*)r.aRef();
-          out << h->length << ":";
-          const unsigned char* p = (const unsigned char*)(h + 1);
-          unsigned n = r.get_size_in_bytes() - sizeof(*h);
-          for (unsigned k = 0; k < n && k < h->length; k++)
-            out.print("%c", (int)p[k]);
-          j = length;
-        }
-        break;
-      case NdbDictionary::Column::Longvarchar:
-        {
-          unsigned len = uint2korr(r.aRef());
-          ndbrecattr_print_string(out,"Longvarchar", r.aRef()+2,len);
-          j = length;
-        }
-        break;
-      unknown:
-	//default: /* no print functions for the rest, just print type */
-	out << (int) r.getType();
-	j = length;
-	if (j > 1)
-	  out << " " << j << " times";
-	break;
-      }
+    case NdbDictionary::Column::Datetime:
+    {
+      ulonglong tmp=r.u_64_value();
+      long part1,part2,part3;
+      part1=(long) (tmp/LL(1000000));
+      part2=(long) (tmp - (ulonglong) part1*LL(1000000));
+      char buf[40];
+      char* pos=(char*) buf+19;
+      *pos--=0;
+      *pos--= (char) ('0'+(char) (part2%10)); part2/=10; 
+      *pos--= (char) ('0'+(char) (part2%10)); part3= (int) (part2 / 10);
+      *pos--= ':';
+      *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
+      *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
+      *pos--= ':';
+      *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
+      *pos--= (char) ('0'+(char) part3);
+      *pos--= '/';
+      *pos--= (char) ('0'+(char) (part1%10)); part1/=10;
+      *pos--= (char) ('0'+(char) (part1%10)); part1/=10;
+      *pos--= '-';
+      *pos--= (char) ('0'+(char) (part1%10)); part1/=10;
+      *pos--= (char) ('0'+(char) (part1%10)); part3= (int) (part1/10);
+      *pos--= '-';
+      *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
+      *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
+      *pos--= (char) ('0'+(char) (part3%10)); part3/=10;
+      *pos=(char) ('0'+(char) part3);
+      out << buf;
+    }
+    break;
+    case NdbDictionary::Column::Date:
+    {
+      uint32 tmp=(uint32) uint3korr(r.aRef());
+      int part;
+      char buf[40];
+      char *pos=(char*) buf+10;
+      *pos--=0;
+      part=(int) (tmp & 31);
+      *pos--= (char) ('0'+part%10);
+      *pos--= (char) ('0'+part/10);
+      *pos--= '-';
+      part=(int) (tmp >> 5 & 15);
+      *pos--= (char) ('0'+part%10);
+      *pos--= (char) ('0'+part/10);
+      *pos--= '-';
+      part=(int) (tmp >> 9);
+      *pos--= (char) ('0'+part%10); part/=10;
+      *pos--= (char) ('0'+part%10); part/=10;
+      *pos--= (char) ('0'+part%10); part/=10;
+      *pos=   (char) ('0'+part);
+      out << buf;
+    }
+    break;
+    case NdbDictionary::Column::Time:
+    {
+      long tmp=(long) sint3korr(r.aRef());
+      int hour=(uint) (tmp/10000);
+      int minute=(uint) (tmp/100 % 100);
+      int second=(uint) (tmp % 100);
+      char buf[40];
+      sprintf(buf, "%02d:%02d:%02d", hour, minute, second);
+      out << buf;
+    }
+    break;
+    case NdbDictionary::Column::Year:
+    {
+      uint year = 1900 + r.u_char_value();
+      char buf[40];
+      sprintf(buf, "%04d", year);
+      out << buf;
+    }
+    break;
+    case NdbDictionary::Column::Timestamp:
+    {
+      time_t time = r.u_32_value();
+      out << (uint)time;
+    }
+    break;
+    case NdbDictionary::Column::Blob:
+    {
+      const NdbBlob::Head* h = (const NdbBlob::Head*)r.aRef();
+      out << h->length << ":";
+      const unsigned char* p = (const unsigned char*)(h + 1);
+      unsigned n = r.get_size_in_bytes() - sizeof(*h);
+      for (unsigned k = 0; k < n && k < h->length; k++)
+	out.print("%02X", (int)p[k]);
+      j = length;
+    }
+    break;
+    case NdbDictionary::Column::Text:
+    {
+      const NdbBlob::Head* h = (const NdbBlob::Head*)r.aRef();
+      out << h->length << ":";
+      const unsigned char* p = (const unsigned char*)(h + 1);
+      unsigned n = r.get_size_in_bytes() - sizeof(*h);
+      for (unsigned k = 0; k < n && k < h->length; k++)
+	out.print("%c", (int)p[k]);
+      j = length;
+    }
+    break;
+    case NdbDictionary::Column::Longvarchar:
+    {
+      unsigned len = uint2korr(r.aRef());
+      ndbrecattr_print_string(out,"Longvarchar", r.aRef()+2,len);
+      j = length;
+    }
+    break;
+  unknown:
+    //default: /* no print functions for the rest, just print type */
+    out << (int) r.getType();
+    j = length;
+    if (j > 1)
+      out << " " << j << " times";
+    break;
+    }
   }
 
   if (length > 1)

--- 1.53/storage/ndb/src/ndbapi/ndberror.c	2005-10-10 14:35:20 +02:00
+++ 1.54/storage/ndb/src/ndbapi/ndberror.c	2005-10-10 16:48:22 +02:00
@@ -376,7 +376,7 @@
   { 767,  DMEC, SE, "Cant drop filegroup, no such filegroup" },
   { 768,  DMEC, SE, "Cant drop filegroup, filegroup is used" },
   { 769,  DMEC, SE, "Drop undofile not supported, drop logfile group instead" },
-  { 770,  DMEC, SE, "Cant drop file, file is used" }
+  { 770,  DMEC, SE, "Cant drop file, file is used" },
   { 241,  HA_ERR_TABLE_DEF_CHANGED, SE, "Invalid schema object version" },
   { 283,  HA_ERR_NO_SUCH_TABLE, SE, "Table is being dropped" },
   { 284,  HA_ERR_TABLE_DEF_CHANGED, SE, "Table not defined in transaction coordinator" },
Thread
bk commit into 5.1 tree (jonas:1.2038)jonas10 Oct