CUNIT_TEST(BenchSuite, distance) { int pageSize = 1000, rows = 1000000, cores = 8; EagleDbInstance *db = EagleDbInstance_New(pageSize, cores); EagleLoggerEvent *error = NULL; EagleBoolean success; // create table success = EagleDbInstance_execute(db, "CREATE TABLE point (id INT, x DOUBLE, y DOUBLE);", &error); if(EagleFalse == success) { CUNIT_FAIL("%s", error->message); } // add data srand(0); EagleDbParser *p = _BenchSuite_distance(db, rows); // execute for(int i = 0; i < 10; ++i) { EaglePlan *plan = EagleDbSqlSelect_parse((EagleDbSqlSelect*) p->yyparse_ast, db); if(EagleTrue == EaglePlan_isError(plan)) { CUNIT_FAIL("%s", plan->errorMessage); } //printf("%s\n", EaglePlan_toString(plan)); EagleInstance *eagle = EagleInstance_New(cores); EagleInstance_addPlan(eagle, plan); EagleInstance_run(eagle); // print results /*while(EaglePageProvider_pagesRemaining(plan->result[0]) > 0) { EaglePage *id = EaglePageProvider_nextPage(plan->result[0]); EaglePage *x = EaglePageProvider_nextPage(plan->result[1]); EaglePage *y = EaglePageProvider_nextPage(plan->result[2]); for(int i = 0; i < id->count; ++i) { EagleDataTypeFloatType _x = ((EagleDataTypeFloatType*) x->data)[i]; EagleDataTypeFloatType _y = ((EagleDataTypeFloatType*) y->data)[i]; printf("(id = %d, x = %g, y = %g) -> %g\n", ((EagleDataTypeIntegerType*) id->data)[i], _x, _y, sqrt((500.0 - _x) * (500.0 - _x) + (500.0 - _y) * (500.0 - _y))); } }*/ // check timing CUNIT_ASSERT_BENCH_RESULT(plan, cores); EaglePlan_Delete(plan); } EagleDbSqlSelect_DeleteRecursive((EagleDbSqlSelect*) p->yyparse_ast); EagleDbParser_Delete(p); EagleDbInstance_Delete(db); }
CUNIT_TEST(DBSuite, EagleDbInformationSchema_tables) { int cores = 1; EagleDbInstance *db = EagleDbInstance_New(10, cores); /* parse sql */ EagleDbParser *p = EagleDbParser_ParseWithString("select table_schema, table_name from information_schema_tables;"); if (EagleTrue == EagleDbParser_hasError(p)) { CUNIT_FAIL("%s", EagleDbParser_lastError(p)); } CUNIT_ASSERT_FALSE(EagleDbParser_hasError(p)); EaglePlan *plan = EagleDbSqlSelect_parse((EagleDbSqlSelect*) p->yyparse_ast, db); if (EagleTrue == EaglePlan_isError(plan)) { CUNIT_FAIL("%s", plan->errorMessage); } CUNIT_ASSERT_FALSE(EaglePlan_isError(plan)); /* execute */ EagleInstance *eagle = EagleInstance_New(cores); EagleInstance_addPlan(eagle, plan); EagleInstance_run(eagle); /* check results */ EaglePage *page1 = EaglePageProvider_nextPage(plan->result[0]); EaglePage *page2 = EaglePageProvider_nextPage(plan->result[1]); CUNIT_ASSERT_NOT_NULL(page1); CUNIT_ASSERT_NOT_NULL(page2); EaglePage_Delete(page1); EaglePage_Delete(page2); EagleDbSqlExpression_DeleteRecursive((EagleDbSqlExpression*) p->yyparse_ast); EaglePlan_Delete(plan); EagleInstance_Delete(eagle); EagleDbParser_Delete(p); EagleDbInstance_Delete(db); }