Skip to content

Appender rework #295

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@ endif()

file(GLOB_RECURSE JAVA_SRC_FILES src/main/java/org/duckdb/*.java)
file(GLOB_RECURSE JAVA_TEST_FILES src/test/java/org/duckdb/*.java)
set(CMAKE_JAVA_COMPILE_FLAGS -encoding utf-8 -g)
set(CMAKE_JAVA_COMPILE_FLAGS -encoding utf-8 -g -Xlint:all)

add_jar(duckdb_jdbc ${JAVA_SRC_FILES} META-INF/services/java.sql.Driver
MANIFEST META-INF/MANIFEST.MF
Expand All @@ -570,6 +570,12 @@ else()
endif()

add_library(duckdb_java SHARED
src/jni/bindings_appender.cpp
src/jni/bindings_common.cpp
src/jni/bindings_data_chunk.cpp
src/jni/bindings_logical_type.cpp
src/jni/bindings_validity.cpp
src/jni/bindings_vector.cpp
src/jni/config.cpp
src/jni/duckdb_java.cpp
src/jni/functions.cpp
Expand Down
8 changes: 7 additions & 1 deletion CMakeLists.txt.in
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ endif()

file(GLOB_RECURSE JAVA_SRC_FILES src/main/java/org/duckdb/*.java)
file(GLOB_RECURSE JAVA_TEST_FILES src/test/java/org/duckdb/*.java)
set(CMAKE_JAVA_COMPILE_FLAGS -encoding utf-8 -g)
set(CMAKE_JAVA_COMPILE_FLAGS -encoding utf-8 -g -Xlint:all)

add_jar(duckdb_jdbc ${JAVA_SRC_FILES} META-INF/services/java.sql.Driver
MANIFEST META-INF/MANIFEST.MF
Expand All @@ -100,6 +100,12 @@ else()
endif()

add_library(duckdb_java SHARED
src/jni/bindings_appender.cpp
src/jni/bindings_common.cpp
src/jni/bindings_data_chunk.cpp
src/jni/bindings_logical_type.cpp
src/jni/bindings_validity.cpp
src/jni/bindings_vector.cpp
src/jni/config.cpp
src/jni/duckdb_java.cpp
src/jni/functions.cpp
Expand Down
44 changes: 44 additions & 0 deletions duckdb_java.def
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,50 @@ Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1set_1catalog
Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1set_1schema
Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1startup

Java_org_duckdb_DuckDBBindings_duckdb_1vector_1size
Java_org_duckdb_DuckDBBindings_duckdb_1create_1logical_1type
Java_org_duckdb_DuckDBBindings_duckdb_1get_1type_1id
Java_org_duckdb_DuckDBBindings_duckdb_1decimal_1width
Java_org_duckdb_DuckDBBindings_duckdb_1decimal_1scale
Java_org_duckdb_DuckDBBindings_duckdb_1decimal_1internal_1type
Java_org_duckdb_DuckDBBindings_duckdb_1create_1list_1type
Java_org_duckdb_DuckDBBindings_duckdb_1create_1array_1type
Java_org_duckdb_DuckDBBindings_duckdb_1create_1struct_1type
Java_org_duckdb_DuckDBBindings_duckdb_1struct_1type_1child_1count
Java_org_duckdb_DuckDBBindings_duckdb_1array_1type_1array_1size
Java_org_duckdb_DuckDBBindings_duckdb_1destroy_1logical_1type
Java_org_duckdb_DuckDBBindings_duckdb_1create_1vector
Java_org_duckdb_DuckDBBindings_duckdb_1destroy_1vector
Java_org_duckdb_DuckDBBindings_duckdb_1vector_1get_1column_1type
Java_org_duckdb_DuckDBBindings_duckdb_1vector_1get_1data
Java_org_duckdb_DuckDBBindings_duckdb_1vector_1get_1validity
Java_org_duckdb_DuckDBBindings_duckdb_1vector_1ensure_1validity_1writable
Java_org_duckdb_DuckDBBindings_duckdb_1vector_1assign_1string_1element_1len
Java_org_duckdb_DuckDBBindings_duckdb_1validity_1row_1is_1valid
Java_org_duckdb_DuckDBBindings_duckdb_1validity_1set_1row_1validity
Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1get_1child
Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1get_1size
Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1set_1size
Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1reserve
Java_org_duckdb_DuckDBBindings_duckdb_1struct_1vector_1get_1child
Java_org_duckdb_DuckDBBindings_duckdb_1array_1vector_1get_1child
Java_org_duckdb_DuckDBBindings_duckdb_1create_1data_1chunk
Java_org_duckdb_DuckDBBindings_duckdb_1destroy_1data_1chunk
Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1reset
Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1get_1column_1count
Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1get_1vector
Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1get_1size
Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1set_1size
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1create_1ext
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1error
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1flush
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1close
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1destroy
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1column_1count
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1column_1type
Java_org_duckdb_DuckDBBindings_duckdb_1append_1data_1chunk
Java_org_duckdb_DuckDBBindings_duckdb_1append_1default_1to_1chunk

duckdb_adbc_init
duckdb_add_aggregate_function_to_set
duckdb_add_replacement_scan
Expand Down
44 changes: 44 additions & 0 deletions duckdb_java.exp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,50 @@ _Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1set_1catalog
_Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1set_1schema
_Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1startup

_Java_org_duckdb_DuckDBBindings_duckdb_1vector_1size
_Java_org_duckdb_DuckDBBindings_duckdb_1create_1logical_1type
_Java_org_duckdb_DuckDBBindings_duckdb_1get_1type_1id
_Java_org_duckdb_DuckDBBindings_duckdb_1decimal_1width
_Java_org_duckdb_DuckDBBindings_duckdb_1decimal_1scale
_Java_org_duckdb_DuckDBBindings_duckdb_1decimal_1internal_1type
_Java_org_duckdb_DuckDBBindings_duckdb_1create_1list_1type
_Java_org_duckdb_DuckDBBindings_duckdb_1create_1array_1type
_Java_org_duckdb_DuckDBBindings_duckdb_1create_1struct_1type
_Java_org_duckdb_DuckDBBindings_duckdb_1struct_1type_1child_1count
_Java_org_duckdb_DuckDBBindings_duckdb_1array_1type_1array_1size
_Java_org_duckdb_DuckDBBindings_duckdb_1destroy_1logical_1type
_Java_org_duckdb_DuckDBBindings_duckdb_1create_1vector
_Java_org_duckdb_DuckDBBindings_duckdb_1destroy_1vector
_Java_org_duckdb_DuckDBBindings_duckdb_1vector_1get_1column_1type
_Java_org_duckdb_DuckDBBindings_duckdb_1vector_1get_1data
_Java_org_duckdb_DuckDBBindings_duckdb_1vector_1get_1validity
_Java_org_duckdb_DuckDBBindings_duckdb_1vector_1ensure_1validity_1writable
_Java_org_duckdb_DuckDBBindings_duckdb_1vector_1assign_1string_1element_1len
_Java_org_duckdb_DuckDBBindings_duckdb_1validity_1row_1is_1valid
_Java_org_duckdb_DuckDBBindings_duckdb_1validity_1set_1row_1validity
_Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1get_1child
_Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1get_1size
_Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1set_1size
_Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1reserve
_Java_org_duckdb_DuckDBBindings_duckdb_1struct_1vector_1get_1child
_Java_org_duckdb_DuckDBBindings_duckdb_1array_1vector_1get_1child
_Java_org_duckdb_DuckDBBindings_duckdb_1create_1data_1chunk
_Java_org_duckdb_DuckDBBindings_duckdb_1destroy_1data_1chunk
_Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1reset
_Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1get_1column_1count
_Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1get_1vector
_Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1get_1size
_Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1set_1size
_Java_org_duckdb_DuckDBBindings_duckdb_1appender_1create_1ext
_Java_org_duckdb_DuckDBBindings_duckdb_1appender_1error
_Java_org_duckdb_DuckDBBindings_duckdb_1appender_1flush
_Java_org_duckdb_DuckDBBindings_duckdb_1appender_1close
_Java_org_duckdb_DuckDBBindings_duckdb_1appender_1destroy
_Java_org_duckdb_DuckDBBindings_duckdb_1appender_1column_1count
_Java_org_duckdb_DuckDBBindings_duckdb_1appender_1column_1type
_Java_org_duckdb_DuckDBBindings_duckdb_1append_1data_1chunk
_Java_org_duckdb_DuckDBBindings_duckdb_1append_1default_1to_1chunk

_duckdb_adbc_init
_duckdb_add_aggregate_function_to_set
_duckdb_add_replacement_scan
Expand Down
44 changes: 44 additions & 0 deletions duckdb_java.map
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,50 @@ DUCKDB_JAVA {
Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1set_1schema;
Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1startup;

Java_org_duckdb_DuckDBBindings_duckdb_1vector_1size;
Java_org_duckdb_DuckDBBindings_duckdb_1create_1logical_1type;
Java_org_duckdb_DuckDBBindings_duckdb_1get_1type_1id;
Java_org_duckdb_DuckDBBindings_duckdb_1decimal_1width;
Java_org_duckdb_DuckDBBindings_duckdb_1decimal_1scale;
Java_org_duckdb_DuckDBBindings_duckdb_1decimal_1internal_1type;
Java_org_duckdb_DuckDBBindings_duckdb_1create_1list_1type;
Java_org_duckdb_DuckDBBindings_duckdb_1create_1array_1type;
Java_org_duckdb_DuckDBBindings_duckdb_1create_1struct_1type;
Java_org_duckdb_DuckDBBindings_duckdb_1struct_1type_1child_1count;
Java_org_duckdb_DuckDBBindings_duckdb_1array_1type_1array_1size;
Java_org_duckdb_DuckDBBindings_duckdb_1destroy_1logical_1type;
Java_org_duckdb_DuckDBBindings_duckdb_1create_1vector;
Java_org_duckdb_DuckDBBindings_duckdb_1destroy_1vector;
Java_org_duckdb_DuckDBBindings_duckdb_1vector_1get_1column_1type;
Java_org_duckdb_DuckDBBindings_duckdb_1vector_1get_1data;
Java_org_duckdb_DuckDBBindings_duckdb_1vector_1get_1validity;
Java_org_duckdb_DuckDBBindings_duckdb_1vector_1ensure_1validity_1writable;
Java_org_duckdb_DuckDBBindings_duckdb_1vector_1assign_1string_1element_1len;
Java_org_duckdb_DuckDBBindings_duckdb_1validity_1row_1is_1valid;
Java_org_duckdb_DuckDBBindings_duckdb_1validity_1set_1row_1validity;
Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1get_1child;
Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1get_1size;
Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1set_1size;
Java_org_duckdb_DuckDBBindings_duckdb_1list_1vector_1reserve;
Java_org_duckdb_DuckDBBindings_duckdb_1struct_1vector_1get_1child;
Java_org_duckdb_DuckDBBindings_duckdb_1array_1vector_1get_1child;
Java_org_duckdb_DuckDBBindings_duckdb_1create_1data_1chunk;
Java_org_duckdb_DuckDBBindings_duckdb_1destroy_1data_1chunk;
Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1reset;
Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1get_1column_1count;
Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1get_1vector;
Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1get_1size;
Java_org_duckdb_DuckDBBindings_duckdb_1data_1chunk_1set_1size;
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1create_1ext;
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1error;
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1flush;
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1close;
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1destroy;
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1column_1count;
Java_org_duckdb_DuckDBBindings_duckdb_1appender_1column_1type;
Java_org_duckdb_DuckDBBindings_duckdb_1append_1data_1chunk;
Java_org_duckdb_DuckDBBindings_duckdb_1append_1default_1to_1chunk;

duckdb_adbc_init;
duckdb_add_aggregate_function_to_set;
duckdb_add_replacement_scan;
Expand Down
11 changes: 11 additions & 0 deletions src/jni/bindings.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#pragma once

extern "C" {
#include "duckdb.h"
}

#include "org_duckdb_DuckDBBindings.h"

duckdb_logical_type logical_type_buf_to_logical_type(JNIEnv *env, jobject logical_type_buf);

duckdb_data_chunk chunk_buf_to_chunk(JNIEnv *env, jobject chunk_buf);
Loading
Loading