13#include "common/sys/rc.h"
14#include "common/log/log.h"
15#include "common/lang/memory.h"
16#include "common/lang/vector.h"
17#include "storage/common/column.h"
29 int column_num()
const {
return columns_.size(); }
33 ASSERT(idx < columns_.size(),
"invalid column index");
34 return *columns_[idx];
37 Column *column_ptr(
size_t idx)
39 ASSERT(idx < columns_.size(),
"invalid column index");
43 int column_ids(
size_t i)
45 ASSERT(i < column_ids_.size(),
"invalid column index");
46 return column_ids_[i];
49 void add_column(unique_ptr<Column> col,
int col_id);
51 RC reference(
Chunk &chunk);
71 Value get_value(
int col_idx,
int row_idx)
const {
return columns_[col_idx]->get_value(row_idx); }
81 vector<unique_ptr<Column>> columns_;
84 vector<int> column_ids_;
A Chunk represents a set of columns.
Definition: chunk.h:23
int capacity() const
获取 Chunk 的容量
Definition: chunk.cpp:41
Value get_value(int col_idx, int row_idx) const
从 Chunk 中获得指定行指定列的 Value
Definition: chunk.h:71
void reset_data()
重置 Chunk 中的数据,不会修改 Chunk 的列属性。
Definition: chunk.cpp:49
int rows() const
获取 Chunk 中的行数
Definition: chunk.cpp:33
A column contains multiple values in contiguous memory with a specified type.
Definition: column.h:22
属性的值
Definition: value.h:30