~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field/null.h

  • Committer: Mark Atwood
  • Date: 2011-06-22 05:48:25 UTC
  • mfrom: (2318.6.17 refactor12)
  • Revision ID: me@mark.atwood.name-20110622054825-mf8nxjs9dxcpvcfe
bzr merge lp:~olafvdspek/drizzle/refactor12

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
#include <drizzled/field/str.h>
24
24
 
25
 
namespace drizzled
26
 
{
 
25
namespace drizzled {
27
26
 
28
27
/*
29
28
 * Everything saved in this will disappear. It will always return NULL
30
29
 */
31
30
 
32
 
class Field_null :public Field_str
 
31
class Field_null : public Field_str
33
32
{
34
 
  static unsigned char null[1];
 
33
  static unsigned char null;
35
34
public:
36
35
 
37
36
  using Field::store;
39
38
  using Field::cmp;
40
39
  using Field::val_int;
41
40
 
42
 
  Field_null(unsigned char *ptr_arg,
43
 
             uint32_t len_arg,
44
 
             const char *field_name_arg) :
45
 
    Field_str(ptr_arg,
46
 
              len_arg,
47
 
              null,
48
 
              1,
49
 
              field_name_arg,
50
 
              &my_charset_bin)
 
41
  Field_null(unsigned char *ptr_arg, uint32_t len_arg, const char *field_name_arg) :
 
42
    Field_str(ptr_arg, len_arg, &null, 1, field_name_arg, &my_charset_bin)
51
43
  {}
52
44
 
53
45
  enum_field_types type() const
54
46
  {
55
47
    return DRIZZLE_TYPE_NULL;
56
48
  }
57
 
  int  store(const char *, uint32_t, const charset_info_st * const)
 
49
  int store(const char *, uint32_t, const charset_info_st * const)
58
50
  {
59
 
    null[0]= 1;
60
51
    return 0;
61
52
  }
62
53
  int store(double)
63
54
  {
64
 
    null[0]= 1;
65
55
    return 0;
66
56
  }
67
57
  int store(int64_t, bool)
68
58
  {
69
 
    null[0]= 1;
70
59
    return 0;
71
60
  }
72
61
  int store_decimal(const type::Decimal *)
73
62
  {
74
 
    null[0]= 1;
75
63
    return 0;
76
64
  }
77
 
  int reset(void)
 
65
  int reset()
78
66
  {
79
67
    return 0;
80
68
  }
81
 
  double val_real(void) const
 
69
  double val_real() const
82
70
  {
83
71
    return 0.0;
84
72
  }
85
 
  int64_t val_int(void) const
 
73
  int64_t val_int() const
86
74
  {
87
75
    return 0;
88
76
  }
105
93
  {
106
94
    return 0;
107
95
  }
108
 
  void sql_type(String &str) const;
109
96
  uint32_t size_of() const
110
97
  {
111
98
    return sizeof(*this);
117
104
};
118
105
 
119
106
} /* namespace drizzled */
120