HugoTransactions.hpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #ifndef HUGO_TRANSACTIONS_HPP
  14. #define HUGO_TRANSACTIONS_HPP
  15. #include <NDBT.hpp>
  16. #include <HugoCalculator.hpp>
  17. #include <HugoOperations.hpp>
  18. class HugoTransactions : public HugoOperations {
  19. public:
  20.   HugoTransactions(const NdbDictionary::Table&);
  21.   ~HugoTransactions();
  22.   int createEvent(Ndb*);
  23.   int eventOperation(Ndb*, void* stats,
  24.      int records);
  25.   int loadTable(Ndb*, 
  26. int records,
  27. int batch = 512,
  28. bool allowConstraintViolation = true,
  29. int doSleep = 0,
  30.                 bool oneTrans = false);
  31.   int scanReadRecords(Ndb*, 
  32.       int records,
  33.       int abort = 0,
  34.       int parallelism = 0,
  35.       NdbOperation::LockMode = NdbOperation::LM_Read);
  36.   int scanReadRecords(Ndb*, 
  37.       const NdbDictionary::Index*,
  38.       int records,
  39.       int abort = 0,
  40.       int parallelism = 0,
  41.       NdbOperation::LockMode = NdbOperation::LM_Read,
  42.       bool sorted = false);
  43.   int pkReadRecords(Ndb*, 
  44.     int records,
  45.     int batchsize = 1,
  46.     NdbOperation::LockMode = NdbOperation::LM_Read);
  47.   
  48.   int scanUpdateRecords(Ndb*, 
  49. int records,
  50. int abort = 0,
  51. int parallelism = 0);
  52.   int scanUpdateRecords1(Ndb*, 
  53.  int records,
  54.  int abort = 0,
  55.  int parallelism = 0);
  56.   int scanUpdateRecords2(Ndb*, 
  57.  int records,
  58.  int abort = 0,
  59.  int parallelism = 0);
  60.   int scanUpdateRecords3(Ndb*, 
  61.  int records,
  62.  int abort = 0,
  63.  int parallelism = 0);
  64.   int pkUpdateRecords(Ndb*, 
  65.       int records,
  66.       int batchsize = 1,
  67.       int doSleep = 0);
  68.   int pkInterpretedUpdateRecords(Ndb*, 
  69.  int records,
  70.  int batchsize = 1);
  71.   int pkDelRecords(Ndb*, 
  72.    int records = 0,
  73.    int batch = 1,
  74.    bool allowConstraintViolation = true,
  75.    int doSleep = 0);
  76.   int lockRecords(Ndb*,
  77.   int records,
  78.   int percentToLock = 1,
  79.   int lockTime = 1000);
  80.   int fillTable(Ndb*,
  81. int batch=512);
  82.   /**
  83.    * Reading using UniqHashIndex with key = pk
  84.    */
  85.   int indexReadRecords(Ndb*, 
  86.        const char * idxName,
  87.        int records,
  88.        int batchsize = 1);
  89.   int indexUpdateRecords(Ndb*,
  90.  const char * idxName,
  91.  int records,
  92.  int batchsize = 1);
  93.   
  94. protected:  
  95.   NDBT_ResultRow row;
  96.   int m_defaultScanUpdateMethod;
  97. };
  98. #endif