~drizzle-trunk/drizzle/development

851 by Brian Aker
Class rewrite of Session (aka get all of the junk out)
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 *
4
 *  Copyright (C) 2008 Sun Microsystems
5
 *
6
 *  This program is free software; you can redistribute it and/or modify
7
 *  it under the terms of the GNU General Public License as published by
8
 *  the Free Software Foundation; version 2 of the License.
9
 *
10
 *  This program is distributed in the hope that it will be useful,
11
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 *  GNU General Public License for more details.
14
 *
15
 *  You should have received a copy of the GNU General Public License
16
 *  along with this program; if not, write to the Free Software
17
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
 */
19
20
21
#ifndef DRIZZLED_USER_VAR_ENTRY_H
22
#define DRIZZLED_USER_VAR_ENTRY_H
23
1241.9.12 by Monty Taylor
Trims more out of server_includes.h.
24
#include "drizzled/query_id.h"
851 by Brian Aker
Class rewrite of Session (aka get all of the junk out)
25
1280.1.10 by Monty Taylor
Put everything in drizzled into drizzled namespace.
26
namespace drizzled
27
{
28
851 by Brian Aker
Class rewrite of Session (aka get all of the junk out)
29
// this is needed for user_vars hash
30
class user_var_entry
31
{
32
 public:
1089.1.5 by Brian Aker
Cleanup of user_var
33
  user_var_entry(const char *arg, query_id_t id) :
34
    value(0),
35
    length(0),
36
    size(0),
37
    update_query_id(0),
38
    used_query_id(id),
39
    type(STRING_RESULT),
40
    unsigned_flag(false),
41
    collation(NULL, DERIVATION_IMPLICIT)
42
  { 
43
    name.str= strdup(arg);
44
    name.length= strlen(arg);
1891.2.1 by Monty Taylor
Fixed things to make things compile with clang
45
  }
1089.1.5 by Brian Aker
Cleanup of user_var
46
47
  ~user_var_entry()
48
  {
49
    if (name.str) 
50
      free(name.str);
51
52
    if (value) 
53
      free(value);
54
  }
851 by Brian Aker
Class rewrite of Session (aka get all of the junk out)
55
  LEX_STRING name;
56
  char *value;
57
  ulong length;
1089.1.5 by Brian Aker
Cleanup of user_var
58
  size_t size;
59
  query_id_t update_query_id;
60
  query_id_t used_query_id;
851 by Brian Aker
Class rewrite of Session (aka get all of the junk out)
61
  Item_result type;
62
  bool unsigned_flag;
63
64
  double val_real(bool *null_value);
65
  int64_t val_int(bool *null_value) const;
66
  String *val_str(bool *null_value, String *str, uint32_t decimals);
67
  my_decimal *val_decimal(bool *null_value, my_decimal *result);
68
  DTCollation collation;
1089.1.5 by Brian Aker
Cleanup of user_var
69
70
  bool update_hash(bool set_null, void *ptr, uint32_t length,
71
                   Item_result type, const CHARSET_INFO * const cs, Derivation dv,
72
                   bool unsigned_arg);
851 by Brian Aker
Class rewrite of Session (aka get all of the junk out)
73
};
74
1280.1.10 by Monty Taylor
Put everything in drizzled into drizzled namespace.
75
} /* namespace drizzled */
76
851 by Brian Aker
Class rewrite of Session (aka get all of the junk out)
77
#endif /* DRIZZLED_USER_VAR_ENTRY_H */