~drizzle-trunk/drizzle/development

584.1.13 by Monty Taylor
Split out a little more code. Removed table_list.h from common_includes.
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
#ifndef DRIZZLED_VIRTUAL_COLUMN_INFO_H
21
#define DRIZZLED_VIRTUAL_COLUMN_INFO_H
22
23
#include <drizzled/definitions.h>
24
#include <drizzled/sql_alloc.h>
25
#include <drizzled/lex_string.h>
26
27
class Item;
28
29
class virtual_column_info: public Sql_alloc
30
{
31
public:
32
  Item *expr_item;
33
  LEX_STRING expr_str;
34
  Item *item_free_list;
35
36
  virtual_column_info()
37
  : expr_item(0), item_free_list(0),
38
    field_type(DRIZZLE_TYPE_VIRTUAL),
39
    is_stored(false), data_inited(false)
40
  {
41
    expr_str.str= NULL;
42
    expr_str.length= 0;
43
  };
44
  ~virtual_column_info() {}
45
  enum_field_types get_real_type();
46
  void set_field_type(enum_field_types fld_type);
47
  bool get_field_stored();
48
  void set_field_stored(bool stored);
49
50
private:
51
  /*
52
    The following data is only updated by the parser and read
53
    when a Create_field object is created/initialized.
54
  */
55
  enum_field_types field_type;   /* Real field type*/
56
  bool is_stored;             /* Indication that the field is
57
                                 phisically stored in the database*/
58
  /*
59
    This flag is used to prevent other applications from
60
    reading and using incorrect data.
61
  */
62
  bool data_inited;
63
};
64
65
#endif /* DRIZZLED_VIRTUAL_COLUMN_INFO_H */