#include #include #include #include #include #include #include “../include/client.h“#include “./tokenize0.h“#include “./split_csv0.h“//#include //using namespace std;map > table2name;//由表名称对应列名称map > table2type;//由表名称对应列类型map > table2pkey;//由表名称对应主码名称map column2table;//由列名称对应表名称mapcolumn2index;//由列名称对应表中的列索引号map > >table2info;//表名称对应表的内容,使快速查找map > >table2info_temp;map >table2filename;//表名称对应表文件名称map file2line;//表文件名对应文件内行数vector result;//结果寄存map output_line;//行号vector out_line;//行号typedef struct { int col_index; int op_num; string comp;}Cond;void doInsert(const string & insert_table_nameconst vector & insert_table_values);void doSelect(const vector& output_table const vector& output_index const vector& table const vector& condition);void doJoin(const vector& output_table const vector& output_index const vector& table const vector >& join_table_compareconst vector >&join_index_compareint depth);//void show ( const string & table_name );void doJoin0(const vector& output const vector& table const int & depthconst int & num);void done(const vector& output_table const vector& output_index const vector&table const int & depth) //递归对每一的表做查找连接{ if(table2info_temp.size() == 0) { int size = table2info[table[depth]].size();//表示当前表的行数 if ( depth == table.size()-1 ){ for(int i=0; i output_line[table[depth]] = i; string str = table2info[output_table[0]][output_line[output_table[0]]][output_index[0]]; for( int j=1 ; j str += ““ + table2info[output_table[j]][output_line[output_table[j]]][output_index[j]]; str[str.size()] = ‘\0‘; result.push_back(str); } return; } for(int i=0 ; i output_line[table[depth]] = i; done(output_tableoutput_indextabledepth+1); } } else { int size = table2info_temp[table[depth]].size();//表示当前表的行数 if ( depth == table.size()-1 ){ for(int i=0; i output_line[table[depth]] = i; string str = table2info_temp[output_table[0]][output_line[output_table[0]]][output_index[0]]; for( int j=1 ; j str += ““ + table2info_temp[output_table[j]][output_line[output_table[j]]][output_index[j]]; str[str.size()] = ‘\0‘; result.push_back(str); } return; } for(int i=0 ; i output_line[table[depth]] = i; done(output_tableoutput_indextabledepth+1); } } }void create(const string& table const vector& column const ve
共有 条评论
评论
共有 条评论