List:Commits« Previous MessageNext Message »
From:jonas Date:March 14 2008 6:24pm
Subject:bk commit into 5.1 tree (jonas:1.2572)
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@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&copy);
   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)jonas14 Mar