MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HugoQueries.hpp
1 /*
2  Copyright (C) 2003 MySQL AB
3  All rights reserved. Use is subject to license terms.
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; version 2 of the License.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 
19 #ifndef HUGO_QUERIES_HPP
20 #define HUGO_QUERIES_HPP
21 
22 
23 #include <NDBT.hpp>
24 #include <HugoCalculator.hpp>
25 #include <HugoOperations.hpp>
26 #include "../../src/ndbapi/NdbQueryBuilder.hpp"
27 #include "../../src/ndbapi/NdbQueryOperation.hpp"
28 
30 {
31  struct Op
32  {
33  const NdbQueryOperationDef* m_query_op;
35  HugoCalculator * m_calc;
36  };
37 
38 public:
39  HugoQueries(const NdbQueryDef & query);
40  virtual ~HugoQueries();
41 
42  // Rows for for each of the operations
43  Vector<Uint32> m_rows_found;
44 
45  int runLookupQuery(Ndb*, int records, int batchsize = 1);
46  int runScanQuery(Ndb*,
47  int abort = 4,
48  int parallelism = 0,
49  int scan_flags = 0);
50 
51  static int equalForParameters(char * buf,
52  Op&,
53  NdbQueryParamValue params[],
54  int rowNo);
55  static int getValueForQueryOp(NdbQueryOperation* pOp, NDBT_ResultRow* pRow);
56 
57 
58  void allocRows(int batch);
59 protected:
60 
61  const NdbQueryDef* m_query_def;
62  Vector<Op> m_ops;
63  int m_retryMax;
64 };
65 
66 #endif
67