Commit a88dd320 authored by yiwenshao's avatar yiwenshao

add function StringToItem in parser/sql_util.cc

parent e4f54f44
...@@ -12,26 +12,8 @@ ...@@ -12,26 +12,8 @@
#include <main/CryptoHandlers.hh> #include <main/CryptoHandlers.hh>
static std::string embeddedDir="/t/cryt/shadow"; static std::string embeddedDir="/t/cryt/shadow";
/*
//Show what Analysis can do
static void test_Analysis(Analysis & analysis){
//oDET,
//oOPE,
//oAGG,
std::cout<<GREEN_BEGIN<<"USE Analysis: "<<COLOR_END<<std::endl;
OnionMeta *om = analysis.getOnionMeta2("tdb","student","id",oDET);
if(om!=NULL)
std::cout<<"use analysis.getOnionMetae oDET: "<<om->getAnonOnionName()<<std::endl;
om = analysis.getOnionMeta2("tdb","student","id",oOPE);
if(om!=NULL)
std::cout<<"use analysis.getOnionMetae oOPE: "<<om->getAnonOnionName()<<std::endl;
om = analysis.getOnionMeta2("tdb","student","id",oAGG); static void testInsertHandler(std::string query){
if(om!=NULL)
std::cout<<"use analysis.getOnionMetae oAGG: "<<om->getAnonOnionName()<<std::endl;
}*/
static void myTestCreateTableHandler(std::string query){
std::unique_ptr<Connect> e_conn(Connect::getEmbedded(embeddedDir)); std::unique_ptr<Connect> e_conn(Connect::getEmbedded(embeddedDir));
std::unique_ptr<SchemaInfo> schema(new SchemaInfo()); std::unique_ptr<SchemaInfo> schema(new SchemaInfo());
std::function<DBMeta *(DBMeta *const)> loadChildren = std::function<DBMeta *(DBMeta *const)> loadChildren =
...@@ -48,9 +30,6 @@ static void myTestCreateTableHandler(std::string query){ ...@@ -48,9 +30,6 @@ static void myTestCreateTableHandler(std::string query){
//just like what we do in Rewrite::rewrite,dispatchOnLex //just like what we do in Rewrite::rewrite,dispatchOnLex
Analysis analysis(std::string("tdb"),*schema,TK, Analysis analysis(std::string("tdb"),*schema,TK,
SECURITY_RATING::SENSITIVE); SECURITY_RATING::SENSITIVE);
//assert(analysis.getMasterKey().get()!=NULL);
//assert(getKey(std::string("113341234"))!=NULL);
//test_Analysis(analysis);
DMLHandler *h = new InsertHandler(); DMLHandler *h = new InsertHandler();
...@@ -59,8 +38,7 @@ static void myTestCreateTableHandler(std::string query){ ...@@ -59,8 +38,7 @@ static void myTestCreateTableHandler(std::string query){
new query_parse("tdb", query)); new query_parse("tdb", query));
LEX *const lex = p->lex(); LEX *const lex = p->lex();
auto executor = h->transformLex(analysis,lex); auto executor = h->transformLex(analysis,lex);
std::cout<< ((DMLQueryExecutor*)executor)->getQuery()<<std::endl; std::cout<<((DMLQueryExecutor*)executor)->getQuery()<<std::endl;
} }
int int
...@@ -78,7 +56,7 @@ main() { ...@@ -78,7 +56,7 @@ main() {
std::vector<std::string> querys{query1}; std::vector<std::string> querys{query1};
for(auto item:querys){ for(auto item:querys){
std::cout<<item<<std::endl; std::cout<<item<<std::endl;
myTestCreateTableHandler(item); testInsertHandler(item);
std::cout<<std::endl; std::cout<<std::endl;
} }
return 0; return 0;
......
...@@ -68,3 +68,10 @@ printItemToString(const Item &i){ ...@@ -68,3 +68,10 @@ printItemToString(const Item &i){
return o.str(); return o.str();
} }
Item* StringToItem(std::string s){
return new (current_thd->mem_root) Item_string(make_thd_string(s),
s.length(),
&my_charset_bin);
}
...@@ -45,4 +45,4 @@ char * make_thd_string(const std::string &s, size_t *lenp = 0); ...@@ -45,4 +45,4 @@ char * make_thd_string(const std::string &s, size_t *lenp = 0);
std::string ItemToString(const Item &i); std::string ItemToString(const Item &i);
std::string printItemToString(const Item &i); std::string printItemToString(const Item &i);
Item* StringToItem(std::string);//added
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment