92 #ifndef __TABLE_DESC_H 93 #define __TABLE_DESC_H 109 #define DECLARE_TABLE_SCHEMA(tablename) \ 110 class tablename : public table_desc_t { \ 111 public: tablename(); } 178 const unsigned* fields,
180 const bool unique =
true,
181 const bool primary =
false);
197 for (
size_t i = 0; i < _indexes.size(); i++) {
198 if (_indexes[i]->matches_name(index_name)) {
211 return _indexes.size();
215 return (_primary_idx);
238 assert (descidx < _field_count);
240 return (&(_desc[descidx]));
244 return _name.c_str();
296 if (strcmp(field_name,
_desc[i].
name()) == 0) {
319 for (
unsigned i = 0; i < idx->
field_count(); i++) {
346 for (
unsigned i = 0; i < idx->
field_count(); i++) {
372 unsigned var_count = 0;
373 unsigned null_count = 0;
376 if (
_desc[i].allow_null()) {
379 if (
_desc[i].is_variable_length()) {
384 size += (var_count *
sizeof(
offset_t)) + (null_count >> 3) + 1;
400 #endif // __TABLE_DESC_H w_rc_t create_physical_table(ss_m *db)
Definition: table_desc.cpp:84
int key_index(const unsigned index) const
Definition: index_desc.cpp:76
unsigned _field_count
Definition: table_desc.h:127
Definition: table_desc.h:122
ss_m * _db
Definition: table_desc.h:133
void set_primary(index_desc_t *idx)
Definition: table_desc.h:222
StoreID get_primary_stid()
Definition: table_desc.cpp:196
ss_m * db()
Definition: table_desc.h:258
int find_field_by_name(const char *field_name) const
Definition: table_desc.h:294
std::list< table_desc_t * > table_list_t
Definition: table_desc.h:275
void set_keysize(const unsigned sz)
Definition: index_desc.h:147
char * index_keydesc(index_desc_t *idx)
Definition: table_desc.h:312
w_rc_t load_stids()
Definition: table_desc.cpp:201
table_desc_t(const char *name, int fieldcnt)
Definition: table_desc.cpp:37
uint32_t StoreID
Definition: basics.h:47
StoreID get_catalog_stid()
Definition: table_desc.h:164
unsigned fieldmaxsize() const
Definition: field.h:175
const char * keydesc()
Definition: field.h:191
: Description of an index.
bool create_primary_idx_desc(const unsigned *fields, const unsigned num)
Definition: table_desc.cpp:172
int get_keysize()
Definition: index_desc.h:143
std::vector< index_desc_t * > & get_indexes()
Definition: table_desc.h:205
string _name
Definition: table_desc.h:126
field_desc_t * _desc
Definition: table_desc.h:135
void print_desc(ostream &os=cout)
Definition: table_desc.cpp:217
bool is_primary() const
Definition: index_desc.h:135
element_lock_mode
Lock mode for one OKVL component (key, partition, or gap).
Definition: w_okvl.h:107
void set_db(ss_m *db)
Definition: table_desc.h:254
const char * name() const
Definition: table_desc.h:243
unsigned field_count() const
Definition: index_desc.h:105
This is the SHORE Storage Manager API.
Definition: sm.h:405
unsigned field_count() const
Definition: table_desc.h:247
index_desc_t * find_index(const char *index_name)
Definition: table_desc.h:193
bool matches_name(const char *name)
Definition: index_desc.cpp:72
index_desc_t * _primary_idx
Definition: table_desc.h:138
Return code for most functions and methods.
Definition: w_rc.h:87
Definition: index_desc.h:60
tatas_lock _keydesc_lock
Definition: index_desc.h:84
unsigned maxsize()
Definition: table_desc.h:364
w_rc_t create_physical_index(ss_m *db, index_desc_t *index)
Definition: table_desc.cpp:106
: Descriptors for Shore files/indexes, and structures that help in keeping track of the created files...
unsigned _maxsize
Definition: table_desc.h:143
srwlock_t _mutex
Definition: table_desc.h:271
: Description and current value of a field (column)
: Base class for records (rows) of tables in Shore
pthread_mutex_t _fschema_mutex
Definition: table_desc.h:125
std::vector< index_desc_t * > _indexes
Definition: table_desc.h:141
index_desc_t * primary_idx()
Definition: table_desc.h:214
field_desc_t * desc(const unsigned descidx)
Definition: table_desc.h:237
int index_maxkeysize(index_desc_t *index) const
Definition: table_desc.h:336
okvl_mode::element_lock_mode lock_mode_t
Definition: table_desc.h:107
char _keydesc[MAX_KEYDESC_LEN]
Definition: index_desc.h:83
intptr_t offset_t
Definition: row.h:94
bool create_index_desc(const char *name, const unsigned *fields, const unsigned num, const bool unique=true, const bool primary=false)
Definition: table_desc.cpp:142
bool is_unique() const
Definition: index_desc.h:131
#define CRITICAL_SECTION(name, lock)
Definition: critical_section.h:75
Shore read-write lock:: many-reader/one-writer spin lock.
Definition: latches.h:350
int index_count()
Definition: table_desc.h:210
virtual ~table_desc_t()
Definition: table_desc.cpp:51