Commit 3f7f047b authored by yiwenshao's avatar yiwenshao

able to decrypt and reencrypt variable length string,haha

parent 51ff0337
This diff is collapsed.
This diff is collapsed.
......@@ -57,29 +57,32 @@ std::string getTestQuery(SchemaInfo &schema, std::vector<FieldMetaTrans> &tfds,
return res;
}
static void write_meta(rawMySQLReturnValue& resraw,std::vector<FieldMetaTrans> &res,string db,string table){
static void write_meta(std::vector<FieldMetaTrans> &res,string db,string table){
TableMetaTrans mf(db,table,res);
mf.set_db_table(db,table);
mf.serialize();
}
static
void write_raw_data_to_files(rawMySQLReturnValue& resraw,std::vector<FieldMetaTrans> &res ,string db,string table){
void write_raw_data_to_files(MySQLColumnData& resraw,std::vector<FieldMetaTrans> &res ,string db,string table){
//write metafiles
write_meta(resraw,res,db,table);
write_meta(res,db,table);
//write datafiles
write_row_data(resraw,db,table);
std::string prefix = std::string("data/") +db+"/"+table+"/";
std::vector<std::string> filenames;
for(auto item:resraw.fieldNames){
item=prefix+item;
filenames.push_back(item);
}
int len = resraw.fieldNames.size();
for(int i=0;i<len;i++){
if(IS_NUM(resraw.fieldTypes[i])){
writeColumndataNum(resraw.columnData[i],filenames[i]);
}else{
writeColumndataEscapeString(resraw.columnData[i],filenames[i],resraw.maxLengths[i]);
}
}
}
static void store(std::string db, std::string table){
......@@ -101,11 +104,11 @@ static void store(std::string db, std::string table){
//generate the backup query and then fetch the tuples
std::string backup_query = getTestQuery(*schema,res,db,table);
rawMySQLReturnValue resraw = executeAndGetResultRemote(globalConn,backup_query);
MySQLColumnData resraw = executeAndGetColumnData(globalConn,backup_query);
//then we should set the type and length of FieldMetaTrans
auto types = resraw.fieldTypes;
auto lengths = resraw.lengths;
auto lengths = resraw.maxLengths;
int base_types = 0;
int base_lengths = 0;
for(auto &item:res){
......
......@@ -2,6 +2,6 @@ OBJDIRS += test_wrapper
##note that xx=*.cc will not expand. wildcard *.cc will include files from other directories.
##%.o will include testall
TESTALL_OBJS := $(patsubst %.cc,$(OBJDIR)/%.o,$(wildcard test_wrapper/*.cc))
TESTALL_EXES := $(patsubst test_wrapper/%.cc,test_wrapper_exe/%,$(wildcard test_wrapper/*.cc))
TESTALL_EXES := $(patsubst test_wrapper/%.cc,mtl/test_wrapper_exe/%,$(wildcard test_wrapper/*.cc))
all: $(TESTALL_OBJS) $(TESTALL_EXES)
#include "wrapper/reuse.hh"
#include <string>
#include <iostream>
#include <vector>
using std::string;
using std::vector;
int main() {
vector<string> inputstr{string("a\n\n\0",4),"b","c"};
writeColumndataEscapeString(inputstr,"datastr",10);
vector<string> resstr;
loadFileEscape("datastr",resstr,10);
vector<string> inputint{"123","234","345","456","567","678"};
writeColumndataNum(inputint,"dataint");
vector<string> resint;
loadFileNoEscape("dataint",resint);
return 0;
}
......@@ -477,7 +477,7 @@ write_row_data(rawMySQLReturnValue& resraw,std::string db,std::string table,std:
/* Write a column of data of the type string in mysql. one line per record.
string should be escaped before being written into the file */
void
writeRowdataEscapeString(const std::vector<std::string> &column,
writeColumndataEscapeString(const std::vector<std::string> &column,
std::string columnFilename,
unsigned int maxLength) {
FILE* dataFileHandler = fopen(columnFilename.c_str(),"w");
......@@ -496,7 +496,7 @@ writeRowdataEscapeString(const std::vector<std::string> &column,
one record per line
*/
void
writeRowdataNum(const std::vector<std::string> &column,
writeColumndataNum(const std::vector<std::string> &column,
std::string columnFilename) {
FILE* dataFileHandler = fopen(columnFilename.c_str(),"w");
const std::string token = "\n";
......
......@@ -231,13 +231,13 @@ loadFileNoEscape(std::string filename,
void
writeRowdataEscapeString(const std::vector<std::string> &column,
writeColumndataEscapeString(const std::vector<std::string> &column,
std::string columnFilename,
unsigned int maxLength);
void
writeRowdataNum(const std::vector<std::string> &column,
writeColumndataNum(const std::vector<std::string> &column,
std::string columnFilename);
......@@ -249,6 +249,3 @@ void
loadFileNoEscapeLimitCount(std::string filename,
std::vector<std::string> &res,int limit);
//Connect * initEmbeddedAndRemoteConnection(std::string ip,int port);
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