field.h 734 字节
Newer Older
羽飞's avatar
羽飞 已提交
1 2 3 4 5
#pragma once

#include "storage/common/table.h"
#include "storage/common/field_meta.h"

羽飞's avatar
羽飞 已提交
6
class Field
羽飞's avatar
羽飞 已提交
7
{
羽飞's avatar
羽飞 已提交
8 9 10
public:
  Field() = default;
  Field(const Table *table, const FieldMeta *field) : table_(table), field_(field)
羽飞's avatar
羽飞 已提交
11 12
  {}

羽飞's avatar
羽飞 已提交
13 14
  const Table *table() const { return table_; }
  const FieldMeta *meta() const { return field_; }
羽飞's avatar
羽飞 已提交
15

羽飞's avatar
羽飞 已提交
16 17 18 19
  AttrType attr_type() const
  {
    return field_->type();
  }
羽飞's avatar
羽飞 已提交
20

羽飞's avatar
羽飞 已提交
21 22
  const char *table_name() const { return table_->name(); }
  const char *field_name() const { return field_->name(); }
羽飞's avatar
羽飞 已提交
23

羽飞's avatar
羽飞 已提交
24 25 26 27 28 29 30 31
  void set_table(const Table *table)
  {
    this->table_ = table;
  }
  void set_field(const FieldMeta *field)
  {
    this->field_ = field;
  }
羽飞's avatar
羽飞 已提交
32
private:
羽飞's avatar
羽飞 已提交
33 34
  const Table *table_ = nullptr;
  const FieldMeta *field_ = nullptr;
羽飞's avatar
羽飞 已提交
35
};