15#include "storage/field/field_meta.h"
35 Column(AttrType attr_type,
int attr_len,
size_t size = DEFAULT_CAPACITY);
37 void init(
const FieldMeta &meta,
size_t size = DEFAULT_CAPACITY);
38 void init(AttrType attr_type,
int attr_len,
size_t size = DEFAULT_CAPACITY);
39 void init(
const Value &value);
45 RC append_one(
char *data);
52 RC
append(
char *data,
int count);
64 char *data()
const {
return data_; }
77 void set_count(
int count) {
count_ = count; }
79 int count()
const {
return count_; }
80 int capacity()
const {
return capacity_; }
81 AttrType attr_type()
const {
return attr_type_; }
82 int attr_len()
const {
return attr_len_; }
86 static constexpr size_t DEFAULT_CAPACITY = 8192;
88 char *data_ =
nullptr;
A column contains multiple values in contiguous memory with a specified type.
Definition: column.h:22
int capacity_
当前容量,count_ <= capacity_
Definition: column.h:92
void reset_data()
重置列数据,但不修改元信息
Definition: column.h:69
int count_
当前列值数量
Definition: column.h:90
int attr_len_
列属性类型长度(目前只支持定长)
Definition: column.h:98
AttrType attr_type_
列属性类型
Definition: column.h:96
Type
Definition: column.h:25
@ CONSTANT_COLUMN
Normal column represents a list of fixed-length values
int data_len() const
获取列数据的实际大小(字节)
Definition: column.h:62
bool own_
是否拥有内存
Definition: column.h:94
RC append(char *data, int count)
向 Column 追加写入数据
Definition: column.cpp:91
Value get_value(int index) const
获取 index 位置的列值
Definition: column.cpp:109
Type column_type_
列类型
Definition: column.h:100
void reference(const Column &column)
引用另一个 Column
Definition: column.cpp:117
属性的值
Definition: value.h:30