17#include "sql/expr/expression_tuple.h"
18#include "sql/operator/physical_operator.h"
24 : expressions_(std::move(expressions)), tuple_(expressions_)
30 OpType
get_op_type()
const override {
return OpType::CALCULATE; }
32 string name()
const override {
return "CALC"; }
33 string param()
const override {
return ""; }
35 RC open(
Trx *trx)
override {
return RC::SUCCESS; }
46 for (
int i = 0; i < cell_num; i++) {
55 RC close()
override {
return RC::SUCCESS; }
57 int cell_num()
const {
return tuple_.
cell_num(); }
59 Tuple *current_tuple()
override {
return &tuple_; }
61 const vector<unique_ptr<Expression>> &expressions()
const {
return expressions_; }
65 for (
const unique_ptr<Expression> &expression : expressions_) {
66 schema.append_cell(expression->name());
72 vector<unique_ptr<Expression>> expressions_;
74 bool emitted_ =
false;
Definition: calc_physical_operator.h:21
string name() const override
Definition: calc_physical_operator.h:32
OpType get_op_type() const override
Definition: calc_physical_operator.h:30
Definition: expression_tuple.h:24
int cell_num() const override
获取元组中的Cell的个数
Definition: expression_tuple.h:31
RC cell_at(int index, Value &cell) const override
获取指定位置的Cell
Definition: expression_tuple.h:33
与LogicalOperator对应,物理算子描述执行计划将如何执行
Definition: physical_operator.h:63
事务接口
Definition: trx.h:141
元组的结构,包含哪些字段(这里成为Cell),每个字段的说明
Definition: tuple.h:48
元组的抽象描述
Definition: tuple.h:66
属性的值
Definition: value.h:30
PhysicalOperatorType
物理算子类型
Definition: physical_operator.h:36