~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/string.h

  • Committer: Mark Atwood
  • Date: 2011-10-21 14:25:19 UTC
  • mfrom: (2440.2.28 rf)
  • Revision ID: me@mark.atwood.name-20111021142519-bqnyqrkthibv70rc
Tags: 2011.10.28
mergeĀ lp:~olafvdspek/drizzle/refactor6

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
class Item_string : public Item_basic_constant
28
28
{
29
29
public:
 
30
  Item_string(str_ref str, const charset_info_st* cs, Derivation dv= DERIVATION_COERCIBLE)
 
31
  {
 
32
    assert(not (str.size() % cs->mbminlen));
 
33
    str_value.set(str.data(), str.size(), cs);
 
34
    collation.set(cs, dv);
 
35
    /*
 
36
      We have to have a different max_length than 'length' here to
 
37
      ensure that we get the right length if we do use the item
 
38
      to create a new table. In this case max_length must be the maximum
 
39
      number of chars for a string of this type because we in CreateField::
 
40
      divide the max_length with mbmaxlen).
 
41
    */
 
42
    max_length= str_value.numchars() * cs->mbmaxlen;
 
43
    set_name(str.data(), str.size(), cs);
 
44
    decimals=NOT_FIXED_DEC;
 
45
    // it is constant => can be used without fix_fields (and frequently used)
 
46
    fixed= 1;
 
47
  }
 
48
 
30
49
  Item_string(const char *str,uint32_t length,
31
50
              const charset_info_st * const cs, Derivation dv= DERIVATION_COERCIBLE)
32
51
  {
99
118
{
100
119
  const char *func_name;
101
120
public:
102
 
  Item_static_string_func(const char *name_par, const char *str, uint32_t length,
103
 
                          const charset_info_st* cs,
104
 
                          Derivation dv= DERIVATION_COERCIBLE)
105
 
    :Item_string(NULL, str, length, cs, dv), func_name(name_par)
 
121
  Item_static_string_func(const char *name_par, str_ref str, const charset_info_st* cs, Derivation dv= DERIVATION_COERCIBLE) :
 
122
    Item_string(NULL, str.data(), str.size(), cs, dv), func_name(name_par)
106
123
  {}
107
124
  Item *safe_charset_converter(const charset_info_st*);
108
125