最高层次的设计
首先,确定数据结构:
struct record_scan_plan {
DataSpace* output_dataspace;
vector<vector<TableStruct> > table_struct;
string table_name;
string schema_name;
string output_schema_name;
string output_table_name;
....
}
新增一个 field 在 record_scan 中,如下:
struct record_scan {
....
record_scan_plan plan;
}
需要复用之前的 dependent_subquery, 包括执行的流程和内部的代码。但是会删除执行后产生的结果集拼回到语句的情况。但是会保留拼语句的部分内容。
整体的执行流程