void simpleQueryTest() { //Intercept query test { std::unique_ptr<SQLResponse> y = restQuery ( L"SELECT 1", KServerAddr, KPort, KUserName, KPassword, KDefaultProject ); if ( ( int ) y->results.size() != 1 ) { report(); } } //Ungzipped Query Test { std::unique_ptr<SQLResponse> y = restQuery ( L"select cal_dt from test_kylin_fact limit 1", KServerAddr, KPort, KUserName, KPassword, KDefaultProject ); if ( ( int ) y->results.size() != 1 ) { report(); } } //zipped Query Test { std::unique_ptr<SQLResponse> y = restQuery ( L"select * from test_kylin_fact limit 12", KServerAddr, KPort, KUserName, KPassword, KDefaultProject ); if ( ( int ) y->results.size() != 12 ) { report(); } } }
RETCODE SQL_API _SQLExecStmtFromReq ( pODBCStmt pStmt, bool pPrepared ) { ////// this part should not be required if already prepared // release existing stmt contents //SQLFreeStmt ( pStmt, SQL_CLOSE ); ////// __ODBCLOG ( _ODBCLogMsg ( LogLevel_INFO, "================================================================" ) ); __ODBCLOG ( _ODBCLogMsg ( LogLevel_INFO, "start exec the query: " ) ); __ODBCLOG ( _ODBCLogMsg ( LogLevel_INFO, pStmt->Stmt ) ); std::unique_ptr<SQLResponse> p; try { p = restQuery ( pStmt->Stmt, pStmt->Conn->Server, pStmt->Conn->ServerPort, pStmt->Conn->UserName, pStmt->Conn->Password, pStmt->Conn->Project ); __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "The REST request succeed" ) ); } catch ( const exception& e ) { std::stringstream ss; ss << "The REST query request failed, the error message is: " << e.what(); std::string s = ss.str(); __ODBCLOG ( _ODBCLogMsg ( LogLevel_ERROR, s.c_str() ) ); _SQLPutDiagRow ( SQL_HANDLE_STMT, pStmt, "_SQLExecStmtFromReq", "01000", -1, ( char* ) s.c_str() ); return SQL_ERROR; } // feed stmt structure with response, stmt will take charge of deleting it if ( p == NULL || p->isException == true || PutRespToStmt ( ( pODBCStmt ) pStmt, std::move ( p ) ) != GOOD ) { return SQL_ERROR; } __ODBCLOG ( _ODBCLogMsg ( LogLevel_INFO, "Successfully done executing the query" ) ); return SQL_SUCCESS; }
void veroRestApiTest() { // rest authenticate bool ret = restAuthenticate(KServerAddr, KPort, KUserName, KPassword); if (!ret) { report(); } // rest projects std::map<string, string> projectMap; restListProjects(KServerAddr, KPort, KUserName, KPassword, projectMap); for (std::map<string, string>::iterator i = projectMap.begin(); i != projectMap.end(); i++) { cout << "Project = " << (*i).first << endl; } // rest meta std::unique_ptr<MetadataResponse> metaResponse = restGetMeta(KServerAddr, KPort, KUserName, KPassword, KDefaultProject); // rest query { std::unique_ptr<SQLResponse> y = restQuery(L"select Year", KServerAddr, KPort, KUserName, KPassword, KDefaultProject); if ((int)y->results.size() != 1) { report(); } } }