~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/table.h

Merged Drizzle's Trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
60
60
 */
61
61
class Table 
62
62
{
63
 
 
64
63
public:
65
64
  TableShare *s; /**< Pointer to the shared metadata about the table */
66
65
 
 
66
private:
67
67
  Field **field; /**< Pointer to fields collection */
 
68
public:
 
69
 
 
70
  Field **getFields() const
 
71
  {
 
72
    return field;
 
73
  }
 
74
 
 
75
  Field *getField(uint32_t arg) const
 
76
  {
 
77
    return field[arg];
 
78
  }
 
79
 
 
80
  void setFields(Field **arg)
 
81
  {
 
82
    field= arg;
 
83
  }
 
84
 
 
85
  void setFieldAt(Field *arg, uint32_t arg_pos)
 
86
  {
 
87
    field[arg_pos]= arg;
 
88
  }
68
89
 
69
90
  Cursor *cursor; /**< Pointer to the storage engine's Cursor managing this table */
70
91
  Table *next;
293
314
 
294
315
  /* SHARE methods */
295
316
  inline const TableShare *getShare() const { assert(s); return s; } /* Get rid of this long term */
 
317
  inline bool hasShare() const { return s ? true : false ; } /* Get rid of this long term */
296
318
  inline TableShare *getMutableShare() { assert(s); return s; } /* Get rid of this long term */
297
319
  inline void setShare(TableShare *new_share) { s= new_share; } /* Get rid of this long term */
298
 
  inline uint32_t sizeKeys() { return s->keys; }
299
 
  inline uint32_t sizeFields() { return s->fields; }
300
 
  inline uint32_t getRecordLength() { return s->reclength; }
 
320
  inline uint32_t sizeKeys() { return s->sizeKeys(); }
 
321
  inline uint32_t sizeFields() { return s->sizeFields(); }
 
322
  inline uint32_t getRecordLength() const { return s->getRecordLength(); }
301
323
  inline uint32_t sizeBlobFields() { return s->blob_fields; }
302
 
  inline uint32_t *getBlobField() { return s->blob_field; }
 
324
  inline uint32_t *getBlobField() { return &s->blob_field[0]; }
 
325
 
 
326
  Field_blob *getBlobFieldAt(uint32_t arg) const
 
327
  {
 
328
    if (arg < s->blob_fields)
 
329
      return (Field_blob*) field[s->blob_field[arg]]; /*NOTE: Using 'Table.field' NOT SharedTable.field. */
 
330
 
 
331
    return NULL;
 
332
  }
 
333
  inline uint8_t getBlobPtrSize() { return s->blob_ptr_size; }
303
334
  inline uint32_t getNullBytes() { return s->null_bytes; }
304
335
  inline uint32_t getNullFields() { return s->null_fields; }
305
 
  inline unsigned char *getDefaultValues() { return s->default_values; }
 
336
  inline unsigned char *getDefaultValues() { return  s->getDefaultValues(); }
 
337
  inline const char *getSchemaName()  const { return s->getSchemaName(); }
 
338
  inline const char *getTableName()  const { return s->getTableName(); }
306
339
 
307
340
  inline bool isDatabaseLowByteFirst() { return s->db_low_byte_first; } /* Portable row format */
308
 
  inline bool isNameLock() { return s->name_lock; }
 
341
  inline bool isNameLock() const { return s->isNameLock(); }
309
342
  inline bool isReplaceWithNameLock() { return s->replace_with_name_lock; }
310
 
  inline bool isWaitingOnCondition() { return s->waiting_on_cond; } /* Protection against free */
 
343
  inline bool isWaitingOnCondition() const { return s->isWaitingOnCondition(); } /* Protection against free */
311
344
 
312
345
  uint32_t index_flags(uint32_t idx) const
313
346
  {
314
 
    return s->storage_engine->index_flags(s->key_info[idx].algorithm);
 
347
    return s->storage_engine->index_flags(s->getKeyInfo(idx).algorithm);
315
348
  }
316
349
 
317
350
  inline plugin::StorageEngine *getEngine() const   /* table_type for handler */
457
490
  */
458
491
  inline bool needs_reopen_or_name_lock()
459
492
  { 
460
 
    return s->version != refresh_version;
 
493
    return s->getVersion() != refresh_version;
461
494
  }
462
495
 
463
496
  /**
785
818
 
786
819
int rename_file_ext(const char * from,const char * to,const char * ext);
787
820
bool check_column_name(const char *name);
788
 
bool check_db_name(SchemaIdentifier &schema);
 
821
bool check_db_name(Session *session, SchemaIdentifier &schema);
789
822
bool check_table_name(const char *name, uint32_t length);
790
823
 
791
824
} /* namespace drizzled */