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.1976 05/08/29 10:23:14 jonas@eel.(none) +5 -0
ndb diskdata
fix NR
fix SR scan of extent headers
storage/ndb/src/kernel/vm/ArrayPool.hpp
1.10 05/08/29 10:23:09 jonas@eel.(none) +2 -0
Init variable
storage/ndb/src/kernel/blocks/tsman.cpp
1.45 05/08/29 10:23:09 jonas@eel.(none) +8 -4
Fix SR handling wrt scannin extent headers
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
1.96 05/08/29 10:23:09 jonas@eel.(none) +22 -46
Fix simple stupid NR of diskdata
(make sure to load diskpage before running TUPKEYREQ)
storage/ndb/src/kernel/SimBlockList.cpp
1.16 05/08/29 10:23:09 jonas@eel.(none) +3 -3
merge error
storage/ndb/include/kernel/BlockNumbers.h
1.9 05/08/29 10:23:09 jonas@eel.(none) +0 -1
merge error
# 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: eel.(none)
# Root: /home/jonas/src/mysql-5.1-ndb-dd
--- 1.44/storage/ndb/src/kernel/blocks/tsman.cpp 2005-08-26 13:53:56 +02:00
+++ 1.45/storage/ndb/src/kernel/blocks/tsman.cpp 2005-08-29 10:23:09 +02:00
@@ -899,13 +899,17 @@
ptr.p->m_online.m_first_free_extent = per_page;
ptr.p->m_online.m_lcp_free_extent_head = RNIL;
ptr.p->m_online.m_lcp_free_extent_tail = RNIL;
+ ptr.p->m_online.m_data_pages = data_pages;
Ptr<Tablespace> ts_ptr;
m_tablespace_pool.getPtr(ts_ptr, ptr.p->m_tablespace_ptr_i);
- LocalDLList<Datafile> free(m_file_pool, ts_ptr.p->m_free_files);
- LocalDLList<Datafile> meta(m_file_pool, ts_ptr.p->m_meta_files);
- meta.remove(ptr);
- free.add(ptr);
+ if (!getNodeState().getSystemRestartInProgress())
+ {
+ LocalDLList<Datafile> free(m_file_pool, ts_ptr.p->m_free_files);
+ LocalDLList<Datafile> meta(m_file_pool, ts_ptr.p->m_meta_files);
+ meta.remove(ptr);
+ free.add(ptr);
+ }
m_file_hash.add(ptr);
CreateFileImplConf* conf= (CreateFileImplConf*)signal->getDataPtr();
--- 1.8/storage/ndb/include/kernel/BlockNumbers.h 2005-08-27 08:12:18 +02:00
+++ 1.9/storage/ndb/include/kernel/BlockNumbers.h 2005-08-29 10:23:09 +02:00
@@ -44,7 +44,6 @@
#define TRIX 0xFF
#define DBUTIL 0x100
#define SUMA 0x101
-#define GREP 0x102
#define DBTUX 0x102
#define TSMAN 0x103
#define LGMAN 0x104
--- 1.95/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2005-08-27 08:12:19 +02:00
+++ 1.96/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2005-08-29 10:23:09 +02:00
@@ -8102,6 +8102,7 @@
fragPtrP= c_fragment_pool.getPtr(fragPtrP->tableFragptr);
}
+ tcConnectptr.p->transactionState = TcConnectionrec::SCAN_TUPKEY;
if(tcConnectptr.p->m_disk_table)
{
next_scanconf_load_diskpage(signal, scanptr, tcConnectptr,fragPtrP);
@@ -8133,12 +8134,9 @@
{
next_scanconf_tupkeyreq(signal, scanptr, regTcPtr.p, fragPtrP, res);
}
- else if(res == 0)
- {
- regTcPtr.p->transactionState = TcConnectionrec::SCAN_TUPKEY;
- }
- else
+ else if(unlikely(res != 0))
{
+ jam();
TupKeyRef * ref = (TupKeyRef *)signal->getDataPtr();
ref->userRef= regTcPtr.i;
ref->errorCode= ~0;
@@ -8193,7 +8191,6 @@
Uint32 reqinfo = (scanPtr.p->scanLockHold == ZFALSE);
reqinfo = reqinfo + (regTcPtr->operation << 6);
reqinfo = reqinfo + (regTcPtr->opExec << 10);
- regTcPtr->transactionState = TcConnectionrec::SCAN_TUPKEY;
TupKeyReq * const tupKeyReq = (TupKeyReq *)signal->getDataPtrSend();
@@ -9058,6 +9055,7 @@
scanptr.p->rangeScan = 0;
scanptr.p->tupScan = 0;
seizeTcrec();
+ tcConnectptr.p->clientBlockref = userRef;
/**
* Remove implicit cast/usage of CopyFragReq
@@ -9065,7 +9063,6 @@
//initCopyrec(signal);
scanptr.p->copyPtr = copyPtr;
scanptr.p->scanType = ScanRecord::COPY;
- scanptr.p->scanApiBlockref = userRef;
scanptr.p->scanNodeId = nodeId;
scanptr.p->scanTcrec = tcConnectptr.i;
scanptr.p->scanSchemaVersion = copyFragReq->schemaVersion;
@@ -9074,9 +9071,12 @@
scanptr.p->scanNumber = NR_ScanNo;
scanptr.p->scanKeyinfoFlag = 0; // Don't put into hash
scanptr.p->fragPtrI = fragptr.i;
+ scanptr.p->scanApiOpPtr = tcConnectptr.i;
+ scanptr.p->scanApiBlockref = reference();
fragptr.p->m_scanNumberMask.clear(NR_ScanNo);
scanptr.p->scanBlockref = DBACC_REF;
-
+ scanptr.p->scanLockHold = ZFALSE;
+
initScanTc(0,
0,
(DBLQH << 20) + (cownNodeid << 8),
@@ -9246,45 +9246,21 @@
set_acc_ptr_in_scan_record(scanptr.p, 0, nextScanConf->accOperationPtr);
initCopyTc(signal);
- copySendTupkeyReqLab(signal);
- return;
-}//Dblqh::nextScanConfCopyLab()
-
-void Dblqh::copySendTupkeyReqLab(Signal* signal)
-{
- Uint32 reqinfo = 0;
- Uint32 tupFragPtr;
- reqinfo = reqinfo + (tcConnectptr.p->operation << 6);
- reqinfo = reqinfo + (tcConnectptr.p->opExec << 10);
- tcConnectptr.p->transactionState = TcConnectionrec::COPY_TUPKEY;
+ Fragrecord* fragPtrP= fragptr.p;
scanptr.p->scanState = ScanRecord::WAIT_TUPKEY_COPY;
- fragptr.i = tcConnectptr.p->fragmentptr;
- c_fragment_pool.getPtr(fragptr);
- tupFragPtr = fragptr.p->tupFragptr;
+ tcConnectptr.p->transactionState = TcConnectionrec::COPY_TUPKEY;
+ if(tcConnectptr.p->m_disk_table)
{
- TupKeyReq * const tupKeyReq = (TupKeyReq *)signal->getDataPtrSend();
-
- tupKeyReq->connectPtr = tcConnectptr.p->tupConnectrec;
- tupKeyReq->request = reqinfo;
- tupKeyReq->keyRef1 = scanptr.p->scanLocalref[0];
- tupKeyReq->keyRef2 = scanptr.p->scanLocalref[1];
- tupKeyReq->attrBufLen = 0;
- tupKeyReq->opRef = tcConnectptr.i;
- tupKeyReq->applRef = cownref;
- tupKeyReq->storedProcedure = scanptr.p->scanStoredProcId;
- tupKeyReq->transId1 = tcConnectptr.p->transid[0];
- tupKeyReq->transId2 = tcConnectptr.p->transid[1];
- tupKeyReq->fragPtr = tupFragPtr;
- tupKeyReq->primaryReplica = (tcConnectptr.p->seqNoReplica == 0)?true:false;
- tupKeyReq->coordinatorTC = tcConnectptr.p->tcBlockref;
- tupKeyReq->tcOpIndex = tcConnectptr.p->tcOprec;
- tupKeyReq->savePointId = tcConnectptr.p->savePointId;
- Uint32 blockNo = refToBlock(tcConnectptr.p->tcTupBlockref);
- EXECUTE_DIRECT(blockNo, GSN_TUPKEYREQ, signal,
- TupKeyReq::SignalLength);
+ next_scanconf_load_diskpage(signal, scanptr, tcConnectptr,fragPtrP);
}
-}//Dblqh::copySendTupkeyReqLab()
+ else
+ {
+ next_scanconf_tupkeyreq(signal, scanptr, tcConnectptr.p, fragPtrP, RNIL);
+ }
+ return;
+}//Dblqh::nextScanConfCopyLab()
+
/*---------------------------------------------------------------------------*/
/* USED IN COPYING OPERATION TO RECEIVE ATTRINFO FROM TUP. */
@@ -9660,7 +9636,7 @@
ref->tableId = fragptr.p->tabRef;
ref->fragId = fragptr.p->fragId;
ref->errorCode = ZNODE_FAILURE_ERROR;
- sendSignal(scanptr.p->scanApiBlockref, GSN_COPY_FRAGREF, signal,
+ sendSignal(tcConnectptr.p->clientBlockref, GSN_COPY_FRAGREF, signal,
CopyFragRef::SignalLength, JBB);
} else {
if (scanptr.p->scanErrorCounter > 0) {
@@ -9672,7 +9648,7 @@
ref->tableId = fragptr.p->tabRef;
ref->fragId = fragptr.p->fragId;
ref->errorCode = tcConnectptr.p->errorCode;
- sendSignal(scanptr.p->scanApiBlockref, GSN_COPY_FRAGREF, signal,
+ sendSignal(tcConnectptr.p->clientBlockref, GSN_COPY_FRAGREF, signal,
CopyFragRef::SignalLength, JBB);
} else {
jam();
@@ -9682,7 +9658,7 @@
conf->startingNodeId = scanptr.p->scanNodeId;
conf->tableId = tcConnectptr.p->tableref;
conf->fragId = tcConnectptr.p->fragmentid;
- sendSignal(scanptr.p->scanApiBlockref, GSN_COPY_FRAGCONF, signal,
+ sendSignal(tcConnectptr.p->clientBlockref, GSN_COPY_FRAGCONF, signal,
CopyFragConf::SignalLength, JBB);
}//if
}//if
--- 1.15/storage/ndb/src/kernel/SimBlockList.cpp 2005-08-27 08:12:18 +02:00
+++ 1.16/storage/ndb/src/kernel/SimBlockList.cpp 2005-08-29 10:23:09 +02:00
@@ -106,9 +106,9 @@
theList[14] = NEW_BLOCK(Backup)(conf);
theList[15] = NEW_BLOCK(DbUtil)(conf);
theList[16] = NEW_BLOCK(Suma)(conf);
- theList[17] = 0;
- theList[18] = NEW_BLOCK(Dbtux)(conf);
- theList[19] = NEW_BLOCK(Restore)(conf);
+ theList[17] = NEW_BLOCK(Dbtux)(conf);
+ theList[18] = NEW_BLOCK(Restore)(conf);
+ assert(NO_OF_BLOCKS == 19);
}
void
--- 1.9/storage/ndb/src/kernel/vm/ArrayPool.hpp 2005-08-08 01:23:31 +02:00
+++ 1.10/storage/ndb/src/kernel/vm/ArrayPool.hpp 2005-08-29 10:23:09 +02:00
@@ -187,6 +187,7 @@
size = 0;
noOfFree = 0;
theArray = 0;
+ alloc_ptr = 0;
#ifdef ARRAY_GUARD
theAllocatedBitmask = 0;
#endif
@@ -198,6 +199,7 @@
if(theArray != 0){
NdbMem_Free(alloc_ptr);
theArray = 0;
+ alloc_ptr = 0;
#ifdef ARRAY_GUARD
delete []theAllocatedBitmask;
theAllocatedBitmask = 0;
| Thread |
|---|
| • bk commit into 5.1 tree (jonas:1.1976) | jonas | 29 Aug |