54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
#include "catch.hpp"
|
|
#include "test_helpers.hpp"
|
|
#include "duckdb.hpp"
|
|
#include "duckdb/main/db_instance_cache.hpp"
|
|
|
|
using namespace duckdb;
|
|
using namespace std;
|
|
|
|
void TestConnectToDatabase(const string &path, bool create_table = false) {
|
|
// connect to the database using the standard syntax
|
|
{
|
|
DuckDB db(path);
|
|
Connection con(db);
|
|
if (create_table) {
|
|
REQUIRE_NO_FAIL(con.Query("CREATE TABLE test AS SELECT * FROM range(10) t(i)"));
|
|
}
|
|
|
|
auto result = con.Query("SELECT SUM(i) FROM test");
|
|
REQUIRE(CHECK_COLUMN(result, 0, {45}));
|
|
}
|
|
|
|
// connect to the database using the db instance cache
|
|
{
|
|
DBInstanceCache cache;
|
|
DBConfig config;
|
|
auto db = cache.CreateInstance(path, config);
|
|
Connection con(*db);
|
|
|
|
auto result = con.Query("SELECT SUM(i) FROM test");
|
|
REQUIRE(CHECK_COLUMN(result, 0, {45}));
|
|
}
|
|
}
|
|
|
|
TEST_CASE("Issue #6931 - test windows unicode path", "[windows]") {
|
|
string dirname = "Moseguí_i_González";
|
|
auto test_directory = TestDirectoryPath() + "/" + dirname;
|
|
auto current_directory = TestGetCurrentDirectory();
|
|
TestCreateDirectory(test_directory);
|
|
TestChangeDirectory(test_directory);
|
|
|
|
// relative path INSIDE folder with accents
|
|
TestConnectToDatabase("test.db", true);
|
|
|
|
TestChangeDirectory("..");
|
|
// relative path TOWARDS folder with accents
|
|
TestConnectToDatabase(dirname + "/" + "test.db");
|
|
|
|
// absolute path with folder with accents
|
|
TestConnectToDatabase(current_directory + "/" + test_directory + "/" + "test.db");
|
|
|
|
// revert current working directory
|
|
TestChangeDirectory(current_directory);
|
|
}
|