#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 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(0, 0) == 499999500000LL); }