aboutsummaryrefslogtreecommitdiff
path: root/engine.cpp
blob: 098a55e59f9d467eba08c69f34b56471bfdc0fc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "enginedata.h"
#include "query.h"
#include <iostream>
#include <vector>
#include <map>
#include <list>
#include <utility>
#include <cstdlib>
#include <cstring>
#include <climits>

using namespace std;


map<string,Table> tables;


template <class... T>
void createTable(string name,T&&... args){
	//const Table tbl=Table(forward<T>(args)...);
	//tables.emplace(tbl.name,move(tbl));
	tables.emplace(piecewise_construct,
	               forward_as_tuple(name),
	               forward_as_tuple(name,forward<T>(args)...));
}


int main(int argc,char **argv){
	ColHeader *header=new ColHeader[3];
	header[0]={RH_INT32,0};
	header[1]={RH_UINT32,0};
	header[2]={RH_BYTES,10};
	//tables.emplace("hoi",Table("hoi",3,header));
	createTable("hoi",3,header);
	Table *hoitb=&tables.at("hoi");
	Row row(3,hoitb);
	row.items[0].rh_int32=UINT_MAX;
	row.items[1].rh_uint32=UINT_MAX;
	row.items[2].rh_bytes=new unsigned char[10];
	strcpy((char*)row.items[2].rh_bytes,"hallo daar");
	// cerr<<row.items[2].rh_bytes<<endl;
	if(!hoitb->insert(row))cout<<"Failed to insert row!"<<endl; else cout<<"Success."<<endl;
	if(!hoitb->insert(row))cout<<"Failed to insert row!"<<endl; else cout<<"Success."<<endl;
	cout<<"hoitb has "<<hoitb->rows.size()<<" row"<<(hoitb->rows.size()==1?"":"s")<<'.'<<endl;
	/*list<Row> found=hoitb->find(serialise((int32_t)-1));
	cout<<"Found for key -1:"<<endl;
	for(Row r : found){
		cout<<r<<endl;
	}*/
	FindQuery qu;
	qu.from="hoi";
	RowItem ri; ri.rh_int32=-1;
	qu.where.emplace_back(0,ri);
	QueryResult res=qu.execute(tables);
	cout<<"Result: "<<res.res<<":"<<endl;
	for(const Row &r : res.rows){
		cout<<"- "<<r<<endl;
	}
	return 0;
}