diff --git a/CMakeLists.txt b/CMakeLists.txt index 40c646103..4e1d9813c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ set(JAVA_JVM_LIBRARY NotNeeded) find_package(JNI) cmake_minimum_required(VERSION 3.5...3.29) -set(CMAKE_CXX_STANDARD "11" CACHE STRING "C++ standard to enforce") +set(CMAKE_CXX_STANDARD "17" CACHE STRING "C++ standard to enforce") set(CMAKE_VERBOSE_MAKEFILE OFF) set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") diff --git a/CMakeLists.txt.in b/CMakeLists.txt.in index 3d6f041d6..fbb4b123a 100644 --- a/CMakeLists.txt.in +++ b/CMakeLists.txt.in @@ -8,7 +8,7 @@ set(JAVA_JVM_LIBRARY NotNeeded) find_package(JNI) cmake_minimum_required(VERSION 3.5...3.29) -set(CMAKE_CXX_STANDARD "11" CACHE STRING "C++ standard to enforce") +set(CMAKE_CXX_STANDARD "17" CACHE STRING "C++ standard to enforce") set(CMAKE_VERBOSE_MAKEFILE OFF) set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") diff --git a/src/jni/duckdb_java.cpp b/src/jni/duckdb_java.cpp index 436dda5c4..e4245a0c9 100644 --- a/src/jni/duckdb_java.cpp +++ b/src/jni/duckdb_java.cpp @@ -7,6 +7,9 @@ extern "C" { #include "duckdb/common/arrow/result_arrow_wrapper.hpp" #include "duckdb/common/operator/cast_operators.hpp" #include "duckdb/common/shared_ptr.hpp" +#include "duckdb/common/vector/array_vector.hpp" +#include "duckdb/common/vector/list_vector.hpp" +#include "duckdb/common/vector/struct_vector.hpp" #include "duckdb/function/scalar/variant_utils.hpp" #include "duckdb/function/table/arrow.hpp" #include "duckdb/main/appender.hpp" @@ -608,7 +611,7 @@ jobject ProcessVector(JNIEnv *env, Connection *conn_ref, Vector &vec, idx_t row_ auto names = env->NewObjectArray(entries.size(), J_String, nullptr); for (idx_t entry_i = 0; entry_i < entries.size(); entry_i++) { - auto j_vec = ProcessVector(env, conn_ref, *entries[entry_i], row_count); + auto j_vec = ProcessVector(env, conn_ref, entries[entry_i], row_count); env->SetObjectArrayElement(columns, entry_i, j_vec); env->SetObjectArrayElement(names, entry_i, env->NewStringUTF(StructType::GetChildName(vec.GetType(), entry_i).c_str())); diff --git a/src/test/java/org/duckdb/TestDuckDBJDBC.java b/src/test/java/org/duckdb/TestDuckDBJDBC.java index 3769121a7..837ea4530 100644 --- a/src/test/java/org/duckdb/TestDuckDBJDBC.java +++ b/src/test/java/org/duckdb/TestDuckDBJDBC.java @@ -944,7 +944,8 @@ public static void test_valid_but_local_config_throws_exception() throws Excepti String message = assertThrows(() -> DriverManager.getConnection(JDBC_URL, info), SQLException.class); - assertTrue(message.contains("Could not set option \"custom_profiling_settings\" as a global option")); + assertTrue(message.contains("Could not set option ")); + assertTrue(message.contains(" as a global option")); } private static String getSetting(Connection conn, String settingName) throws Exception {