int main(int argc, char** argv) { skata1 = 0; skata2 = 0.0; Query1Eval* eval = new Query1Eval(); dbgassert(eval != 0); Config cfg; if (argc < 2) { cout << "ERROR: Configuration file not specified." << endl; cout << "Usage: " << argv[0] << " conf-file" << endl; return 2; } cfg.readFile(argv[1]); Query::UserDefinedOpMapT opmap; opmap["q1eval"] = eval; dbgassert(opmap.find("q1eval") != opmap.end()); dbgassert(opmap.find("q1eval")->second == eval); // build plan tree q.create(cfg, opmap); dbgassert(opmap.find("q1eval") != opmap.end()); dbgassert(opmap.find("q1eval")->second == 0); #ifdef QUERYPLAN cout << "---------- QUERY PLAN START ----------" << endl; PrettyPrinterVisitor ppv; q.accept(&ppv); cout << "----------- QUERY PLAN END -----------" << endl; #endif int threads = cfg.getRoot()["merge"]["threads"]; q.threadInit(); compute(); #ifdef QUERYPLAN cout << "---------- QUERY PLAN START ----------" << endl; q.accept(&ppv); cout << "----------- QUERY PLAN END -----------" << endl; #endif q.threadClose(); q.destroy(); cout << "Threads: " << threads << endl; cout << "Cycles: " << timer << endl; cout << "Checksum: (" << skata1 << ", " << fixed << skata2 << ")" << endl; return 0; }
int main(int argc, char** argv) { Config cfg; if (argc < 2) { cout << "ERROR: Configuration file not specified." << endl; cout << "Usage: " << argv[0] << " conf-file" << endl; return 2; } cfg.readFile(argv[1]); q.create(cfg); q.threadInit(); compute(); #ifdef QUERYPLAN cout << "---------- QUERY PLAN START ----------" << endl; PrettyPrinterVisitor ppv; q.accept(&ppv); cout << "----------- QUERY PLAN END -----------" << endl; #endif cout << "Max Memory Allocated (bytes): " << TotalBytesAllocated << endl; #ifdef STATS_ALLOCATE dbgPrintAllocations(q); #endif q.threadClose(); q.destroy(); return 0; }