~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field_iterator.h

code clean move Item_func_abs, Item_func_int_exp, Item_func_ln, Item_func_log to functions directory

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
#ifndef DRIZZLED_FIELD_ITERATOR_H
22
22
#define DRIZZLED_FIELD_ITERATOR_H
23
23
 
24
 
#include "drizzled/memory/sql_alloc.h"
25
 
#include <drizzled/sql_list.h>
26
 
#include <drizzled/natural_join_column.h>
27
 
 
28
 
namespace drizzled
29
 
{
30
 
 
31
24
class Table;
32
25
class TableList;
33
26
 
35
28
  Iterator over the fields of a generic table reference.
36
29
*/
37
30
 
38
 
class Field_iterator: public memory::SqlAlloc
 
31
class Field_iterator: public Sql_alloc
39
32
{
40
33
public:
41
34
  Field_iterator() {}                         /* Remove gcc warning */
44
37
  virtual void next()= 0;
45
38
  virtual bool end_of_fields()= 0;              /* Return 1 at end of list */
46
39
  virtual const char *name()= 0;
47
 
  virtual Item *create_item(Session *)= 0;
 
40
  virtual Item *create_item(THD *)= 0;
48
41
  virtual Field *field()= 0;
49
42
};
50
43
 
51
44
 
52
 
/*
 
45
/* 
53
46
  Iterator over the fields of a base table, view with temporary
54
47
  table, or subquery.
55
48
*/
64
57
  void next() { ptr++; }
65
58
  bool end_of_fields() { return *ptr == 0; }
66
59
  const char *name();
67
 
  Item *create_item(Session *session);
 
60
  Item *create_item(THD *thd);
68
61
  Field *field() { return *ptr; }
69
62
};
70
63
 
87
80
  void next();
88
81
  bool end_of_fields() { return !cur_column_ref; }
89
82
  const char *name() { return cur_column_ref->name(); }
90
 
  Item *create_item(Session *session) { return cur_column_ref->create_item(session); }
 
83
  Item *create_item(THD *thd) { return cur_column_ref->create_item(thd); }
91
84
  Field *field() { return cur_column_ref->field(); }
92
85
  Natural_join_column *column_ref() { return cur_column_ref; }
93
86
};
125
118
  const char *name() { return field_it->name(); }
126
119
  const char *table_name();
127
120
  const char *db_name();
128
 
  Item *create_item(Session *session) { return field_it->create_item(session); }
 
121
  Item *create_item(THD *thd) { return field_it->create_item(thd); }
129
122
  Field *field() { return field_it->field(); }
130
123
  Natural_join_column *get_or_create_column_ref(TableList *parent_table_ref);
131
124
  Natural_join_column *get_natural_column_ref();
132
125
};
133
126
 
134
 
} /* namespace drizzled */
135
127
 
136
128
#endif /* DRIZZLED_FIELD_ITERATOR_H */