MCPcopy Create free account
hub / github.com/duckdb/duckdb / ADBCTestDatabase

Method ADBCTestDatabase

test/api/adbc/test_adbc.cpp:34–58  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32class ADBCTestDatabase {
33public:
34 explicit ADBCTestDatabase(const string &path_parameter = ":memory:") {
35 InitializeADBCError(&adbc_error);
36 if (path_parameter != ":memory:") {
37 path = TestCreatePath(path_parameter);
38 } else {
39 path = path_parameter;
40 }
41 REQUIRE(duckdb_lib);
42 REQUIRE(SUCCESS(AdbcDatabaseNew(&adbc_database, &adbc_error)));
43 REQUIRE(SUCCESS(AdbcDatabaseSetOption(&adbc_database, "driver", duckdb_lib, &adbc_error)));
44 REQUIRE(SUCCESS(AdbcDatabaseSetOption(&adbc_database, "entrypoint", "duckdb_adbc_init", &adbc_error)));
45 REQUIRE(SUCCESS(AdbcDatabaseSetOption(&adbc_database, "path", path.c_str(), &adbc_error)));
46
47 REQUIRE(SUCCESS(AdbcDatabaseInit(&adbc_database, &adbc_error)));
48
49 REQUIRE(SUCCESS(AdbcConnectionNew(&adbc_connection, &adbc_error)));
50 REQUIRE(SUCCESS(AdbcConnectionInit(&adbc_connection, &adbc_database, &adbc_error)));
51 // Create a separate connection for ingest operations to avoid streaming conflicts.
52 // Using the same connection for both streaming query results and ingest would cause issues
53 // because the streaming result holds the ClientContext lock.
54 REQUIRE(SUCCESS(AdbcConnectionNew(&adbc_connection_ingest, &adbc_error)));
55 REQUIRE(SUCCESS(AdbcConnectionInit(&adbc_connection_ingest, &adbc_database, &adbc_error)));
56 arrow_stream.release = nullptr;
57 arrow_stream_ingest.release = nullptr;
58 }
59
60 ~ADBCTestDatabase() {
61 if (arrow_stream.release) {

Callers

nothing calls this directly

Calls 9

InitializeADBCErrorFunction · 0.85
TestCreatePathFunction · 0.85
SUCCESSFunction · 0.85
AdbcDatabaseNewFunction · 0.85
AdbcDatabaseSetOptionFunction · 0.85
AdbcDatabaseInitFunction · 0.85
AdbcConnectionNewFunction · 0.85
AdbcConnectionInitFunction · 0.85
c_strMethod · 0.80

Tested by

no test coverage detected