~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/serialize/table_reader.cc

Read Fields out of proto instead of FRM.

As non-radioactive fallout:
- no implicit defaults (see http://bugs.mysql.com/bug.php?id=43151)
- no real defaults for BLOB yet... but this paves the way (and it shouldn't be too hard now)

As radioactive fallout:
- parse_table_proto is approaching the length of War and Peace
- handling of corrupted proto is about non-existant. abort() is not ideal

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
  case Table::Field::VARCHAR:
32
32
    cout << " VARCHAR(" << field.string_options().length() << ")";
33
33
    break;
34
 
  case Table::Field::TEXT:
35
 
    cout << " TEXT ";
36
 
    break;
37
34
  case Table::Field::BLOB:
38
 
    cout << " BLOB ";
 
35
    cout << " BLOB "; /* FIXME: or text, depends on collation */
 
36
    if(field.string_options().has_collation_id())
 
37
      cout << "COLLATION=" << field.string_options().collation_id() << " ";
39
38
    break;
40
39
  case Table::Field::ENUM:
41
40
    {
100
99
         && field.constraints().is_nullable()))
101
100
    cout << " NOT NULL ";
102
101
 
103
 
  if (field.type() == Table::Field::TEXT
 
102
  if (field.type() == Table::Field::BLOB
104
103
      || field.type() == Table::Field::VARCHAR)
105
104
  {
106
105
    if (field.string_options().has_collation())