~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/generator/all_fields.h

Merge Joe, plus I updated the tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
namespace drizzled {
25
25
namespace generator {
26
26
 
27
 
typedef std::pair<const drizzled::message::Table *, int32_t> FieldPair;
28
 
 
29
27
class AllFields
30
28
{
31
29
  Session &session;
32
30
  message::Table table_message;
33
 
  drizzled::message::table::shared_ptr table_ptr;
 
31
  const drizzled::message::Table *table_ptr;
34
32
  int32_t field_iterator;
35
33
 
36
34
  drizzled::generator::AllTables all_tables_generator;
59
57
 
60
58
    return NULL;
61
59
  }
62
 
 
63
 
  operator const FieldPair()
64
 
  {
65
 
    if (table_ptr)
66
 
    {
67
 
      do {
68
 
        if (field_iterator != table_message.field_size())
69
 
        {
70
 
          return std::make_pair(&table_message, field_iterator++);
71
 
        }
72
 
      } while ((table_ptr= all_tables_generator) && table_setup());
73
 
    }
74
 
 
75
 
    FieldPair null_pair;
76
 
    return null_pair;
77
 
  }
78
60
};
79
61
 
80
62
} /* namespace generator */
81
63
} /* namespace drizzled */
82
64
 
83
 
bool operator!(const drizzled::generator::FieldPair &arg);
84
 
 
85
65
#endif /* DRIZZLED_GENERATOR_ALL_FIELDS_H */