~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/generator/all_tables.h

  • Committer: Brian Aker
  • Date: 2010-11-06 05:47:12 UTC
  • mto: This revision was merged to the branch mainline in revision 1909.
  • Revision ID: brian@tangent.org-20101106054712-jwxd8e0s0s3nm7qn
Merge in encapsulations in filesort.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
#ifndef DRIZZLED_GENERATOR_ALL_TABLES_H
22
22
#define DRIZZLED_GENERATOR_ALL_TABLES_H
23
23
 
24
 
#include <drizzled/plugin/storage_engine.h>
 
24
#include "drizzled/plugin/storage_engine.h"
25
25
 
26
26
namespace drizzled {
27
27
namespace generator {
29
29
class AllTables
30
30
{
31
31
  Session &session;
 
32
  message::Table table;
32
33
 
33
 
  identifier::Table::vector table_names;
34
 
  identifier::Table::vector::const_iterator table_iterator;
 
34
  TableIdentifiers table_names;
 
35
  TableIdentifiers::const_iterator table_iterator;
35
36
 
36
37
  drizzled::generator::Schema schema_generator;
37
 
  const drizzled::identifier::Schema *schema_ptr;
 
38
  const drizzled::SchemaIdentifier *schema_ptr;
38
39
 
39
40
  bool table_setup();
40
41
 
44
45
 
45
46
  void reset();
46
47
 
47
 
  operator const drizzled::message::table::shared_ptr()
 
48
  operator const drizzled::message::Table*()
48
49
  {
49
50
    do {
50
51
      while (table_iterator != table_names.end())
51
52
      {
52
 
        message::table::shared_ptr table;
53
 
        table= plugin::StorageEngine::getTableMessage(session, *table_iterator);
 
53
        table.Clear();
 
54
        bool is_table_parsed= plugin::StorageEngine::getTableDefinition(session, *table_iterator, table);
54
55
        table_iterator++;
55
56
 
56
 
        if (table)
57
 
          return table;
 
57
        if (is_table_parsed)
 
58
          return &table;
58
59
      }
59
60
    } while ((schema_ptr= schema_generator) && table_setup());
60
61
 
61
 
    return message::table::shared_ptr();
 
62
    return NULL;
62
63
  }
63
64
 
64
 
  operator const drizzled::identifier::Table*()
 
65
  operator const drizzled::TableIdentifier*()
65
66
  {
66
67
    do {
67
68
      while (table_iterator != table_names.end())
68
69
      {
69
 
        const drizzled::identifier::Table *_ptr= &(*table_iterator);
 
70
        const drizzled::TableIdentifier *_ptr= &(*table_iterator);
70
71
        table_iterator++;
71
72
 
72
73
        return _ptr;