~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/cursor.h

  • Committer: Brian Aker
  • Date: 2010-10-22 23:33:58 UTC
  • mfrom: (1869.1.7 refactor)
  • Revision ID: brian@tangent.org-20101022233358-kmtrpm1yvmmyaame
Merge in overhaul to how cursor and table are handled. Cursor now only knows
about table, and will always have a table and engine reference.

This cleans up a number of ownership issues, the biggest being that it now
creates the space needed for the next big refactor in locks.

Show diffs side-by-side

added added

removed removed

Lines of Context:
145
145
*/
146
146
class Cursor
147
147
{
 
148
  Table &table;               /* The current open table */
 
149
  plugin::StorageEngine &engine;      /* storage engine of this Cursor */
 
150
 
148
151
protected:
149
 
  TableShare *table_share;   /* The table definition */
150
 
  Table *table;               /* The current open table */
151
 
 
152
152
  ha_rows estimation_rows_to_insert;
153
 
  plugin::StorageEngine *engine;      /* storage engine of this Cursor */
 
153
 
154
154
public:
155
155
  inline plugin::StorageEngine *getEngine() const       /* table_type for handler */
156
156
  {
157
 
    return engine;
 
157
    return &engine;
158
158
  }
159
159
  unsigned char *ref;                           /* Pointer to current row */
160
160
  unsigned char *dup_ref;                       /* Pointer to duplicate row */
161
161
 
162
 
  TableShare *getShare() const
 
162
  TableShare *getShare();
 
163
 
 
164
  Table *getTable() const
163
165
  {
164
 
    return table_share;
 
166
    return &table;
165
167
  }
166
168
 
167
169
  ha_statistics stats;
222
224
  */
223
225
  Discrete_interval auto_inc_interval_for_cur_row;
224
226
 
225
 
  Cursor(plugin::StorageEngine &engine_arg, TableShare &share_arg);
 
227
  Cursor(plugin::StorageEngine &engine_arg, Table &share_arg);
226
228
  virtual ~Cursor(void);
227
229
  virtual Cursor *clone(memory::Root *mem_root);
228
230
 
229
231
  /* ha_ methods: pubilc wrappers for private virtual API */
230
232
 
231
 
  int ha_open(const TableIdentifier &identifier, Table *table, int mode, int test_if_locked);
 
233
  int ha_open(const TableIdentifier &identifier, int mode, int test_if_locked);
232
234
  int startIndexScan(uint32_t idx, bool sorted);
233
235
  int endIndexScan();
234
236
  int startTableScan(bool scan);