15#include "storage/field/field_meta.h"
16#include "storage/common/vector_buffer.h"
43 vector_buffer_ = make_unique<VectorBuffer>();
54 vector_buffer_ = std::move(other.vector_buffer_);
55 other.data_ =
nullptr;
62 Column(AttrType attr_type,
int attr_len,
size_t size = DEFAULT_CAPACITY);
64 void init(
const FieldMeta &meta,
size_t size = DEFAULT_CAPACITY);
65 void init(AttrType attr_type,
int attr_len,
size_t size = DEFAULT_CAPACITY);
66 void init(
const Value &value,
size_t size);
68 unique_ptr<Column> clone()
const {
return make_unique<Column>(*
this); }
74 RC append_one(
const char *data);
76 RC append_value(
const Value &val);
83 RC
append(
const char *data,
int count);
90 RC copy_to(
void *dest,
int start_rows,
int insert_rows)
const
101 char *data()
const {
return data_; }
103 string_t add_text(
const char *str,
int len);
111 vector_buffer_ =
nullptr;
120 void set_attr_type(AttrType attr_type) {
attr_type_ = attr_type; }
121 void set_count(
int count) {
count_ = count; }
123 int count()
const {
return count_; }
124 int capacity()
const {
return capacity_; }
125 AttrType attr_type()
const {
return attr_type_; }
126 int attr_len()
const {
return attr_len_; }
128 static constexpr size_t DEFAULT_CAPACITY = 8192;
131 char *data_ =
nullptr;
144 unique_ptr<VectorBuffer> vector_buffer_ =
nullptr;
A column contains multiple values in contiguous memory with a specified type.
Definition: column.h:23
int capacity_
当前容量,count_ <= capacity_
Definition: column.h:135
void reset_data()
重置列数据,但不修改元信息
Definition: column.h:108
int count_
当前列值数量
Definition: column.h:133
RC append(const char *data, int count)
向 Column 追加写入数据
Definition: column.cpp:103
int attr_len_
列属性类型长度(目前只支持定长)
Definition: column.h:141
AttrType attr_type_
列属性类型
Definition: column.h:139
Type
Definition: column.h:26
@ CONSTANT_COLUMN
Normal column represents a list of fixed-length values
int data_len() const
获取列数据的实际大小(字节)
Definition: column.h:99
bool own_
是否拥有内存
Definition: column.h:137
Value get_value(int index) const
获取 index 位置的列值
Definition: column.cpp:149
Type column_type_
列类型
Definition: column.h:143
void reference(const Column &column)
引用另一个 Column
Definition: column.cpp:160
属性的值
Definition: value.h:31
Definition: string_t.h:18