Commit 19cedc5e authored by unknown's avatar unknown
Browse files

ndb - wl-2455 TUP scan for testing in 5.0


ndb/include/ndbapi/NdbIndexScanOperation.hpp:
  fix readTuples signature
ndb/include/ndbapi/NdbScanOperation.hpp:
  fix readTuples signature
ndb/src/ndbapi/NdbScanOperation.cpp:
  fix readTuples signature
ndb/test/include/HugoTransactions.hpp:
  fix readTuples signature
ndb/test/ndbapi/testScanPerf.cpp:
  fix readTuples signature
ndb/test/src/HugoOperations.cpp:
  fix readTuples signature
ndb/test/src/HugoTransactions.cpp:
  fix readTuples signature
ndb/test/ndbapi/testOIBasic.cpp:
  fix readTuples signature
ndb/include/kernel/signaldata/AccScan.hpp:
  TUP scan for testing in 5.0
ndb/include/kernel/signaldata/NextScan.hpp:
  TUP scan for testing in 5.0
ndb/include/kernel/signaldata/ScanFrag.hpp:
  TUP scan for testing in 5.0
ndb/include/kernel/signaldata/ScanTab.hpp:
  TUP scan for testing in 5.0
ndb/src/common/debugger/signaldata/ScanTab.cpp:
  TUP scan for testing in 5.0
ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
  TUP scan for testing in 5.0
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  TUP scan for testing in 5.0
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  TUP scan for testing in 5.0
ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
  TUP scan for testing in 5.0
ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
  TUP scan for testing in 5.0
ndb/src/kernel/blocks/dbtup/Makefile.am:
  TUP scan for testing in 5.0
ndb/test/ndbapi/testScan.cpp:
  TUP scan for testing in 5.0
parent 5810ee1c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ class AccScanReq {
   */
  friend class Dbacc;
  friend class Dbtux;
  friend class Dbtup;
public:
  STATIC_CONST( SignalLength = 8 );
  
@@ -120,6 +121,7 @@ class AccScanConf {
   */
  friend class Dbacc;
  friend class Dbtux;
  friend class Dbtup;

  /**
   * Reciver(s)
@@ -148,6 +150,7 @@ private:
class AccCheckScan {
  friend class Dbacc;
  friend class Dbtux;
  friend class Dbtup;
  friend class Dblqh;
  enum {
    ZCHECK_LCP_STOP = 0,
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ class NextScanReq {
  friend class Dblqh;
  friend class Dbacc;
  friend class Dbtux;
  friend class Dbtup;
public:
  // two sets of defs picked from lqh/acc
  enum ScanFlag {
@@ -50,6 +51,7 @@ private:
class NextScanConf {
  friend class Dbacc;
  friend class Dbtux;
  friend class Dbtup;
  friend class Dblqh;
public:
  // length is less if no keyinfo or no next result
+18 −1
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ public:
  static Uint32 getReadCommittedFlag(const Uint32 & requestInfo);
  static Uint32 getRangeScanFlag(const Uint32 & requestInfo);
  static Uint32 getDescendingFlag(const Uint32 & requestInfo);
  static Uint32 getTupScanFlag(const Uint32 & requestInfo);
  static Uint32 getAttrLen(const Uint32 & requestInfo);
  static Uint32 getScanPrio(const Uint32 & requestInfo);
  
@@ -66,6 +67,7 @@ public:
  static void setReadCommittedFlag(Uint32 & requestInfo, Uint32 readCommitted);
  static void setRangeScanFlag(Uint32 & requestInfo, Uint32 rangeScan);
  static void setDescendingFlag(Uint32 & requestInfo, Uint32 descending);
  static void setTupScanFlag(Uint32 & requestInfo, Uint32 tupScan);
  static void setAttrLen(Uint32 & requestInfo, Uint32 attrLen);
  static void setScanPrio(Uint32& requestInfo, Uint32 prio);
};
@@ -200,11 +202,12 @@ public:
 * r = read committed        - 1  Bit 9
 * x = range scan            - 1  Bit 6
 * z = descending            - 1  Bit 10
 * t = tup scan               -1  Bit 11 (implies x=z=0)
 * p = Scan prio             - 4  Bits (12-15) -> max 15
 *
 *           1111111111222222222233
 * 01234567890123456789012345678901
 *      lxhkrz ppppaaaaaaaaaaaaaaaa 
 *      lxhkrztppppaaaaaaaaaaaaaaaa 
 */
#define SF_LOCK_MODE_SHIFT   (5)
#define SF_LOCK_MODE_MASK    (1)
@@ -214,6 +217,7 @@ public:
#define SF_READ_COMMITTED_SHIFT  (9)
#define SF_RANGE_SCAN_SHIFT (6)
#define SF_DESCENDING_SHIFT (10)
#define SF_TUP_SCAN_SHIFT   (11)

#define SF_ATTR_LEN_SHIFT    (16)
#define SF_ATTR_LEN_MASK     (65535)
@@ -251,6 +255,12 @@ ScanFragReq::getDescendingFlag(const Uint32 & requestInfo){
  return (requestInfo >> SF_DESCENDING_SHIFT) & 1;
}

inline
Uint32
ScanFragReq::getTupScanFlag(const Uint32 & requestInfo){
  return (requestInfo >> SF_TUP_SCAN_SHIFT) & 1;
}

inline
Uint32
ScanFragReq::getReadCommittedFlag(const Uint32 & requestInfo){
@@ -318,6 +328,13 @@ ScanFragReq::setDescendingFlag(UintR & requestInfo, UintR val){
  requestInfo |= (val << SF_DESCENDING_SHIFT);
}

inline
void
ScanFragReq::setTupScanFlag(UintR & requestInfo, UintR val){
  ASSERT_BOOL(val, "ScanFragReq::setTupScanFlag");
  requestInfo |= (val << SF_TUP_SCAN_SHIFT);
}

inline
void
ScanFragReq::setAttrLen(UintR & requestInfo, UintR val){
+20 −1
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ private:
  static Uint8 getReadCommittedFlag(const UintR & requestInfo);
  static Uint8 getRangeScanFlag(const UintR & requestInfo);
  static Uint8 getDescendingFlag(const UintR & requestInfo);
  static Uint8 getTupScanFlag(const UintR & requestInfo);
  static Uint8 getKeyinfoFlag(const UintR & requestInfo);
  static Uint16 getScanBatch(const UintR & requestInfo);
  static Uint8 getDistributionKeyFlag(const UintR & requestInfo);
@@ -95,6 +96,7 @@ private:
  static void setReadCommittedFlag(UintR & requestInfo, Uint32 flag);
  static void setRangeScanFlag(UintR & requestInfo, Uint32 flag);
  static void setDescendingFlag(UintR & requestInfo, Uint32 flag);
  static void setTupScanFlag(UintR & requestInfo, Uint32 flag);
  static void setKeyinfoFlag(UintR & requestInfo, Uint32 flag);
  static void setScanBatch(Uint32& requestInfo, Uint32 sz);
  static void setDistributionKeyFlag(Uint32& requestInfo, Uint32 flag);
@@ -108,6 +110,7 @@ private:
 h = Hold lock mode        - 1  Bit 10
 c = Read Committed        - 1  Bit 11
 k = Keyinfo               - 1  Bit 12
 t = Tup scan              - 1  Bit 13
 z = Descending (TUX)      - 1  Bit 14
 x = Range Scan (TUX)      - 1  Bit 15
 b = Scan batch            - 10 Bit 16-25 (max 1023)
@@ -115,7 +118,7 @@ private:

           1111111111222222222233
 01234567890123456789012345678901
 ppppppppl hck zxbbbbbbbbbb
 ppppppppl hcktzxbbbbbbbbbb
*/

#define PARALLELL_SHIFT     (0)
@@ -139,6 +142,9 @@ private:
#define DESCENDING_SHIFT        (14)
#define DESCENDING_MASK         (1)

#define TUP_SCAN_SHIFT          (13)
#define TUP_SCAN_MASK           (1)

#define SCAN_BATCH_SHIFT (16)
#define SCAN_BATCH_MASK  (1023)

@@ -180,6 +186,12 @@ ScanTabReq::getDescendingFlag(const UintR & requestInfo){
  return (Uint8)((requestInfo >> DESCENDING_SHIFT) & DESCENDING_MASK);
}

inline
Uint8
ScanTabReq::getTupScanFlag(const UintR & requestInfo){
  return (Uint8)((requestInfo >> TUP_SCAN_SHIFT) & TUP_SCAN_MASK);
}

inline
Uint16
ScanTabReq::getScanBatch(const Uint32 & requestInfo){
@@ -234,6 +246,13 @@ ScanTabReq::setDescendingFlag(UintR & requestInfo, Uint32 flag){
  requestInfo |= (flag << DESCENDING_SHIFT);
}

inline
void 
ScanTabReq::setTupScanFlag(UintR & requestInfo, Uint32 flag){
  ASSERT_BOOL(flag, "ScanTabReq::setTupScanFlag");
  requestInfo |= (flag << TUP_SCAN_SHIFT);
}

inline
void
ScanTabReq::setScanBatch(Uint32 & requestInfo, Uint32 flag){
+25 −7
Original line number Diff line number Diff line
@@ -33,6 +33,17 @@ class NdbIndexScanOperation : public NdbScanOperation {
#endif

public:
  /**
   * readTuples using ordered index
   * 
   * @param lock_mode Lock mode
   * @param scan_flags see @ref ScanFlag
   * @param parallel No of fragments to scan in parallel (0=max)
   */ 
  virtual int readTuples(LockMode lock_mode = LM_Read, 
                         Uint32 scan_flags = 0, Uint32 parallel = 0);

#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
  /**
   * readTuples using ordered index
   * 
@@ -45,12 +56,19 @@ public:
   * @returns 0 for success and -1 for failure
   * @see NdbScanOperation::readTuples
   */ 
  int readTuples(LockMode lock_mode = LM_Read,
		 Uint32 batch = 0, 
		 Uint32 parallel = 0,
		 bool order_by = false,
  inline int readTuples(LockMode lock_mode,
                        Uint32 batch, 
                        Uint32 parallel,
                        bool order_by,
                        bool order_desc = false,
		 bool read_range_no = false);
                        bool read_range_no = false) {
    Uint32 scan_flags =
      (SF_OrderBy & -(Int32)order_by) |
      (SF_Descending & -(Int32)order_desc) |
      (SF_ReadRangeNo & -(Int32)read_range_no);
    return readTuples(lock_mode, scan_flags, parallel);
  }
#endif

  /**
   * Type of ordered index key bound.  The values (0-4) will not change
Loading