~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
 *
1999.6.1 by kalebral at gmail
update Copyright strings to a more common format to help with creating the master debian copyright file
4
 *  Copyright (C) 2008 Sun Microsystems, Inc.
851 by Brian Aker
Class rewrite of Session (aka get all of the junk out)
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);
2030.1.4 by Brian Aker
Change my_decimal to Decimal
67
  type::Decimal *val_decimal(bool *null_value, type::Decimal *result);
851 by Brian Aker
Class rewrite of Session (aka get all of the junk out)
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 */