~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/table.h

  • Committer: Brian Aker
  • Date: 2010-10-10 02:00:34 UTC
  • mfrom: (1830.1.5 trunk-drizzle)
  • Revision ID: brian@tangent.org-20101010020034-d67x3d09fssxq1v6
Merge rollup of utf8 and table encapsulation.

Show diffs side-by-side

added added

removed removed

Lines of Context:
61
61
 */
62
62
class Table 
63
63
{
64
 
public:
65
 
  TableShare *s; /**< Pointer to the shared metadata about the table */
 
64
  TableShare *_share; /**< Pointer to the shared metadata about the table */
66
65
 
67
 
private:
68
66
  Field **field; /**< Pointer to fields collection */
69
67
public:
70
68
 
372
370
  void resetTable(Session *session, TableShare *share, uint32_t db_stat_arg);
373
371
 
374
372
  /* SHARE methods */
375
 
  inline const TableShare *getShare() const { assert(s); return s; } /* Get rid of this long term */
376
 
  inline bool hasShare() const { return s ? true : false ; } /* Get rid of this long term */
377
 
  inline TableShare *getMutableShare() { assert(s); return s; } /* Get rid of this long term */
378
 
  inline void setShare(TableShare *new_share) { s= new_share; } /* Get rid of this long term */
379
 
  inline uint32_t sizeKeys() { return s->sizeKeys(); }
380
 
  inline uint32_t sizeFields() { return s->sizeFields(); }
381
 
  inline uint32_t getRecordLength() const { return s->getRecordLength(); }
382
 
  inline uint32_t sizeBlobFields() { return s->blob_fields; }
383
 
  inline uint32_t *getBlobField() { return &s->blob_field[0]; }
 
373
  virtual const TableShare *getShare() const { assert(_share); return _share; } /* Get rid of this long term */
 
374
  virtual TableShare *getMutableShare() { assert(_share); return _share; } /* Get rid of this long term */
 
375
  inline bool hasShare() const { return _share ? true : false ; } /* Get rid of this long term */
 
376
  inline void setShare(TableShare *new_share) { _share= new_share; } /* Get rid of this long term */
 
377
  inline uint32_t sizeKeys() { return _share->sizeKeys(); }
 
378
  inline uint32_t sizeFields() { return _share->sizeFields(); }
 
379
  inline uint32_t getRecordLength() const { return _share->getRecordLength(); }
 
380
  inline uint32_t sizeBlobFields() { return _share->blob_fields; }
 
381
  inline uint32_t *getBlobField() { return &_share->blob_field[0]; }
384
382
 
385
383
  Field_blob *getBlobFieldAt(uint32_t arg) const
386
384
  {
387
 
    if (arg < s->blob_fields)
388
 
      return (Field_blob*) field[s->blob_field[arg]]; /*NOTE: Using 'Table.field' NOT SharedTable.field. */
 
385
    if (arg < getShare()->blob_fields)
 
386
      return (Field_blob*) field[getShare()->blob_field[arg]]; /*NOTE: Using 'Table.field' NOT SharedTable.field. */
389
387
 
390
388
    return NULL;
391
389
  }
392
 
  inline uint8_t getBlobPtrSize() { return s->blob_ptr_size; }
393
 
  inline uint32_t getNullBytes() { return s->null_bytes; }
394
 
  inline uint32_t getNullFields() { return s->null_fields; }
395
 
  inline unsigned char *getDefaultValues() { return  s->getDefaultValues(); }
396
 
  inline const char *getSchemaName()  const { return s->getSchemaName(); }
397
 
  inline const char *getTableName()  const { return s->getTableName(); }
 
390
  inline uint8_t getBlobPtrSize() { return getShare()->blob_ptr_size; }
 
391
  inline uint32_t getNullBytes() { return getShare()->null_bytes; }
 
392
  inline uint32_t getNullFields() { return getShare()->null_fields; }
 
393
  inline unsigned char *getDefaultValues() { return  getMutableShare()->getDefaultValues(); }
 
394
  inline const char *getSchemaName()  const { return getShare()->getSchemaName(); }
 
395
  inline const char *getTableName()  const { return getShare()->getTableName(); }
398
396
 
399
 
  inline bool isDatabaseLowByteFirst() { return s->db_low_byte_first; } /* Portable row format */
400
 
  inline bool isNameLock() const { return s->isNameLock(); }
401
 
  inline bool isReplaceWithNameLock() { return s->replace_with_name_lock; }
 
397
  inline bool isDatabaseLowByteFirst() { return getShare()->db_low_byte_first; } /* Portable row format */
 
398
  inline bool isNameLock() const { return getShare()->isNameLock(); }
 
399
  inline bool isReplaceWithNameLock() { return getShare()->replace_with_name_lock; }
402
400
 
403
401
  uint32_t index_flags(uint32_t idx) const
404
402
  {
405
 
    return s->storage_engine->index_flags(s->getKeyInfo(idx).algorithm);
 
403
    return getShare()->storage_engine->index_flags(getShare()->getKeyInfo(idx).algorithm);
406
404
  }
407
405
 
408
406
  inline plugin::StorageEngine *getEngine() const   /* table_type for handler */
409
407
  {
410
 
    return s->storage_engine;
 
408
    return getShare()->storage_engine;
411
409
  }
412
410
 
413
411
  Cursor &getCursor() const /* table_type for handler */
474
472
  const boost::dynamic_bitset<> use_all_columns(boost::dynamic_bitset<>& map);
475
473
  inline void use_all_columns()
476
474
  {
477
 
    column_bitmaps_set(s->all_set, s->all_set);
 
475
    column_bitmaps_set(getMutableShare()->all_set, getMutableShare()->all_set);
478
476
  }
479
477
 
480
478
  inline void default_column_bitmaps()
544
542
  */
545
543
  inline bool needs_reopen_or_name_lock()
546
544
  { 
547
 
    return s->getVersion() != refresh_version;
 
545
    return getShare()->getVersion() != refresh_version;
548
546
  }
549
547
 
550
548
  /**
559
557
  {
560
558
    null_row= 1;
561
559
    status|= STATUS_NULL_ROW;
562
 
    memset(null_flags, 255, s->null_bytes);
 
560
    memset(null_flags, 255, getShare()->null_bytes);
563
561
  }
564
562
 
565
563
  void free_io_cache();
568
566
 
569
567
  void print_error(int error, myf errflag)
570
568
  {
571
 
    s->storage_engine->print_error(error, errflag, *this);
 
569
    getShare()->storage_engine->print_error(error, errflag, *this);
572
570
  }
573
571
 
574
572
  /**