~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/plugin/storage_engine.h

  • Committer: Brian Aker
  • Date: 2009-12-01 02:39:03 UTC
  • mfrom: (1234.1.4 push)
  • Revision ID: brian@gaz-20091201023903-1id5z7xnup695jaq
Merge of Brian + Jay test fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
55
55
  HTON_BIT_FILE_BASED, // use for check_lowercase_names
56
56
  HTON_BIT_HAS_DATA_DICTIONARY,
57
57
  HTON_BIT_DOES_TRANSACTIONS,
 
58
  HTON_BIT_STATS_RECORDS_IS_EXACT,
 
59
  HTON_BIT_NULL_IN_KEY,
 
60
  HTON_BIT_CAN_INDEX_BLOBS,
 
61
  HTON_BIT_PRIMARY_KEY_REQUIRED_FOR_POSITION,
 
62
  HTON_BIT_PRIMARY_KEY_IN_READ_INDEX,
 
63
  HTON_BIT_PARTIAL_COLUMN_READ,
 
64
  HTON_BIT_TABLE_SCAN_ON_INDEX,
 
65
  HTON_BIT_MRR_CANT_SORT,
 
66
  HTON_BIT_FAST_KEY_READ,
 
67
  HTON_BIT_NO_BLOBS,
 
68
  HTON_BIT_HAS_RECORDS,
 
69
  HTON_BIT_NO_AUTO_INCREMENT,
 
70
  HTON_BIT_DUPLICATE_POS,
 
71
  HTON_BIT_AUTO_PART_KEY,
 
72
  HTON_BIT_NEED_READ_RANGE_BUFFER,
 
73
  HTON_BIT_REQUIRE_PRIMARY_KEY,
 
74
  HTON_BIT_REQUIRES_KEY_COLUMNS_FOR_DELETE,
 
75
  HTON_BIT_PRIMARY_KEY_REQUIRED_FOR_DELETE,
 
76
  HTON_BIT_NO_PREFIX_CHAR_KEYS,
 
77
  HTON_BIT_HAS_CHECKSUM,
 
78
  HTON_BIT_ANY_INDEX_MAY_BE_UNIQUE,
58
79
  HTON_BIT_SIZE
59
80
};
60
81
 
67
88
static const std::bitset<HTON_BIT_SIZE> HTON_FILE_BASED(1 << HTON_BIT_FILE_BASED);
68
89
static const std::bitset<HTON_BIT_SIZE> HTON_HAS_DATA_DICTIONARY(1 << HTON_BIT_HAS_DATA_DICTIONARY);
69
90
static const std::bitset<HTON_BIT_SIZE> HTON_HAS_DOES_TRANSACTIONS(1 << HTON_BIT_DOES_TRANSACTIONS);
 
91
static const std::bitset<HTON_BIT_SIZE> HTON_STATS_RECORDS_IS_EXACT(1 << HTON_BIT_STATS_RECORDS_IS_EXACT);
 
92
static const std::bitset<HTON_BIT_SIZE> HTON_NULL_IN_KEY(1 << HTON_BIT_NULL_IN_KEY);
 
93
static const std::bitset<HTON_BIT_SIZE> HTON_CAN_INDEX_BLOBS(1 << HTON_BIT_CAN_INDEX_BLOBS);
 
94
static const std::bitset<HTON_BIT_SIZE> HTON_PRIMARY_KEY_REQUIRED_FOR_POSITION(1 << HTON_BIT_PRIMARY_KEY_REQUIRED_FOR_POSITION);
 
95
static const std::bitset<HTON_BIT_SIZE> HTON_PRIMARY_KEY_IN_READ_INDEX(1 << HTON_BIT_PRIMARY_KEY_IN_READ_INDEX);
 
96
static const std::bitset<HTON_BIT_SIZE> HTON_PARTIAL_COLUMN_READ(1 << HTON_BIT_PARTIAL_COLUMN_READ);
 
97
static const std::bitset<HTON_BIT_SIZE> HTON_TABLE_SCAN_ON_INDEX(1 << HTON_BIT_TABLE_SCAN_ON_INDEX);
 
98
static const std::bitset<HTON_BIT_SIZE> HTON_MRR_CANT_SORT(1 << HTON_BIT_MRR_CANT_SORT);
 
99
static const std::bitset<HTON_BIT_SIZE> HTON_FAST_KEY_READ(1 << HTON_BIT_FAST_KEY_READ);
 
100
static const std::bitset<HTON_BIT_SIZE> HTON_NO_BLOBS(1 << HTON_BIT_NO_BLOBS);
 
101
static const std::bitset<HTON_BIT_SIZE> HTON_HAS_RECORDS(1 << HTON_BIT_HAS_RECORDS);
 
102
static const std::bitset<HTON_BIT_SIZE> HTON_NO_AUTO_INCREMENT(1 << HTON_BIT_NO_AUTO_INCREMENT);
 
103
static const std::bitset<HTON_BIT_SIZE> HTON_DUPLICATE_POS(1 << HTON_BIT_DUPLICATE_POS);
 
104
static const std::bitset<HTON_BIT_SIZE> HTON_AUTO_PART_KEY(1 << HTON_BIT_AUTO_PART_KEY);
 
105
static const std::bitset<HTON_BIT_SIZE> HTON_NEED_READ_RANGE_BUFFER(1 << HTON_BIT_NEED_READ_RANGE_BUFFER);
 
106
static const std::bitset<HTON_BIT_SIZE> HTON_REQUIRE_PRIMARY_KEY(1 << HTON_BIT_REQUIRE_PRIMARY_KEY);
 
107
static const std::bitset<HTON_BIT_SIZE> HTON_REQUIRES_KEY_COLUMNS_FOR_DELETE(1 << HTON_BIT_REQUIRES_KEY_COLUMNS_FOR_DELETE);
 
108
static const std::bitset<HTON_BIT_SIZE> HTON_PRIMARY_KEY_REQUIRED_FOR_DELETE(1 << HTON_BIT_PRIMARY_KEY_REQUIRED_FOR_DELETE);
 
109
static const std::bitset<HTON_BIT_SIZE> HTON_NO_PREFIX_CHAR_KEYS(1 << HTON_BIT_NO_PREFIX_CHAR_KEYS);
 
110
static const std::bitset<HTON_BIT_SIZE> HTON_HAS_CHECKSUM(1 << HTON_BIT_HAS_CHECKSUM);
 
111
static const std::bitset<HTON_BIT_SIZE> HTON_ANY_INDEX_MAY_BE_UNIQUE(1 << HTON_BIT_ANY_INDEX_MAY_BE_UNIQUE);
 
112
 
70
113
 
71
114
class Table;
72
115
 
77
120
 
78
121
const std::string UNKNOWN_STRING("UNKNOWN");
79
122
const std::string DEFAULT_DEFINITION_FILE_EXT(".dfe");
80
 
    
 
123
 
81
124
 
82
125
/*
83
126
  StorageEngine is a singleton structure - one instance per storage engine -
192
235
  */
193
236
  uint32_t slot;
194
237
 
195
 
  virtual Table_flags table_flags(void) const= 0;
196
 
 
197
238
  inline uint32_t getSlot (void) { return slot; }
198
239
  inline void setSlot (uint32_t value) { slot= value; }
199
240
 
376
417
  static void removeLostTemporaryTables(Session &session, const char *directory);
377
418
 
378
419
  Cursor *getCursor(TableShare &share, MEM_ROOT *alloc);
 
420
 
 
421
  uint32_t max_record_length() const
 
422
  { return std::min((unsigned int)HA_MAX_REC_LENGTH, max_supported_record_length()); }
 
423
  uint32_t max_keys() const
 
424
  { return std::min((unsigned int)MAX_KEY, max_supported_keys()); }
 
425
  uint32_t max_key_parts() const
 
426
  { return std::min((unsigned int)MAX_REF_PARTS, max_supported_key_parts()); }
 
427
  uint32_t max_key_length() const
 
428
  { return std::min((unsigned int)MAX_KEY_LENGTH, max_supported_key_length()); }
 
429
  uint32_t max_key_part_length(void) const
 
430
  { return std::min((unsigned int)MAX_KEY_LENGTH, max_supported_key_part_length()); }
 
431
 
 
432
  virtual uint32_t max_supported_record_length(void) const
 
433
  { return HA_MAX_REC_LENGTH; }
 
434
  virtual uint32_t max_supported_keys(void) const { return 0; }
 
435
  virtual uint32_t max_supported_key_parts(void) const { return MAX_REF_PARTS; }
 
436
  virtual uint32_t max_supported_key_length(void) const { return MAX_KEY_LENGTH; }
 
437
  virtual uint32_t max_supported_key_part_length(void) const { return 255; }
 
438
 
379
439
};
380
440
 
381
441
} /* namespace plugin */