~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/benchmark/benchmarkudf.cc

  • Committer: Monty Taylor
  • Date: 2011-02-13 17:26:39 UTC
  • mfrom: (2157.2.2 give-in-to-pkg-config)
  • mto: This revision was merged to the branch mainline in revision 2166.
  • Revision ID: mordred@inaugust.com-20110213172639-nhy7i72sfhoq13ms
Merged in pkg-config fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
18
18
 */
19
19
 
20
 
#include <config.h>
 
20
#include "config.h"
21
21
#include <drizzled/error.h>
22
 
#include <drizzled/internal/m_string.h>
23
 
#include <drizzled/plugin/function.h>
24
22
#include <drizzled/session.h>
 
23
#include "drizzled/internal/m_string.h"
25
24
 
26
25
using namespace std;
27
26
using namespace drizzled;
31
30
public:
32
31
  BenchmarkFunction() :Item_int_func() {}
33
32
  int64_t val_int();
34
 
  virtual void print(String *str);
 
33
  virtual void print(String *str, enum_query_type query_type);
35
34
 
36
35
  const char *func_name() const
37
36
  { 
59
58
  char buff[MAX_FIELD_WIDTH];
60
59
  String tmp(buff,sizeof(buff), &my_charset_bin);
61
60
  type::Decimal tmp_decimal;
 
61
  Session *session= current_session;
62
62
  uint64_t loop_count;
63
63
 
64
64
  loop_count= (uint64_t) args[0]->val_int();
69
69
    if (args[0]->null_value == false)
70
70
    {
71
71
      internal::int64_t10_to_str((int64_t)loop_count, buff, -10);
72
 
      push_warning_printf(&getSession(), DRIZZLE_ERROR::WARN_LEVEL_ERROR,
 
72
      push_warning_printf(current_session, DRIZZLE_ERROR::WARN_LEVEL_ERROR,
73
73
                          ER_WRONG_VALUE_FOR_TYPE, ER(ER_WRONG_VALUE_FOR_TYPE),
74
74
                          "count", buff, "benchmark");
75
75
    }
81
81
  null_value= false;
82
82
 
83
83
  uint64_t loop;
84
 
  for (loop= 0 ; loop < loop_count && not getSession().getKilled(); loop++)
 
84
  for (loop= 0 ; loop < loop_count && not session->getKilled(); loop++)
85
85
  {
86
86
    switch (args[1]->result_type()) 
87
87
    {
107
107
  return 0;
108
108
}
109
109
 
110
 
void BenchmarkFunction::print(String *str)
 
110
void BenchmarkFunction::print(String *str, enum_query_type query_type)
111
111
{
112
112
  str->append(STRING_WITH_LEN("benchmark("));
113
 
  args[0]->print(str);
 
113
  args[0]->print(str, query_type);
114
114
  str->append(',');
115
 
  args[1]->print(str);
 
115
  args[1]->print(str, query_type);
116
116
  str->append(')');
117
117
}
118
118