17#include "common/lang/initializer_list.h"
18#include "sql/operator/physical_operator.h"
32 template <
typename InputIt>
33 void append(InputIt begin, InputIt end)
35 strings_.emplace_back(begin, end);
38 void append(initializer_list<string> init) { strings_.emplace_back(init); }
41 void append(
const T &v)
43 strings_.emplace_back(1, v);
48 RC open(
Trx *)
override {
return RC::SUCCESS; }
54 iterator_ = strings_.begin();
55 }
else if (iterator_ != strings_.end()) {
58 return iterator_ == strings_.end() ? RC::RECORD_EOF : RC::SUCCESS;
61 virtual RC close()
override
63 iterator_ = strings_.end();
67 virtual Tuple *current_tuple()
override
69 if (iterator_ == strings_.end()) {
73 const StringList &string_list = *iterator_;
75 for (
const string &s : string_list) {
77 Value value(s.c_str());
78 cells.push_back(value);
80 tuple_.set_cells(cells);
85 using StringList = vector<string>;
86 using StringListList = vector<StringList>;
87 StringListList strings_;
88 StringListList::iterator iterator_;
89 bool started_ =
false;
与LogicalOperator对应,物理算子描述执行计划将如何执行
Definition: physical_operator.h:63
字符串列表物理算子
Definition: string_list_physical_operator.h:26
事务接口
Definition: trx.h:141
元组的抽象描述
Definition: tuple.h:66
一些常量值组成的TupleTODO 使用单独文件
Definition: tuple.h:312
属性的值
Definition: value.h:30
PhysicalOperatorType
物理算子类型
Definition: physical_operator.h:36