From 298c2a81c42b666acd8562664790a8f6f6fac128 Mon Sep 17 00:00:00 2001 From: "Alina (Xi) Li" Date: Tue, 28 Jul 2026 13:15:07 -0700 Subject: [PATCH] ODBC installer fixes - Add installer description to ReadMe - Fix `docs` on Windows to include docs Co-authored-by: justing-bq --- cpp/cmake_modules/DefineOptions.cmake | 2 +- cpp/src/arrow/flight/sql/odbc/CMakeLists.txt | 23 ++++++++------------ cpp/src/arrow/flight/sql/odbc/README.md | 9 ++++++++ 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/cpp/cmake_modules/DefineOptions.cmake b/cpp/cmake_modules/DefineOptions.cmake index 414f186f1802..bfe4485aa912 100644 --- a/cpp/cmake_modules/DefineOptions.cmake +++ b/cpp/cmake_modules/DefineOptions.cmake @@ -329,7 +329,7 @@ takes precedence over ccache if a storage backend is configured" ON) ARROW_FLIGHT) define_option(ARROW_FLIGHT_SQL_ODBC - "Build the Arrow Flight SQL ODBC extension" + "Build the Arrow Flight SQL ODBC driver" OFF DEPENDS ARROW_FLIGHT_SQL diff --git a/cpp/src/arrow/flight/sql/odbc/CMakeLists.txt b/cpp/src/arrow/flight/sql/odbc/CMakeLists.txt index 9e2e7720a94a..181d855fde45 100644 --- a/cpp/src/arrow/flight/sql/odbc/CMakeLists.txt +++ b/cpp/src/arrow/flight/sql/odbc/CMakeLists.txt @@ -173,6 +173,7 @@ if(ARROW_FLIGHT_SQL_ODBC_INSTALLER) set(CPACK_WIX_UI_BANNER "${CMAKE_CURRENT_SOURCE_DIR}/install/windows/arrow-wix-banner.bmp") + set(ODBC_DOC_INSTALL_DIR "doc") else() if(APPLE) set(CPACK_PACKAGE_FILE_NAME @@ -191,13 +192,8 @@ if(ARROW_FLIGHT_SQL_ODBC_INSTALLER) set(ODBC_INSTALL_DIR "arrow-odbc/lib") set(ODBC_DOC_INSTALL_DIR "arrow-odbc/doc") - else() - # Linux - # GH-49595: TODO implement DEB installer - # GH-47977: TODO implement RPM installer - message(STATUS "ODBC_PACKAGE_FORMAT DEB not implemented, see GH-49595") - message(STATUS "ODBC_PACKAGE_FORMAT RPM not implemented, see GH-47977") endif() + # GH-49595: TODO implement DEB installer under `linux-packages` # Install ODBC install(TARGETS arrow_flight_sql_odbc_shared @@ -225,15 +221,15 @@ if(ARROW_FLIGHT_SQL_ODBC_INSTALLER) GROUP_READ WORLD_EXECUTE WORLD_READ) - - # Install documentation files - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../LICENSE.txt" - "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../NOTICE.txt" - "${CMAKE_CURRENT_SOURCE_DIR}/connection-options.md" - DESTINATION "${ODBC_DOC_INSTALL_DIR}" - COMPONENT Docs) endif() + # Install documentation files + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../LICENSE.txt" + "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../NOTICE.txt" + "${CMAKE_CURRENT_SOURCE_DIR}/connection-options.md" + DESTINATION "${ODBC_DOC_INSTALL_DIR}" + COMPONENT Docs) + get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS) set(CPACK_COMPONENTS_ALL "ArrowFlightSQLODBC" "Docs") @@ -250,7 +246,6 @@ if(ARROW_FLIGHT_SQL_ODBC_INSTALLER) # macOS and Linux set(CPACK_GENERATOR "productbuild") endif() - # GH-47877 TODO: create Linux Installer using cpack # Load CPack after all CPACK* variables are set include(CPack) diff --git a/cpp/src/arrow/flight/sql/odbc/README.md b/cpp/src/arrow/flight/sql/odbc/README.md index f863ea851b8a..fb6dd79a2d97 100644 --- a/cpp/src/arrow/flight/sql/odbc/README.md +++ b/cpp/src/arrow/flight/sql/odbc/README.md @@ -144,6 +144,15 @@ After ODBC has been registered, you can run the ODBC tests. It is recommended to .\cpp\build\< release | debug >\< Release | Debug>\arrow-flight-sql-odbc-test.exe ``` +## Installers + +ODBC Windows and macOS installers are uploaded to the CI artifacts for developer use. + +| Operating System | Package Format | +|------------------|----------------| +| Windows | MSI | +| macOS | PKG | + ## Known Limitations - Conversion from timestamp data type with specified time zone value to strings is not supported at the moment. This doesn't impact driver's usage of retrieving timestamp data from Power BI on Windows, and Excel on macOS and Windows. See GH-47504 for more context.