Skip to content

Commit bdaae1f

Browse files
authored
Merge branch 'main' into fix/executor-zero-threads-and-fs-conflict
2 parents 8bee203 + 23a87fa commit bdaae1f

212 files changed

Lines changed: 2263 additions & 1271 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,9 @@ set(PAIMON_SOURCE_DIR ${PROJECT_SOURCE_DIR})
9797
set(PAIMON_BINARY_DIR ${PROJECT_BINARY_DIR})
9898
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules")
9999
set(BUILD_SUPPORT_DIR "${CMAKE_SOURCE_DIR}/build_support")
100-
set(PAIMON_CMAKE_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
101100

102101
include(GNUInstallDirs)
102+
set(PAIMON_CMAKE_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/Paimon")
103103
include(DefineOptions)
104104

105105
if(PAIMON_OPTIONAL_INSTALL)
@@ -473,11 +473,11 @@ write_basic_package_version_file(
473473
474474
configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/PaimonConfig.cmake.in"
475475
"${CMAKE_CURRENT_BINARY_DIR}/PaimonConfig.cmake"
476-
INSTALL_DESTINATION lib/cmake/Paimon)
476+
INSTALL_DESTINATION ${PAIMON_CMAKE_INSTALL_DIR})
477477
478478
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/PaimonConfig.cmake"
479479
"${CMAKE_CURRENT_BINARY_DIR}/PaimonConfigVersion.cmake"
480-
DESTINATION lib/cmake/Paimon)
480+
DESTINATION ${PAIMON_CMAKE_INSTALL_DIR})
481481
482482
config_summary_message()
483483
@@ -497,3 +497,7 @@ add_subdirectory(test/inte)
497497
if(PAIMON_BUILD_BENCHMARKS)
498498
add_subdirectory(benchmark)
499499
endif()
500+
501+
install(EXPORT PaimonTargets
502+
NAMESPACE Paimon::
503+
DESTINATION ${PAIMON_CMAKE_INSTALL_DIR})

PaimonConfig.cmake.in

Lines changed: 3 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -12,134 +12,8 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
# Main library
16-
add_library(paimon_shared SHARED IMPORTED)
17-
set_target_properties(paimon_shared PROPERTIES
18-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon.so"
19-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
20-
)
21-
add_library(paimon_static STATIC IMPORTED)
22-
set_target_properties(paimon_static PROPERTIES
23-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon.a"
24-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
25-
)
15+
@PACKAGE_INIT@
2616

27-
# paimon_parquet_file_format
28-
add_library(paimon_parquet_file_format_shared SHARED IMPORTED)
29-
set_target_properties(paimon_parquet_file_format_shared PROPERTIES
30-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_parquet_file_format.so"
31-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
32-
)
33-
add_library(paimon_parquet_file_format_static STATIC IMPORTED)
34-
set_target_properties(paimon_parquet_file_format_static PROPERTIES
35-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_parquet_file_format.a"
36-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
37-
)
17+
include("${CMAKE_CURRENT_LIST_DIR}/PaimonTargets.cmake")
3818

39-
# paimon_orc_file_format
40-
add_library(paimon_orc_file_format_shared SHARED IMPORTED)
41-
set_target_properties(paimon_orc_file_format_shared PROPERTIES
42-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_orc_file_format.so"
43-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
44-
)
45-
add_library(paimon_orc_file_format_static STATIC IMPORTED)
46-
set_target_properties(paimon_orc_file_format_static PROPERTIES
47-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_orc_file_format.a"
48-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
49-
)
50-
51-
# paimon_local_file_system
52-
add_library(paimon_local_file_system_shared SHARED IMPORTED)
53-
set_target_properties(paimon_local_file_system_shared PROPERTIES
54-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_local_file_system.so"
55-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
56-
)
57-
add_library(paimon_local_file_system_static STATIC IMPORTED)
58-
set_target_properties(paimon_local_file_system_static PROPERTIES
59-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_local_file_system.a"
60-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
61-
)
62-
63-
# paimon_avro_file_format
64-
add_library(paimon_avro_file_format_shared SHARED IMPORTED)
65-
set_target_properties(paimon_avro_file_format_shared PROPERTIES
66-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_avro_file_format.so"
67-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
68-
)
69-
add_library(paimon_avro_file_format_static STATIC IMPORTED)
70-
set_target_properties(paimon_avro_file_format_static PROPERTIES
71-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_avro_file_format.a"
72-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
73-
)
74-
75-
# paimon_blob_file_format
76-
add_library(paimon_blob_file_format_shared SHARED IMPORTED)
77-
set_target_properties(paimon_blob_file_format_shared PROPERTIES
78-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_blob_file_format.so"
79-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
80-
)
81-
add_library(paimon_blob_file_format_static STATIC IMPORTED)
82-
set_target_properties(paimon_blob_file_format_static PROPERTIES
83-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_blob_file_format.a"
84-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
85-
)
86-
87-
# paimon_file_index
88-
add_library(paimon_file_index_shared SHARED IMPORTED)
89-
set_target_properties(paimon_file_index_shared PROPERTIES
90-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_file_index.so"
91-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
92-
)
93-
add_library(paimon_file_index_static STATIC IMPORTED)
94-
set_target_properties(paimon_file_index_static PROPERTIES
95-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_file_index.a"
96-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
97-
)
98-
99-
# paimon_global_index
100-
add_library(paimon_global_index_shared SHARED IMPORTED)
101-
set_target_properties(paimon_global_index_shared PROPERTIES
102-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_global_index.so"
103-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
104-
)
105-
add_library(paimon_global_index_static STATIC IMPORTED)
106-
set_target_properties(paimon_global_index_static PROPERTIES
107-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_global_index.a"
108-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
109-
)
110-
111-
# paimon_jindo_file_system
112-
add_library(paimon_jindo_file_system_shared SHARED IMPORTED)
113-
set_target_properties(paimon_jindo_file_system_shared PROPERTIES
114-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_jindo_file_system.so"
115-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
116-
)
117-
add_library(paimon_jindo_file_system_static STATIC IMPORTED)
118-
set_target_properties(paimon_jindo_file_system_static PROPERTIES
119-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_jindo_file_system.a"
120-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
121-
)
122-
123-
# paimon_lance_file_format
124-
add_library(paimon_lance_file_format_shared SHARED IMPORTED)
125-
set_target_properties(paimon_lance_file_format_shared PROPERTIES
126-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_lance_file_format.so"
127-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
128-
)
129-
add_library(paimon_lance_file_format_static STATIC IMPORTED)
130-
set_target_properties(paimon_lance_file_format_static PROPERTIES
131-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_lance_file_format.a"
132-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
133-
)
134-
135-
# paimon_lumina_index
136-
add_library(paimon_lumina_index_shared SHARED IMPORTED)
137-
set_target_properties(paimon_lumina_index_shared PROPERTIES
138-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_lumina_index.so"
139-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
140-
)
141-
add_library(paimon_lumina_index_static STATIC IMPORTED)
142-
set_target_properties(paimon_lumina_index_static PROPERTIES
143-
IMPORTED_LOCATION "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libpaimon_lumina_index.a"
144-
INTERFACE_INCLUDE_DIRECTORIES "@CMAKE_INSTALL_PREFIX@/include"
145-
)
19+
check_required_components(Paimon)

build_support/lsan-suppressions.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,10 @@
1717

1818
# False positive from atexit() registration in libc
1919
leak:*__new_exitfn*
20+
21+
# Lance's Rust/Tokio runtime can leave worker/TLS allocations alive at process
22+
# exit. Suppress these third-party runtime shutdown leftovers without hiding
23+
# all leaks from liblance_lib_rc.so.
24+
leak:tokio::runtime::blocking::pool::spawn_blocking
25+
leak:tokio::runtime::scheduler::multi_thread::worker::create
26+
leak:std::thread::Builder::spawn_unchecked

build_support/ubsan-suppressions.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,7 @@
1414
# KIND, either express or implied. See the License for the
1515
# specific language governing permissions and limitations
1616
# under the License.
17+
18+
# Arrow's ISO8601 string-to-timestamp parser intentionally reaches the int64
19+
# nanosecond boundary for values such as 1677-09-21 00:12:43.145224192.
20+
signed-integer-overflow:std::chrono::__duration_cast_impl

ci/scripts/build_paimon.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ source_dir=${1}
2020
enable_sanitizer=${2:-false}
2121
check_clang_tidy=${3:-false}
2222
build_type=${4:-Debug}
23-
build_dir=${1}/build
23+
build_dir="${source_dir}/build"
2424

2525
# Display ccache status if available
2626
if command -v ccache &> /dev/null; then
@@ -31,8 +31,8 @@ else
3131
echo "=== ccache not found, compiling without cache acceleration ==="
3232
fi
3333

34-
mkdir ${build_dir}
35-
pushd ${build_dir}
34+
mkdir -p "${build_dir}"
35+
pushd "${build_dir}"
3636

3737
ENABLE_LUMINA="ON"
3838
ENABLE_LANCE="ON"
@@ -62,9 +62,9 @@ if [[ "${enable_sanitizer}" == "true" ]]; then
6262
)
6363
fi
6464

65-
cmake "${CMAKE_ARGS[@]}" ${source_dir}
66-
cmake --build . -- -j$(nproc)
67-
ctest --output-on-failure -j $(nproc)
65+
cmake "${CMAKE_ARGS[@]}" "${source_dir}"
66+
cmake --build . -- -j "$(nproc)"
67+
ctest --output-on-failure -j "$(nproc)"
6868

6969
if [[ "${check_clang_tidy}" == "true" ]]; then
7070
cmake --build . --target check-clang-tidy
@@ -78,4 +78,4 @@ fi
7878

7979
popd
8080

81-
rm -rf ${build_dir}
81+
rm -rf "${build_dir}"

cmake_modules/BuildUtils.cmake

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ function(add_paimon_lib LIB_NAME)
8989
# Generate a single "objlib" from all C++ modules and link
9090
# that "objlib" into each library kind, to avoid compiling twice
9191
add_library(${LIB_NAME}_objlib OBJECT ${ARG_SOURCES})
92+
target_link_libraries(${LIB_NAME}_objlib
93+
PRIVATE "$<BUILD_INTERFACE:paimon_sanitizer_flags>")
9294
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
9395
target_compile_options(${LIB_NAME}_objlib PRIVATE -Wno-global-constructors)
9496
endif()
@@ -177,16 +179,16 @@ function(add_paimon_lib LIB_NAME)
177179
PUBLIC "$<BUILD_INTERFACE:paimon_sanitizer_flags>")
178180

179181
if(NOT APPLE)
180-
target_link_options(${LIB_NAME}_shared
181-
PRIVATE
182-
-Wl,--exclude-libs,ALL
183-
-Wl,-Bsymbolic
184-
-Wl,-z,defs
185-
-Wl,--gc-sections)
182+
set(SHARED_LINK_OPTIONS -Wl,--exclude-libs,ALL -Wl,-Bsymbolic
183+
-Wl,--gc-sections)
184+
if(NOT PAIMON_USE_ASAN AND NOT PAIMON_USE_UBSAN)
185+
list(APPEND SHARED_LINK_OPTIONS -Wl,-z,defs)
186+
endif()
187+
target_link_options(${LIB_NAME}_shared PRIVATE ${SHARED_LINK_OPTIONS})
186188
endif()
187189

188190
install(TARGETS ${LIB_NAME}_shared ${INSTALL_IS_OPTIONAL}
189-
EXPORT ${LIB_NAME}_targets
191+
EXPORT PaimonTargets
190192
RUNTIME DESTINATION ${RUNTIME_INSTALL_DIR}
191193
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
192194
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
@@ -233,7 +235,7 @@ function(add_paimon_lib LIB_NAME)
233235
PUBLIC "$<BUILD_INTERFACE:paimon_sanitizer_flags>")
234236

235237
install(TARGETS ${LIB_NAME}_static ${INSTALL_IS_OPTIONAL}
236-
EXPORT ${LIB_NAME}_targets
238+
EXPORT PaimonTargets
237239
RUNTIME DESTINATION ${RUNTIME_INSTALL_DIR}
238240
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
239241
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}

cmake_modules/san-config.cmake

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ endif()
2525

2626
if(PAIMON_USE_UBSAN)
2727
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
28-
target_compile_options(paimon_sanitizer_flags INTERFACE -fsanitize=undefined
29-
-fno-omit-frame-pointer)
28+
target_compile_options(paimon_sanitizer_flags
29+
INTERFACE -fsanitize=undefined -fno-sanitize=vptr
30+
-fno-omit-frame-pointer)
3031
target_link_options(paimon_sanitizer_flags INTERFACE -fsanitize=undefined)
3132
message(STATUS "Undefined Behavior Sanitizer enabled")
3233
else()

docs/source/build_system.rst

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ for data format and file system.
4949
find_package(Paimon REQUIRED)
5050
5151
add_executable(my_example my_example.cc)
52-
target_link_libraries(my_example PRIVATE arrow_shared
53-
paimon_shared
54-
paimon_parquet_file_format_shared
55-
paimon_local_file_system_shared)
52+
target_link_libraries(my_example PRIVATE Arrow::arrow_shared
53+
Paimon::paimon_shared
54+
Paimon::paimon_parquet_file_format_shared
55+
Paimon::paimon_local_file_system_shared)
5656
5757
Available variables and targets
5858
-------------------------------
@@ -61,10 +61,10 @@ The directive ``find_package(Paimon REQUIRED)`` instructs CMake to locate a
6161
Paimon C++ installation on your system. If successful, it sets ``Paimon_FOUND``
6262
to true if the Paimon C++ libraries were found.
6363

64-
It also defines the following linkable targets (plain strings, not variables):
64+
It also defines the following linkable imported targets:
6565

66-
* ``paimon_shared`` links to the Paimon shared libraries
67-
* ``paimon_static`` links to the Paimon static libraries
66+
* ``Paimon::paimon_shared`` links to the Paimon shared libraries
67+
* ``Paimon::paimon_static`` links to the Paimon static libraries
6868

6969
In most cases, it is recommended to use the Paimon shared libraries.
7070

@@ -75,21 +75,21 @@ Paimon provides a set of built-in optional plugins that you can link to as neede
7575

7676
- File format plugins:
7777

78-
- ``paimon_parquet_file_format_shared`` / ``paimon_parquet_file_format_static``
79-
- ``paimon_orc_file_format_shared`` / ``paimon_orc_file_format_static``
80-
- ``paimon_avro_file_format_shared`` / ``paimon_avro_file_format_static``
81-
- ``paimon_blob_file_format_shared`` / ``paimon_blob_file_format_static``
82-
- ``paimon_lance_file_format_shared`` / ``paimon_lance_file_format_static``
78+
- ``Paimon::paimon_parquet_file_format_shared`` / ``Paimon::paimon_parquet_file_format_static``
79+
- ``Paimon::paimon_orc_file_format_shared`` / ``Paimon::paimon_orc_file_format_static``
80+
- ``Paimon::paimon_avro_file_format_shared`` / ``Paimon::paimon_avro_file_format_static``
81+
- ``Paimon::paimon_blob_file_format_shared`` / ``Paimon::paimon_blob_file_format_static``
82+
- ``Paimon::paimon_lance_file_format_shared`` / ``Paimon::paimon_lance_file_format_static``
8383

8484
- File system plugins:
8585

86-
- ``paimon_local_file_system_shared`` / ``paimon_local_file_system_static``
87-
- ``paimon_jindo_file_system_shared`` / ``paimon_jindo_file_system_static``
86+
- ``Paimon::paimon_local_file_system_shared`` / ``Paimon::paimon_local_file_system_static``
87+
- ``Paimon::paimon_jindo_file_system_shared`` / ``Paimon::paimon_jindo_file_system_static``
8888

8989
- Index plugins:
9090

91-
- ``paimon_file_index_shared`` / ``paimon_file_index_static``
92-
- ``paimon_lumina_index_shared`` / ``paimon_lumina_index_static``
91+
- ``Paimon::paimon_file_index_shared`` / ``Paimon::paimon_file_index_static``
92+
- ``Paimon::paimon_lumina_index_shared`` / ``Paimon::paimon_lumina_index_static``
9393

9494
.. note::
9595

examples/CMakeLists.txt

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,18 @@ find_package(Paimon CONFIG REQUIRED)
2424
add_executable(read_write_demo read_write_demo.cpp)
2525
add_executable(clean_demo clean_demo.cpp)
2626

27-
include_directories(${PAIMON_INCLUDE_DIRS})
28-
2927
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-as-needed ${CMAKE_EXE_LINKER_FLAGS}")
3028

3129
target_link_libraries(read_write_demo
32-
PRIVATE arrow_shared
33-
paimon_shared
34-
paimon_parquet_file_format_shared
35-
paimon_orc_file_format_shared
36-
paimon_local_file_system_shared)
30+
PRIVATE Arrow::arrow_shared
31+
Paimon::paimon_shared
32+
Paimon::paimon_parquet_file_format_shared
33+
Paimon::paimon_orc_file_format_shared
34+
Paimon::paimon_local_file_system_shared)
3735

3836
target_link_libraries(clean_demo
39-
PRIVATE arrow_shared
40-
paimon_shared
41-
paimon_parquet_file_format_shared
42-
paimon_orc_file_format_shared
43-
paimon_local_file_system_shared)
37+
PRIVATE Arrow::arrow_shared
38+
Paimon::paimon_shared
39+
Paimon::paimon_parquet_file_format_shared
40+
Paimon::paimon_orc_file_format_shared
41+
Paimon::paimon_local_file_system_shared)

include/paimon/catalog/catalog.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,9 @@ class PAIMON_EXPORT Catalog {
169169
/// @note This does not check whether the table actually exists.
170170
///
171171
/// @param identifier The table identifier containing database and table name.
172-
/// @return A string representing the expected location of the table.
173-
virtual std::string GetTableLocation(const Identifier& identifier) const = 0;
172+
/// @return A result containing the expected location of the table, or an error status on
173+
/// failure.
174+
virtual Result<std::string> GetTableLocation(const Identifier& identifier) const = 0;
174175

175176
/// Returns the root path of the catalog.
176177
///

0 commit comments

Comments
 (0)