~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field/varstring.cc

  • Committer: lbieber
  • Date: 2010-10-02 19:48:35 UTC
  • mfrom: (1730.6.19 drizzle-make-lcov)
  • Revision ID: lbieber@orisndriz08-20101002194835-q5zd9qc4lvx1xnfo
Merge Hartmut - clean up lex, now require flex to build, also "make lcov" improvements

Show diffs side-by-side

added added

removed removed

Lines of Context:
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)
165
169
}
166
170
 
167
171
 
168
 
type::Decimal *Field_varstring::val_decimal(type::Decimal *decimal_value)
 
172
my_decimal *Field_varstring::val_decimal(my_decimal *decimal_value)
169
173
{
170
174
  uint32_t length;
171
175
 
173
177
 
174
178
  length= length_bytes == 1 ? (uint32_t) *ptr : uint2korr(ptr);
175
179
 
176
 
  decimal_value->store(E_DEC_FATAL_ERROR, (char*) ptr+length_bytes, length, charset());
177
 
 
 
180
  str2my_decimal(E_DEC_FATAL_ERROR, (char*) ptr+length_bytes, length,
 
181
                 charset(), decimal_value);
178
182
  return decimal_value;
179
183
}
180
184