Optional symbol: it landed in chdb-core v26.7.2-rc.2, so the pinned v26.11.0-rc.2 + *
Optional symbol: it landed in chdb-core v26.7.2-rc.2, so the pinned v26.11.0-rc.3 * baseline has it, so it is resolved by {@code dlsym} rather than linked. It is present on * the baseline; the null path is what an older engine gets, and means the caller must fall * back to {@code StatementShape}'s own analysis. @@ -204,7 +234,7 @@ public static native long rowBinaryOpen( * every result destroyed first, and the engine cannot be used again in this process. * *
Optional symbol, like {@link #classifyQuery(long, byte[])}: it landed in chdb-core - * v26.7.2-rc.2, so the pinned v26.11.0-rc.2 baseline has it, and it is resolved by {@code + * v26.7.2-rc.2, so the pinned v26.11.0-rc.3 baseline has it, and it is resolved by {@code * dlsym} rather than linked. Not having it is not a failure -- the threads it would join are * reaped by process exit either way. * diff --git a/chdb-jdbc/src/main/java/org/chdb/internal/NativeLibraryLoader.java b/chdb-jdbc/src/main/java/org/chdb/internal/NativeLibraryLoader.java index 587bfcf..981d53c 100644 --- a/chdb-jdbc/src/main/java/org/chdb/internal/NativeLibraryLoader.java +++ b/chdb-jdbc/src/main/java/org/chdb/internal/NativeLibraryLoader.java @@ -41,8 +41,8 @@ * a Maven coordinate in the message, not something to download at runtime (section 2.3). * *
The pinned v26.11.0-rc.2 baseline does export chdb_classify_query_n, so the scan is no + *
The pinned v26.11.0-rc.3 baseline does export chdb_classify_query_n, so the scan is no
* longer the only thing deciding. It is still what decides whether a result set is streamed or
* materialized, because the classifier does not distinguish those, as well as
* deciding both halves whenever the classifier is absent or refuses the text -- hence the cases
diff --git a/chdb-jni/include/chdb.h b/chdb-jni/include/chdb.h
index 1bef187..2eba9e9 100644
--- a/chdb-jni/include/chdb.h
+++ b/chdb-jni/include/chdb.h
@@ -12,7 +12,7 @@ extern "C" {
#define CHDB_EXPORT __attribute__((visibility("default")))
-#define CHDB_VERSION "26.11.0-rc.2"
+#define CHDB_VERSION "26.11.0-rc.3"
/**
* Returns the version of the linked chDB library.
@@ -784,6 +784,31 @@ CHDB_EXPORT uint64_t chdb_result_bytes_written(chdb_result * result);
*/
CHDB_EXPORT const char * chdb_result_error(chdb_result * result);
+/**
+ * Gets the number of columns in the result set, the same for every output
+ * format. With several statements, counts the last result set; for a stream,
+ * each fetched result carries it.
+ * @param result The query result handle
+ * @return Column count; 0 for DDL, INSERT, a failed query or NULL
+ */
+CHDB_EXPORT int chdb_result_column_count(chdb_result * result);
+
+/**
+ * Gets the name of a result column
+ * @param result The query result handle
+ * @param col 0-based column index
+ * @return Column name owned by the result, or NULL if col is out of range
+ */
+CHDB_EXPORT const char * chdb_result_column_name(chdb_result * result, int col);
+
+/**
+ * Gets the ClickHouse type of a result column, e.g. "Nullable(String)"
+ * @param result The query result handle
+ * @param col 0-based column index
+ * @return Type name owned by the result, or NULL if col is out of range
+ */
+CHDB_EXPORT const char * chdb_result_column_type(chdb_result * result, int col);
+
//===--------------------------------------------------------------------===//
// Arrow Integration
//===--------------------------------------------------------------------===//
@@ -1108,6 +1133,46 @@ CHDB_EXPORT chdb_state chdb_classify_query_n(
size_t target_database_len,
chdb_query_analysis_v1 * out_analysis);
+//===--------------------------------------------------------------------===//
+// Connection Settings
+//===--------------------------------------------------------------------===//
+
+/**
+ * Does what `SET key = value` would on this connection only, without SQL.
+ *
+ * Prefer one connection per thread; calls sharing a connection run one at a
+ * time, and per-call parameters never leak between them.
+ *
+ * A setting key goes through SET's constraint checks; NULL resets it.
+ * A param_