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.1941 05/07/13 15:05:46 joreland@stripped +5 -0
ndb diskdata
support scan wo/ reading disk at all
(in ScanFragReq atleast, used by LCP)
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
1.68 05/07/13 15:05:41 joreland@stripped +2 -1
Impl. noDiskFlag for ScanFragReq
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
1.86 05/07/13 15:05:41 joreland@stripped +7 -6
Impl. noDiskFlag for ScanFragReq
storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
1.49 05/07/13 15:05:41 joreland@stripped +1 -1
Impl. noDiskFlag for ScanFragReq
storage/ndb/src/kernel/blocks/backup/Backup.cpp
1.44 05/07/13 15:05:41 joreland@stripped +1 -0
Impl. noDiskFlag for ScanFragReq
storage/ndb/include/kernel/signaldata/ScanFrag.hpp
1.13 05/07/13 15:05:41 joreland@stripped +18 -1
Impl. noDiskFlag for ScanFragReq
# 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: joreland
# Host: eel.(none)
# Root: /home/jonas/src/mysql-5.1-ndb-dd
--- 1.12/storage/ndb/include/kernel/signaldata/ScanFrag.hpp 2005-05-24 17:30:57 +02:00
+++ 1.13/storage/ndb/include/kernel/signaldata/ScanFrag.hpp 2005-07-13 15:05:41 +02:00
@@ -60,6 +60,7 @@
static Uint32 getTupScanFlag(const Uint32 & requestInfo);
static Uint32 getAttrLen(const Uint32 & requestInfo);
static Uint32 getScanPrio(const Uint32 & requestInfo);
+ static Uint32 getNoDiskFlag(const Uint32 & requestInfo);
static void setLockMode(Uint32 & requestInfo, Uint32 lockMode);
static void setHoldLockFlag(Uint32 & requestInfo, Uint32 holdLock);
@@ -70,6 +71,7 @@
static void setTupScanFlag(Uint32 & requestInfo, Uint32 tupScan);
static void setAttrLen(Uint32 & requestInfo, Uint32 attrLen);
static void setScanPrio(Uint32& requestInfo, Uint32 prio);
+ static void setNoDiskFlag(Uint32& requestInfo, Uint32 val);
};
class KeyInfo20 {
@@ -196,6 +198,7 @@
* Request Info
*
* a = Length of attrinfo - 16 Bits (16-31)
+ * d = No disk - 1 Bit 4
* l = Lock Mode - 1 Bit 5
* h = Hold lock - 1 Bit 7
* k = Keyinfo - 1 Bit 8
@@ -207,11 +210,12 @@
*
* 1111111111222222222233
* 01234567890123456789012345678901
- * lxhkrztppppaaaaaaaaaaaaaaaa
+ * dlxhkrztppppaaaaaaaaaaaaaaaa
*/
#define SF_LOCK_MODE_SHIFT (5)
#define SF_LOCK_MODE_MASK (1)
+#define SF_NO_DISK_SHIFT (4)
#define SF_HOLD_LOCK_SHIFT (7)
#define SF_KEYINFO_SHIFT (8)
#define SF_READ_COMMITTED_SHIFT (9)
@@ -340,6 +344,19 @@
ScanFragReq::setAttrLen(UintR & requestInfo, UintR val){
ASSERT_MAX(val, SF_ATTR_LEN_MASK, "ScanFragReq::setAttrLen");
requestInfo |= (val << SF_ATTR_LEN_SHIFT);
+}
+
+inline
+Uint32
+ScanFragReq::getNoDiskFlag(const Uint32 & requestInfo){
+ return (requestInfo >> SF_NO_DISK_SHIFT) & 1;
+}
+
+inline
+void
+ScanFragReq::setNoDiskFlag(UintR & requestInfo, UintR val){
+ ASSERT_BOOL(val, "ScanFragReq::setNoDiskFlag");
+ requestInfo |= (val << SF_NO_DISK_SHIFT);
}
inline
--- 1.43/storage/ndb/src/kernel/blocks/backup/Backup.cpp 2005-07-07 16:56:39 +02:00
+++ 1.44/storage/ndb/src/kernel/blocks/backup/Backup.cpp 2005-07-13 15:05:41 +02:00
@@ -3335,6 +3335,7 @@
{
ScanFragReq::setScanPrio(req->requestInfo, 1);
ScanFragReq::setTupScanFlag(req->requestInfo, 1);
+ ScanFragReq::setNoDiskFlag(req->requestInfo, 1);
}
req->transId1 = 0;
req->transId2 = (BACKUP << 20) + (getOwnNodeId() << 8);
--- 1.48/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp 2005-07-07 16:56:39 +02:00
+++ 1.49/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp 2005-07-13 15:05:41 +02:00
@@ -2214,7 +2214,7 @@
void sendLqhAttrinfoSignal(Signal* signal);
void sendKeyinfoAcc(Signal* signal, Uint32 pos);
Uint32 initScanrec(const class ScanFragReq *);
- void initScanTc(Signal* signal,
+ void initScanTc(const class ScanFragReq *,
Uint32 transid1,
Uint32 transid2,
Uint32 fragId,
--- 1.85/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2005-07-13 10:55:43 +02:00
+++ 1.86/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2005-07-13 15:05:41 +02:00
@@ -7576,7 +7576,7 @@
}//if
ndbrequire(c_scanRecordPool.seize(scanptr));
- initScanTc(signal,
+ initScanTc(scanFragReq,
transid1,
transid2,
fragId,
@@ -8228,7 +8228,7 @@
}
else
{
- next_scanconf_tupkeyreq(signal, scanptr, tcConnectptr.p, fragPtrP, 0);
+ next_scanconf_tupkeyreq(signal, scanptr, tcConnectptr.p, fragPtrP, RNIL);
}
}
@@ -8816,7 +8816,7 @@
*
* SUBROUTINE SHORT NAME = IST
* ========================================================================= */
-void Dblqh::initScanTc(Signal* signal,
+void Dblqh::initScanTc(const ScanFragReq* req,
Uint32 transid1,
Uint32 transid2,
Uint32 fragId,
@@ -8846,8 +8846,9 @@
TablerecPtr tTablePtr;
tTablePtr.i = tabptr.p->primaryTableId;
ptrCheckGuard(tTablePtr, ctabrecFileSize, tablerec);
- tcConnectptr.p->m_disk_table = tTablePtr.p->m_disk_table;
-
+ tcConnectptr.p->m_disk_table = tTablePtr.p->m_disk_table &&
+ (!req || !ScanFragReq::getNoDiskFlag(req->requestInfo));
+
tabptr.p->usageCount++;
}//Dblqh::initScanTc()
@@ -9223,7 +9224,7 @@
fragptr.p->m_scanNumberMask.clear(NR_ScanNo);
scanptr.p->scanBlockref = DBACC_REF;
- initScanTc(signal,
+ initScanTc(0,
0,
(DBLQH << 20) + (cownNodeid << 8),
fragId,
--- 1.67/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp 2005-07-13 10:55:43 +02:00
+++ 1.68/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp 2005-07-13 15:05:41 +02:00
@@ -865,7 +865,8 @@
if (Roptype == ZREAD) {
jam();
- if (setup_read(&req_struct, regOperPtr, regFragPtr, regTabPtr, true))
+ if (setup_read(&req_struct, regOperPtr, regFragPtr, regTabPtr,
+ disk_page != RNIL))
{
if(handleReadReq(signal, regOperPtr, regTabPtr, &req_struct) != -1)
{
| Thread |
|---|
| • bk commit into 5.1 tree (joreland:1.1941) | jonas.oreland | 13 Jul |