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
|
#include "capi_tester.hpp"
#include "duckdb.h"
using namespace duckdb;
using namespace std;
TEST_CASE("Test pending statements in C API", "[capi]") {
CAPITester tester;
CAPIPrepared prepared;
CAPIPending pending;
duckdb::unique_ptr<CAPIResult> result;
// open the database in in-memory mode
REQUIRE(tester.OpenDatabase(nullptr));
REQUIRE(prepared.Prepare(tester, "SELECT SUM(i) FROM range(1000000) tbl(i)"));
REQUIRE(pending.Pending(prepared));
while (true) {
auto state = pending.ExecuteTask();
REQUIRE(state != DUCKDB_PENDING_ERROR);
if (duckdb_pending_execution_is_finished(state)) {
break;
}
}
result = pending.Execute();
REQUIRE(result);
REQUIRE(!result->HasError());
REQUIRE(result->Fetch<int64_t>(0, 0) == 499999500000LL);
}
|