~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/create_field.cc

Fixed a style variance.

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
#include "drizzled/field/decimal.h"
38
38
#include "drizzled/field/real.h"
39
39
#include "drizzled/field/double.h"
40
 
#include "drizzled/field/int32.h"
41
 
#include "drizzled/field/int64.h"
 
40
#include "drizzled/field/long.h"
 
41
#include "drizzled/field/int64_t.h"
42
42
#include "drizzled/field/num.h"
43
43
#include "drizzled/field/timestamp.h"
44
44
#include "drizzled/field/datetime.h"
45
45
#include "drizzled/field/varstring.h"
46
 
#include "drizzled/field/uuid.h"
47
46
#include "drizzled/temporal.h"
48
 
#include "drizzled/item/string.h"
49
47
 
50
48
#include <algorithm>
51
49
 
71
69
 
72
70
  /* Fix if the original table had 4 byte pointer blobs */
73
71
  if (flags & BLOB_FLAG)
74
 
    pack_length= (pack_length - old_field->getTable()->getShare()->blob_ptr_size + portable_sizeof_char_ptr);
 
72
    pack_length= (pack_length - old_field->table->s->blob_ptr_size + portable_sizeof_char_ptr);
75
73
 
76
74
  switch (sql_type) 
77
75
  {
89
87
      break;
90
88
  }
91
89
 
92
 
  if (flags & ENUM_FLAG)
 
90
  if (flags & (ENUM_FLAG | SET_FLAG))
93
91
    interval= ((Field_enum*) old_field)->typelib;
94
92
  else
95
93
    interval= 0;
96
94
  def= 0;
97
95
  char_length= length;
98
96
 
99
 
  if (!(flags & (NO_DEFAULT_VALUE_FLAG)) &&
100
 
      !(flags & AUTO_INCREMENT_FLAG) &&
 
97
  if (!(flags & (NO_DEFAULT_VALUE_FLAG )) &&
101
98
      old_field->ptr && orig_field &&
102
99
      (sql_type != DRIZZLE_TYPE_TIMESTAMP ||                /* set def only if */
103
 
       old_field->getTable()->timestamp_field != old_field ||  /* timestamp field */
 
100
       old_field->table->timestamp_field != old_field ||  /* timestamp field */
104
101
       unireg_check == Field::TIMESTAMP_UN_FIELD))        /* has default val */
105
102
  {
106
103
    ptrdiff_t diff;
107
104
 
108
105
    /* Get the value from default_values */
109
 
    diff= (ptrdiff_t) (orig_field->getTable()->getDefaultValues() - orig_field->getTable()->getInsertRecord());
 
106
    diff= (ptrdiff_t) (orig_field->table->s->default_values - orig_field->table->record[0]);
110
107
    orig_field->move_field_offset(diff);        // Points now at default_values
111
108
    if (! orig_field->is_real_null())
112
109
    {
113
110
      char buff[MAX_FIELD_WIDTH], *pos;
114
111
      String tmp(buff, sizeof(buff), charset), *res;
115
 
      res= orig_field->val_str_internal(&tmp);
 
112
      res= orig_field->val_str(&tmp);
116
113
      pos= (char*) memory::sql_strmake(res->ptr(), res->length());
117
114
      def= new Item_string(pos, res->length(), charset);
118
115
    }
119
 
    orig_field->move_field_offset(-diff);       // Back to getInsertRecord()
 
116
    orig_field->move_field_offset(-diff);       // Back to record[0]
120
117
  }
121
118
}
122
119
 
167
164
  interval= 0;
168
165
  charset= &my_charset_bin;
169
166
  decimals= decimals_arg & FIELDFLAG_MAX_DEC;
 
167
  pack_flag= 0;
170
168
 
171
169
  if (! maybe_null)
172
170
    flags= NOT_NULL_FLAG;
351
349
    case DRIZZLE_TYPE_DATE:
352
350
      length= Date::MAX_STRING_LENGTH;
353
351
      break;
354
 
    case DRIZZLE_TYPE_UUID:
355
 
      length= field::Uuid::max_string_length();
356
 
      break;
357
352
    case DRIZZLE_TYPE_DATETIME:
358
353
      length= DateTime::MAX_STRING_LENGTH;
359
354
      break;
360
355
    case DRIZZLE_TYPE_ENUM:
361
356
      {
362
357
        /* Should be safe. */
363
 
        pack_length= 4;
 
358
        pack_length= get_enum_pack_length(fld_interval_list->elements);
364
359
 
365
360
        List_iterator<String> it(*fld_interval_list);
366
361
        String *tmp;