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@stripped, 2008-03-14 18:24:41+01:00, jonas@stripped +3 -0
fix valgrind warning
storage/ndb/src/common/transporter/TransporterRegistry.cpp@stripped, 2008-03-14 18:24:39+01:00, jonas@stripped +1 -0
fix valgrind warning
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp@stripped, 2008-03-14 18:24:39+01:00, jonas@stripped +18 -2
new methods
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp@stripped, 2008-03-14 18:24:39+01:00, jonas@stripped +7 -1
use constant
diff -Nrup a/storage/ndb/src/common/transporter/TransporterRegistry.cpp b/storage/ndb/src/common/transporter/TransporterRegistry.cpp
--- a/storage/ndb/src/common/transporter/TransporterRegistry.cpp 2008-03-14 08:21:23 +01:00
+++ b/storage/ndb/src/common/transporter/TransporterRegistry.cpp 2008-03-14 18:24:39 +01:00
@@ -859,6 +859,7 @@ bool
TransporterRegistry::change_epoll(TCP_Transporter *t, bool add)
{
struct epoll_event event_poll;
+ bzero(&event_poll, sizeof(event_poll));
int sock_fd = t->getSocket();
int node_id = t->getRemoteNodeId();
int op = add ? EPOLL_CTL_ADD : EPOLL_CTL_DEL;
diff -Nrup a/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp b/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp
--- a/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp 2008-02-06 13:18:07 +01:00
+++ b/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp 2008-03-14 18:24:39 +01:00
@@ -1026,7 +1026,8 @@ ArrayPool<TupTriggerData> c_triggerPool;
{
TR_Checksum = 0x1, // Need to be 1
TR_RowGCI = 0x2,
- TR_ForceVarPart = 0x4
+ TR_ForceVarPart = 0x4,
+ TR_DiskPart = 0x8
};
Uint16 m_bits;
Uint16 total_rec_size; // Max total size for entire tuple in words
@@ -1526,12 +1527,16 @@ struct KeyReqStruct {
Uint32 out_buf_index;
Uint32 out_buf_bits;
Uint32 in_buf_index;
- Uint32 in_buf_len;
+ union {
+ Uint32 in_buf_len;
+ Uint32 m_lcp_varpart_len;
+ };
Uint32 attr_descriptor;
bool xfrm_flag;
/* Flag: is tuple in expanded or in shrunken/stored format? */
bool is_expanded;
+ bool m_is_lcp;
struct Var_data {
/*
@@ -1687,6 +1692,7 @@ public:
void start_restore_lcp(Uint32 tableId, Uint32 fragmentId);
void complete_restore_lcp(Signal*, Uint32 ref, Uint32 data,
Uint32 tableId, Uint32 fragmentId);
+ Uint32 get_max_lcp_record_size(Uint32 tableId);
int nr_read_pk(Uint32 fragPtr, const Local_key*, Uint32* dataOut, bool©);
int nr_update_gci(Uint32 fragPtr, const Local_key*, Uint32 gci);
@@ -2417,6 +2423,16 @@ private:
bool disk_nullFlagCheck(KeyReqStruct *req_struct, Uint32 attrDes2);
Uint32 read_pseudo(const Uint32 *, Uint32, KeyReqStruct*, Uint32*);
Uint32 read_packed(const Uint32 *, Uint32, KeyReqStruct*, Uint32*);
+ Uint32 update_packed(KeyReqStruct*, const Uint32* src);
+
+ Uint32 read_lcp(const Uint32 *, Uint32, KeyReqStruct*, Uint32*);
+ void update_lcp(KeyReqStruct *req_struct, const Uint32* src, Uint32 len);
+public:
+ /**
+ * Used by Restore...
+ */
+ Uint32 read_lcp_keys(Uint32, const Uint32 * src, Uint32 len, Uint32 *dst);
+private:
/* Fast bit counting (16 instructions on x86_64, gcc -O3). */
static inline uint32_t count_bits(uint32_t x)
diff -Nrup a/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
--- a/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp 2008-02-20 09:34:19 +01:00
+++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp 2008-03-14 18:24:39 +01:00
@@ -628,6 +628,7 @@ void Dbtup::execTUPKEYREQ(Signal* signal
req_struct.no_changed_attrs= 0;
req_struct.last_row= false;
req_struct.changeMask.clear();
+ req_struct.m_is_lcp = false;
if (unlikely(get_trans_state(regOperPtr) != TRANS_IDLE))
{
@@ -1464,7 +1465,12 @@ int Dbtup::handleInsertReq(Signal* signa
goto null_check_error;
}
- if (regTabPtr->need_shrink())
+ if (req_struct->m_is_lcp)
+ {
+ jam();
+ sizes[2+MM] = req_struct->m_lcp_varpart_len;
+ }
+ else if (regTabPtr->need_shrink())
{
shrink_tuple(req_struct, sizes+2, regTabPtr, true);
}
| Thread |
|---|
| • bk commit into 5.1 tree (jonas:1.2572) | jonas | 14 Mar |