17#include "common/lang/serializable.h"
18#include "common/sys/rc.h"
19#include "common/types.h"
20#include "common/lang/span.h"
21#include "storage/field/field_meta.h"
22#include "storage/index/index_meta.h"
38 RC init(int32_t table_id,
const char *name,
const vector<FieldMeta> *trx_fields,
39 span<const AttrInfoSqlNode> attributes,
const vector<string> &primary_keys, StorageFormat storage_format,
40 StorageEngine storage_engine);
45 int32_t table_id()
const {
return table_id_; }
46 const char *name()
const;
49 const FieldMeta *field(
const char *name)
const;
50 const FieldMeta *find_field_by_offset(
int offset)
const;
51 auto field_metas()
const ->
const vector<FieldMeta> *{
return &fields_; }
52 auto trx_fields()
const -> span<const FieldMeta>;
53 const StorageFormat storage_format()
const {
return storage_format_; }
54 const StorageEngine storage_engine()
const {
return storage_engine_; }
56 int field_num()
const;
57 int sys_field_num()
const;
59 const IndexMeta *index(
const char *name)
const;
60 const IndexMeta *find_index_by_field(
const char *field)
const;
62 int index_num()
const;
64 const vector<string> &primary_keys()
const {
return primary_keys_; }
66 int record_size()
const;
69 int serialize(ostream &os)
const override;
70 int deserialize(istream &is)
override;
72 void to_string(
string &output)
const override;
73 void desc(ostream &os)
const;
76 int32_t table_id_ = -1;
78 vector<FieldMeta> trx_fields_;
79 vector<FieldMeta> fields_;
80 vector<IndexMeta> indexes_;
81 vector<string> primary_keys_;
82 StorageFormat storage_format_;
83 StorageEngine storage_engine_;
Definition: serializable.h:43