~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field_iterator.h

Merged in latest plugin-slot-reorg.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
18
 */
19
19
 
20
 
#ifdef USE_PRAGMA_INTERFACE
21
 
#pragma interface                       /* gcc class implementation */
22
 
#endif
23
 
 
24
20
 
25
21
#ifndef DRIZZLED_FIELD_ITERATOR_H
26
22
#define DRIZZLED_FIELD_ITERATOR_H
27
23
 
 
24
#include <drizzled/sql_alloc.h>
 
25
#include <drizzled/sql_list.h>
 
26
#include <drizzled/natural_join_column.h>
 
27
 
28
28
class Table;
29
29
class TableList;
30
30
 
41
41
  virtual void next()= 0;
42
42
  virtual bool end_of_fields()= 0;              /* Return 1 at end of list */
43
43
  virtual const char *name()= 0;
44
 
  virtual Item *create_item(THD *)= 0;
 
44
  virtual Item *create_item(Session *)= 0;
45
45
  virtual Field *field()= 0;
46
46
};
47
47
 
48
48
 
49
 
/* 
 
49
/*
50
50
  Iterator over the fields of a base table, view with temporary
51
51
  table, or subquery.
52
52
*/
61
61
  void next() { ptr++; }
62
62
  bool end_of_fields() { return *ptr == 0; }
63
63
  const char *name();
64
 
  Item *create_item(THD *thd);
 
64
  Item *create_item(Session *session);
65
65
  Field *field() { return *ptr; }
66
66
};
67
67
 
84
84
  void next();
85
85
  bool end_of_fields() { return !cur_column_ref; }
86
86
  const char *name() { return cur_column_ref->name(); }
87
 
  Item *create_item(THD *thd) { return cur_column_ref->create_item(thd); }
 
87
  Item *create_item(Session *session) { return cur_column_ref->create_item(session); }
88
88
  Field *field() { return cur_column_ref->field(); }
89
89
  Natural_join_column *column_ref() { return cur_column_ref; }
90
90
};
122
122
  const char *name() { return field_it->name(); }
123
123
  const char *table_name();
124
124
  const char *db_name();
125
 
  Item *create_item(THD *thd) { return field_it->create_item(thd); }
 
125
  Item *create_item(Session *session) { return field_it->create_item(session); }
126
126
  Field *field() { return field_it->field(); }
127
127
  Natural_join_column *get_or_create_column_ref(TableList *parent_table_ref);
128
128
  Natural_join_column *get_natural_column_ref();