void QueryCursorImpl::GetNext(OutputOperation& op, IgniteError& err) { // Check whether GetAll() was called earlier. if (getAllCalled) { err = IgniteError(IgniteError::IGNITE_ERR_GENERIC, "Cannot use GetNext() method because GetAll() was called."); return; } // Create iterator in Java if needed. if (!CreateIteratorIfNeeded(err)) return; // Get next results batch if the end in the current batch // has been reached. if (!GetNextBatchIfNeeded(err)) return; if (endReached) { // Ensure we do not overwrite possible previous error. if (err.GetCode() == IgniteError::IGNITE_SUCCESS) err = IgniteError(IgniteError::IGNITE_ERR_GENERIC, "No more elements available."); return; } batch->GetNext(op); }
/* * Constructor. */ CacheTestSuiteFixture() { IgniteConfiguration cfg; IgniteJvmOption opts[5]; opts[0] = IgniteJvmOption("-Xdebug"); opts[1] = IgniteJvmOption("-Xnoagent"); opts[2] = IgniteJvmOption("-Djava.compiler=NONE"); opts[3] = IgniteJvmOption("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"); opts[4] = IgniteJvmOption("-XX:+HeapDumpOnOutOfMemoryError"); cfg.jvmOptsLen = 5; cfg.jvmOpts = opts; #ifdef IGNITE_TESTS_32 cfg.jvmInitMem = 256; cfg.jvmMaxMem = 768; #else cfg.jvmInitMem = 1024; cfg.jvmMaxMem = 4096; #endif char* cfgPath = getenv("IGNITE_NATIVE_TEST_CPP_CONFIG_PATH"); std::string cfgPathStr = std::string(cfgPath).append("/").append("cache-test.xml"); cfg.springCfgPath = const_cast<char*>(cfgPathStr.c_str()); for (int i = 0; i < 2; i++) { std::stringstream stream; stream << "grid-" << i; IgniteError err; Ignite grid = Ignition::Start(cfg, stream.str().c_str(), &err); if (err.GetCode() != IgniteError::IGNITE_SUCCESS) BOOST_FAIL(err.GetText()); if (i == 0) grid0 = grid; else grid1 = grid; } }
/** * Constructor. */ QueriesTestSuiteFixture() : testCache(0), env(NULL), dbc(NULL), stmt(NULL) { IgniteConfiguration cfg; cfg.jvmOpts.push_back("-Xdebug"); cfg.jvmOpts.push_back("-Xnoagent"); cfg.jvmOpts.push_back("-Djava.compiler=NONE"); cfg.jvmOpts.push_back("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"); cfg.jvmOpts.push_back("-XX:+HeapDumpOnOutOfMemoryError"); #ifdef IGNITE_TESTS_32 cfg.jvmInitMem = 256; cfg.jvmMaxMem = 768; #else cfg.jvmInitMem = 1024; cfg.jvmMaxMem = 4096; #endif char* cfgPath = getenv("IGNITE_NATIVE_TEST_ODBC_CONFIG_PATH"); cfg.springCfgPath = std::string(cfgPath).append("/").append("queries-test.xml"); IgniteError err; grid = Ignition::Start(cfg, &err); if (err.GetCode() != IgniteError::IGNITE_SUCCESS) BOOST_FAIL(err.GetText()); testCache = grid.GetCache<int64_t, TestType>("cache"); // Allocate an environment handle SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env); BOOST_REQUIRE(env != NULL); // We want ODBC 3 support SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, reinterpret_cast<void*>(SQL_OV_ODBC3), 0); // Allocate a connection handle SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc); BOOST_REQUIRE(dbc != NULL); // Connect string SQLCHAR connectStr[] = "DRIVER={Apache Ignite};SERVER=localhost;PORT=10800;CACHE=cache"; SQLCHAR outstr[ODBC_BUFFER_SIZE]; SQLSMALLINT outstrlen; // Connecting to ODBC server. SQLRETURN ret = SQLDriverConnect(dbc, NULL, connectStr, static_cast<SQLSMALLINT>(sizeof(connectStr)), outstr, sizeof(outstr), &outstrlen, SQL_DRIVER_COMPLETE); if (!SQL_SUCCEEDED(ret)) { Ignition::Stop(grid.GetName(), true); BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_DBC, dbc)); } // Allocate a statement handle SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt); BOOST_REQUIRE(stmt != NULL); }
/** * Checks if the error is of type IgniteError::IGNITE_ERR_UNKNOWN. */ inline bool IsUnknownError(const IgniteError& err) { return err.GetCode() == IgniteError::IGNITE_ERR_UNKNOWN; }
/** * Checks if the error is of type IgniteError::IGNITE_ERR_FUTURE_STATE. */ inline bool IsFutureError(const IgniteError& err) { return err.GetCode() == IgniteError::IGNITE_ERR_FUTURE_STATE; }