Skip to content

Commit 552ac01

Browse files
mrdrivingduckcodex
andcommitted
feat: support Paimon scalar index scans
Bundle the Paimon global index components so predicate planning can load BTree index factories and prune candidate splits for indexed tables. Add a fixture with overlapping candidate ranges to exercise matching, range, projection, and empty index probes through the existing scan path. Keep bundled dependency builds from pulling in unrelated test targets during the extension build. Co-authored-by: GPT-5.5 <codex@users.noreply.github.com>
1 parent 28edbe4 commit 552ac01

27 files changed

Lines changed: 199 additions & 1 deletion

β€ŽCMakeLists.txtβ€Ž

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ file(MAKE_DIRECTORY ${PAIMON_CPP_INCLUDE})
3838
set(PAIMON_CPP_PATCHES
3939
${CMAKE_CURRENT_SOURCE_DIR}/patches/paimon-cpp-install-arrow-headers.patch
4040
${CMAKE_CURRENT_SOURCE_DIR}/patches/paimon-cpp-macos-ndebug-for-checked-cast.patch
41-
${CMAKE_CURRENT_SOURCE_DIR}/patches/paimon-cpp-disable-global-constructors-warning.patch)
41+
${CMAKE_CURRENT_SOURCE_DIR}/patches/paimon-cpp-disable-global-constructors-warning.patch
42+
${CMAKE_CURRENT_SOURCE_DIR}/patches/paimon-cpp-disable-re2-tests.patch)
4243

4344
# Build patch command: apply each patch idempotently
4445
set(PAIMON_CPP_PATCH_SCRIPT "")
@@ -68,6 +69,8 @@ ExternalProject_Add(paimon_cpp_ep
6869
-DPAIMON_ENABLE_LUCENE=OFF
6970
BUILD_BYPRODUCTS
7071
${PAIMON_CPP_LIB}/libpaimon${CMAKE_SHARED_LIBRARY_SUFFIX}
72+
${PAIMON_CPP_LIB}/libpaimon_file_index${CMAKE_SHARED_LIBRARY_SUFFIX}
73+
${PAIMON_CPP_LIB}/libpaimon_global_index${CMAKE_SHARED_LIBRARY_SUFFIX}
7174
${PAIMON_CPP_LIB}/libpaimon_local_file_system${CMAKE_SHARED_LIBRARY_SUFFIX}
7275
${PAIMON_CPP_LIB}/libpaimon_jindo_file_system${CMAKE_SHARED_LIBRARY_SUFFIX}
7376
${PAIMON_CPP_LIB}/${JINDOSDK_C_INSTALLED_NAME}
@@ -120,6 +123,8 @@ add_dependencies(${TARGET_NAME}_loadable_extension paimon_cpp_ep)
120123
set(PAIMON_CPP_LIBS
121124
${PAIMON_CPP_LIB}/libpaimon${CMAKE_SHARED_LIBRARY_SUFFIX}
122125
$<$<NOT:$<PLATFORM_ID:Darwin>>:-Wl,--no-as-needed>
126+
${PAIMON_CPP_LIB}/libpaimon_file_index${CMAKE_SHARED_LIBRARY_SUFFIX}
127+
${PAIMON_CPP_LIB}/libpaimon_global_index${CMAKE_SHARED_LIBRARY_SUFFIX}
123128
${PAIMON_CPP_LIB}/libpaimon_local_file_system${CMAKE_SHARED_LIBRARY_SUFFIX}
124129
${PAIMON_CPP_LIB}/libpaimon_jindo_file_system${CMAKE_SHARED_LIBRARY_SUFFIX}
125130
${PAIMON_CPP_LIB}/${JINDOSDK_C_INSTALLED_NAME}
@@ -143,6 +148,8 @@ endif()
143148
# Bundle paimon-cpp runtime dependencies next to paimon.duckdb_extension.
144149
set(PAIMON_CPP_RUNTIME_BUNDLE_LIBS
145150
${PAIMON_CPP_LIB}/libpaimon${CMAKE_SHARED_LIBRARY_SUFFIX}
151+
${PAIMON_CPP_LIB}/libpaimon_file_index${CMAKE_SHARED_LIBRARY_SUFFIX}
152+
${PAIMON_CPP_LIB}/libpaimon_global_index${CMAKE_SHARED_LIBRARY_SUFFIX}
146153
${PAIMON_CPP_LIB}/libpaimon_local_file_system${CMAKE_SHARED_LIBRARY_SUFFIX}
147154
${PAIMON_CPP_LIB}/libpaimon_jindo_file_system${CMAKE_SHARED_LIBRARY_SUFFIX}
148155
${PAIMON_CPP_LIB}/${JINDOSDK_C_RUNTIME_NAME}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
Β (0)