~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field/varstring.cc

  • Committer: Brian Aker
  • Date: 2010-10-09 17:44:13 UTC
  • mto: This revision was merged to the branch mainline in revision 1853.
  • Revision ID: brian@tangent.org-20101009174413-4cs0q58kw0fjd45y
First pass through adding back user_locks.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 */
20
20
 
21
21
 
22
 
#include <config.h>
 
22
#include "config.h"
23
23
#include <drizzled/field/varstring.h>
24
24
#include <drizzled/table.h>
25
25
#include <drizzled/session.h>
26
 
#include <plugin/myisam/myisam.h>
 
26
#include "plugin/myisam/myisam.h"
27
27
 
28
28
#include <string>
29
29
 
56
56
                                 unsigned char *null_ptr_arg,
57
57
                                 unsigned char null_bit_arg,
58
58
                                 const char *field_name_arg,
 
59
                                 TableShare *share,
59
60
                                 const CHARSET_INFO * const cs) :
60
61
  Field_str(ptr_arg,
61
62
            len_arg,
64
65
            field_name_arg, cs),
65
66
length_bytes(length_bytes_arg)
66
67
{
 
68
  share->varchar_fields++;
67
69
}
68
70
 
69
71
Field_varstring::Field_varstring(uint32_t len_arg,
70
72
                                 bool maybe_null_arg,
71
73
                                 const char *field_name_arg,
 
74
                                 TableShare *share,
72
75
                                 const CHARSET_INFO * const cs) :
73
76
  Field_str((unsigned char*) 0,
74
77
            len_arg,
78
81
            cs),
79
82
  length_bytes(len_arg < 256 ? 1 :2)
80
83
{
 
84
  share->varchar_fields++;
81
85
}
82
86
 
83
87
int Field_varstring::store(const char *from,uint32_t length, const CHARSET_INFO * const cs)
124
128
}
125
129
 
126
130
 
127
 
double Field_varstring::val_real(void) const
 
131
double Field_varstring::val_real(void)
128
132
{
129
133
  int not_used;
130
134
  char *end_not_used;
138
142
}
139
143
 
140
144
 
141
 
int64_t Field_varstring::val_int(void) const
 
145
int64_t Field_varstring::val_int(void)
142
146
{
143
147
  int not_used;
144
148
  char *end_not_used;
152
156
                     &end_not_used, &not_used);
153
157
}
154
158
 
155
 
String *Field_varstring::val_str(String *, String *val_ptr) const
 
159
String *Field_varstring::val_str(String *,
 
160
                                 String *val_ptr)
156
161
{
157
162
  uint32_t length=  length_bytes == 1 ? (uint32_t) *ptr : uint2korr(ptr);
158
163
 
164
169
}
165
170
 
166
171
 
167
 
type::Decimal *Field_varstring::val_decimal(type::Decimal *decimal_value) const
 
172
my_decimal *Field_varstring::val_decimal(my_decimal *decimal_value)
168
173
{
169
174
  uint32_t length;
170
175
 
172
177
 
173
178
  length= length_bytes == 1 ? (uint32_t) *ptr : uint2korr(ptr);
174
179
 
175
 
  decimal_value->store(E_DEC_FATAL_ERROR, (char*) ptr+length_bytes, length, charset());
176
 
 
 
180
  str2my_decimal(E_DEC_FATAL_ERROR, (char*) ptr+length_bytes, length,
 
181
                 charset(), decimal_value);
177
182
  return decimal_value;
178
183
}
179
184