Below is the list of changes that have just been committed into a local
5.1 repository of tomas. When tomas does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-03-29 11:06:13+02:00, tomas@stripped +4 -0
Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-telco-gca
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-telco-6.1
MERGE: 1.2403.9.20
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp@stripped, 2007-03-29 11:06:09+02:00,
tomas@stripped +0 -0
Auto merged
MERGE: 1.55.1.1
storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp@stripped, 2007-03-29 11:06:09+02:00,
tomas@stripped +0 -0
Auto merged
MERGE: 1.14.1.1
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp@stripped, 2007-03-29 11:06:09+02:00,
tomas@stripped +0 -0
Auto merged
MERGE: 1.21.1.1
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp@stripped, 2007-03-29 11:06:09+02:00,
tomas@stripped +0 -0
Auto merged
MERGE: 1.50.1.2
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: tomas
# Host: whalegate.ndb.mysql.com
# Root: /home/tomas/mysql-5.1-telco-6.1/RESYNC
--- 1.57/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp 2007-01-28 21:57:31 +01:00
+++ 1.58/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp 2007-03-29 11:06:09 +02:00
@@ -1206,9 +1206,35 @@
*/
struct Var_part_ref
{
+#if NDB_SIZEOF_CHARP == 4
Uint32 m_ref;
- };
+ STATIC_CONST( SZ32 = 1 );
+
+ void copyout(Local_key* dst) const {
+ dst->m_page_no = m_ref >> MAX_TUPLES_BITS;
+ dst->m_page_idx = m_ref & MAX_TUPLES_PER_PAGE;
+ }
+
+ void assign(const Local_key* src) {
+ m_ref = (src->m_page_no << MAX_TUPLES_BITS) | src->m_page_idx;
+ }
+#else
+ Uint32 m_page_no;
+ Uint32 m_page_idx;
+ STATIC_CONST( SZ32 = 2 );
+
+ void copyout(Local_key* dst) const {
+ dst->m_page_no = m_page_no;
+ dst->m_page_idx = m_page_idx;
+ }
+ void assign(const Local_key* src) {
+ m_page_no = src->m_page_no;
+ m_page_idx = src->m_page_idx;
+ }
+#endif
+ };
+
struct Tuple_header
{
union {
@@ -2848,12 +2874,13 @@
Dbtup::get_ptr(Ptr<Page>* pagePtr, Var_part_ref ref)
{
PagePtr tmp;
- Uint32 page_idx= ref.m_ref & MAX_TUPLES_PER_PAGE;
- tmp.i= ref.m_ref >> MAX_TUPLES_BITS;
+ Local_key key;
+ ref.copyout(&key);
+ tmp.i = key.m_page_no;
c_page_pool.getPtr(tmp);
memcpy(pagePtr, &tmp, sizeof(tmp));
- return ((Var_page*)tmp.p)->get_ptr(page_idx);
+ return ((Var_page*)tmp.p)->get_ptr(key.m_page_idx);
}
inline
--- 1.15/storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp 2007-02-21 14:32:21 +01:00
+++ 1.16/storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp 2007-03-29 11:06:09 +02:00
@@ -153,12 +153,14 @@
ndbassert(tuple_ptr->m_header_bits & Tuple_header::CHAINED_ROW);
- Uint32 ref= * tuple_ptr->get_var_part_ptr(regTabPtr.p);
+ Var_part_ref *ref =
+ (Var_part_ref*)tuple_ptr->get_var_part_ptr(regTabPtr.p);
+
Local_key tmp;
- tmp.assref(ref);
+ ref->copyout(&tmp);
idx= tmp.m_page_idx;
- var_part= get_ptr(&vpage, *(Var_part_ref*)&ref);
+ var_part= get_ptr(&vpage, *ref);
Var_page* pageP = (Var_page*)vpage.p;
Uint32 len= pageP->get_entry_len(idx) & ~Var_page::CHAIN;
Uint32 sz = ((((mm_vars + 1) << 1) + (((Uint16*)var_part)[mm_vars]) + 3)>>
2);
--- 1.22/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp 2007-02-21 14:32:21 +01:00
+++ 1.23/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp 2007-03-29 11:06:09 +02:00
@@ -236,13 +236,14 @@
}
else
{
- Uint32 *ref= tuple_ptr->get_var_part_ptr(regTabPtr);
+ Var_part_ref *ref= (Var_part_ref*)tuple_ptr->get_var_part_ptr(regTabPtr);
memcpy(tuple_ptr, copy, 4*(Tuple_header::HeaderSize+fixsize));
- Local_key tmp; tmp.assref(*ref);
-
+ Local_key tmp;
+ ref->copyout(&tmp);
+
PagePtr vpagePtr;
- Uint32 *dst= get_ptr(&vpagePtr, *(Var_part_ref*)ref);
+ Uint32 *dst= get_ptr(&vpagePtr, *ref);
Var_page* vpagePtrP = (Var_page*)vpagePtr.p;
Uint32 *src= copy->get_var_part_ptr(regTabPtr);
Uint32 sz= ((mm_vars + 1) << 1) + (((Uint16*)src)[mm_vars]);
--- 1.53/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp 2007-03-13 21:45:52 +01:00
+++ 1.54/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp 2007-03-29 11:06:09 +02:00
@@ -2857,11 +2857,11 @@
Ptr<Page> pagePtr = req_struct->m_varpart_page_ptr;
Var_page* pageP= (Var_page*)pagePtr.p;
Uint32 idx, alloc, needed;
- Uint32 *refptr = org->get_var_part_ptr(regTabPtr);
+ Var_part_ref *refptr = (Var_part_ref*)org->get_var_part_ptr(regTabPtr);
ndbassert(bits & Tuple_header::CHAINED_ROW);
Local_key ref;
- ref.assref(*refptr);
+ refptr->copyout(&ref);
idx= ref.m_page_idx;
if (! (copy_bits & Tuple_header::CHAINED_ROW))
{
@@ -2884,7 +2884,7 @@
}
copy_bits |= Tuple_header::MM_GROWN;
if (unlikely(realloc_var_part(regFragPtr, regTabPtr, pagePtr,
- (Var_part_ref*)refptr, alloc, needed)))
+ refptr, alloc, needed)))
return -1;
}
req_struct->m_tuple_ptr->m_header_bits = copy_bits;
@@ -2951,9 +2951,10 @@
PagePtr page_ptr;
if (tablePtr.p->m_attributes[MM].m_no_of_varsize)
{
- tablePtr.p->m_offsets[MM].m_fix_header_size += Tuple_header::HeaderSize+1;
+ const Uint32 XXX = Tuple_header::HeaderSize+Var_part_ref::SZ32;
+ tablePtr.p->m_offsets[MM].m_fix_header_size += XXX;
ret = alloc_page(tablePtr.p, fragPtr.p, &page_ptr, tmp.m_page_no);
- tablePtr.p->m_offsets[MM].m_fix_header_size -= Tuple_header::HeaderSize+1;
+ tablePtr.p->m_offsets[MM].m_fix_header_size -= XXX;
}
else
{
| Thread |
|---|
| • bk commit into 5.1 tree (tomas:1.2477) | tomas | 29 Mar |