Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
95a3ed4
GH-48965: [Python][C++] Compare unique_ptr for CFlightResult or CFlig…
raulcd Jan 26, 2026
8010794
GH-48924: [C++][CI] Fix pre-buffering issues in IPC file reader (#48925)
pitrou Jan 26, 2026
5272a68
GH-48966: [C++] Fix cookie duplication in the Flight SQL ODBC driver …
jmao-denver Jan 27, 2026
cb61dfe
GH-48691: [C++][Parquet] Write serializer may crash if the value buff…
boneanxs Jan 27, 2026
790ed2c
GH-48947 [CI][Python] Install pymanager.msi instead of pymanager.msix…
raulcd Jan 27, 2026
685873e
GH-48990: [Ruby] Add support for writing date arrays (#48991)
kou Jan 27, 2026
b85f20b
GH-48992: [Ruby] Add support for writing large UTF-8 array (#48993)
kou Jan 27, 2026
eb1525e
GH-48949: [C++][Parquet] Add Result versions for parquet::arrow::File…
fenfeng9 Jan 27, 2026
a7343ed
GH-48985: [GLib][Ruby] Fix GC problems in node options and expression…
kou Jan 27, 2026
515f724
GH-47692: [CI][Python] Do not fallback to return 404 if wheel is foun…
raulcd Jan 27, 2026
de06a52
GH-48912: [R] Configure C++20 in conda R on continuous benchmarking (…
thisisnic Jan 27, 2026
0d0e068
GH-36889: [C++][Python] Fix duplicate CSV header when first batch is …
rynewang Jan 27, 2026
5a71d2a
GH-48932: [C++][Packaging][FlightRPC] Fix `rsync` build error ODBC Ni…
alinaliBQ Jan 28, 2026
7540ad8
GH-48951: [Docs] Add documentation relating to AI tooling (#48952)
thisisnic Jan 28, 2026
939dd95
GH-49029: [Doc] Run sphinx-build in parallel (#49026)
pitrou Jan 28, 2026
5fef228
GH-33450: [C++] Remove GlobalForkSafeMutex (#49033)
pitrou Jan 28, 2026
4ea567c
GH-35437: [C++] Remove obsolete TODO about DictionaryArray const& ret…
HyukjinKwon Jan 28, 2026
ec827d6
GH-48586: [Python][CI] Upload artifact to python-sdist job (#49008)
raulcd Jan 28, 2026
d2fcaa6
MINOR: [R] Add 22.0.0.1 to compatiblity matrix (#49039)
thisisnic Jan 28, 2026
811a273
GH-48961: [Docs][Python] Doctest fails on pandas 3.0 (#48969)
tadeja Jan 28, 2026
0e9e32f
GH-49037: [Benchmarking] Install R from non-conda source for benchmar…
thisisnic Jan 28, 2026
1880d3a
GH-49042: [C++] Remove mimalloc patch (#49041)
pitrou Jan 28, 2026
debc30c
GH-49024: [CI] Update Debian version in `.env` (#49032)
pitrou Jan 28, 2026
5d3014a
GH-49027: [Ruby] Add support for writing time arrays (#49028)
kou Jan 28, 2026
f797801
GH-49030: [Ruby] Add support for writing fixed size binary array (#49…
kou Jan 28, 2026
08175e5
GH-48866: [C++][Gandiva] Truncate subseconds beyond milliseconds in `…
akravchukdremio Jan 29, 2026
3384596
GH-48673: [C++] Fix ToStringWithoutContextLines to check for :\d+ pat…
HyukjinKwon Jan 29, 2026
86b860f
GH-49044: [CI][Python] Fix test_download_tzdata_on_windows by adding …
rok Jan 29, 2026
222fac7
GH-48983: [Packaging][Python] Build wheel from sdist using build and …
raulcd Jan 29, 2026
3e6182a
GH-49059: [C++] Fix issues found by OSS-Fuzz in IPC reader (#49060)
pitrou Jan 29, 2026
aae5840
GH-49055: [Ruby] Add support for writing decimal128/256 arrays (#49056)
kou Jan 30, 2026
d510b10
GH-49053: [Ruby] Add support for writing timestamp array (#49054)
kou Jan 30, 2026
12cdb09
GH-28859: [Doc][Python] Use only code-block directive and set up doct…
AlenkaF Jan 30, 2026
8a77885
GH-49065: [C++] Remove unnecessary copies of shared_ptr in Type::BOOL…
HyukjinKwon Jan 30, 2026
e40efd8
GH-48159 [C++][Gandiva] Projector make is significantly slower after …
lriggs Jan 30, 2026
adef2ef
GH-49043: [C++][FS][Azure] Avoid bugs caused by empty first page(s) f…
Tom-Newton Jan 30, 2026
85c18a0
GH-49034 [C++][Gandiva] Fix binary_string to not trigger error for nu…
lriggs Jan 30, 2026
9106671
GH-48980: [C++] Use COMPILE_OPTIONS instead of deprecated COMPILE_FLA…
HyukjinKwon Jan 30, 2026
c6090ed
GH-49069: [C++] Share Trie instances across CSV value decoders (#49070)
HyukjinKwon Jan 30, 2026
5afdf0a
GH-49076: [CI] Update vcpkg baseline to newer version (#49062)
raulcd Jan 31, 2026
acb6288
GH-49074: [Ruby] Add support for writing interval arrays (#49075)
kou Jan 31, 2026
384ea25
GH-49071: [Ruby] Add support for writing list and large list arrays (…
kou Jan 31, 2026
235841d
GH-49087 [CI][Packaging][Gandiva] Add support for LLVM 15 or earlier …
lriggs Jan 31, 2026
15b7494
GH-49100: [Docs] Broken link to Swift page in implementations.rst (#4…
chilin0525 Jan 31, 2026
dbca958
GH-49096: [Ruby] Add support for writing struct array (#49097)
kou Feb 2, 2026
93c4e00
GH-49093: [Ruby] Add support for writing duration array (#49094)
kou Feb 2, 2026
3a1cb86
GH-49098: [Packaging][deb] Add missing libarrow-cuda-glib-doc (#49099)
kou Feb 2, 2026
699473f
GH-48764: [C++] Update xsimd (#48765)
AntoinePrv Feb 2, 2026
644ec57
GH-46008: [Python][Benchmarking] Remove unused asv benchmarking files…
raulcd Feb 2, 2026
012fd17
GH-49108: [Python] SparseCOOTensor.__repr__ missing f-string prefix (…
chilin0525 Feb 2, 2026
3b9d90c
GH-49083: [CI][Python] Remove dask-contrib/dask-expr from the nightly…
AlenkaF Feb 3, 2026
262e4e1
GH-49117: [Ruby] Add support for writing union arrays (#49118)
kou Feb 3, 2026
db349f1
GH-49119: [Ruby] Add support for writing map array (#49120)
kou Feb 3, 2026
7532327
GH-48922: [C++] Support Status-returning callables in Result::Map (#4…
abhishek593 Feb 3, 2026
c0d5a59
GH-49003: [C++] Don't consider `out_of_range` an error in float parsi…
Alvaro-Kothe Feb 3, 2026
7dacbd0
GH-48941: [C++] Generate proper UTF-8 strings in JSON test utilities …
HyukjinKwon Feb 3, 2026
bfc698e
GH-49067: [R] Disable GCS on macos (#49068)
jonkeane Feb 3, 2026
d2315fe
GH-49115: [CI][Packaging][Python] Update vcpkg baseline for our wheel…
raulcd Feb 4, 2026
961258d
GH-48954: [C++] Add test for null-type dictionary sorting and clarify…
HyukjinKwon Feb 4, 2026
2d447c4
GH-36193: [R] arm64 binaries for R (#48574)
thisisnic Feb 4, 2026
33f1ea5
GH-48397: [R] Update docs on how to get our libarrow builds (#48995)
thisisnic Feb 4, 2026
e37c516
GH-49104: [C++] Fix Segfault in SparseCSFIndex::Equals with mismatche…
AliRana30 Feb 4, 2026
f895512
MINOR: [Docs] Add links to AI-generated code guidance (#49131)
thisisnic Feb 4, 2026
f0de008
MINOR: [R] Add new vignette to pkgdown config (#49145)
thisisnic Feb 4, 2026
1cd1841
GH-49150: [Doc][CI][Python] Doctests failing on rst files due to pand…
rok Feb 5, 2026
ef5854a
GH-41990: [C++] Fix AzureFileSystem compilation on Windows (#48971)
nateprewitt Feb 5, 2026
6a2d09b
GH-49138: [Packaging][Python] Remove nightly cython install from many…
AlenkaF Feb 5, 2026
49423f8
GH-33459: [C++][Python] Support step >= 1 in list_slice kernel (#48769)
HyukjinKwon Feb 5, 2026
d31644a
GH-41863: [Python][Parquet] Support lz4_raw as a compression name ali…
nwoolmer Feb 5, 2026
f39f275
GH-48868: [Doc] Document security model for the Arrow formats (#48870)
pitrou Feb 5, 2026
baba1d4
GH-49004: [C++][FlightRPC] Run ODBC tests in workflow using `cpp_test…
alinaliBQ Feb 6, 2026
654fb28
GH-49092: [C++][FlightRPC][CI] Nightly Packaging: Add `dev-yyyy-mm-dd…
alinaliBQ Feb 6, 2026
0dfae70
GH-49156: [Python] Require GIL for string comparison (#49161)
raulcd Feb 6, 2026
d5fa7cb
GH-48575: [C++][FlightRPC] Standalone ODBC macOS CI (#48577)
alinaliBQ Feb 7, 2026
7fcc0af
GH-49164: [C++] Avoid invalid if() args in cmake when arrow is a subp…
zanmato1984 Feb 7, 2026
252a685
GH-48132: [Ruby] Add support for writing dictionary array (#49175)
kou Feb 8, 2026
a82edf9
GH-49081: [C++][Parquet] Correct variant's extension name (#49082)
HuaHuaY Feb 9, 2026
bb81a6e
GH-49102: [CI] Add type checking infrastructure and CI workflow for t…
rok Feb 9, 2026
02d05f4
GH-49190: [C++][CI] Fix `unknown job 'odbc' error` in C++ Extra Workf…
alinaliBQ Feb 9, 2026
649e1b6
MINOR: [CI] Bump docker/login-action from 3.6.0 to 3.7.0 (#49191)
dependabot[bot] Feb 9, 2026
f32f8ac
GH-48904: [C++][FlightRPC][CI][Packaging] Upload ODBC installer into …
alinaliBQ Feb 10, 2026
a6b45b6
GH-49081: [C++][Parquet][FOLLOWUP] Correct variant's extension name (…
HuaHuaY Feb 10, 2026
8b83784
GH-49159: [C++][Gandiva] Detect overflow in repeat() (#49160)
kou Feb 10, 2026
bc48921
GH-49208: [Ruby] Add support for writing dictionary delta message (#4…
kou Feb 11, 2026
2737d91
GH-43352: [Docs][Python] Add all tensor classes documentation (#49147)
chilin0525 Feb 11, 2026
6cce6be
GH-49187: [Doc] Fix versions.json for Arrow 1.0 (#49224)
AlenkaF Feb 11, 2026
e11aeee
GH-49217: [C++][Parquet] Fix map type to preserve key-value metadata …
wgtmac Feb 11, 2026
3fd809f
GH-44655: [C++][Python] Enable building AzureFileSystem in PyArrow wh…
nateprewitt Feb 12, 2026
2b9ed29
MINOR: [CI] Update Python CI to use Azure in Windows tests (#49240)
nateprewitt Feb 12, 2026
a444c87
MINOR: [CI] Set max-parallel=20 (#49228)
rok Feb 12, 2026
68d1368
GH-48862: [C++][Integration] Build arrow_c_data_integration library r…
raulcd Feb 12, 2026
4b19bf0
GH-49084: [CI][Dev] Wait for odbc-nightly before executing CPP extra …
raulcd Feb 12, 2026
9ed8fc1
GH-49184: [CI] AMD64 macOS 15-intel Python 3 consistently times out (…
tadeja Feb 12, 2026
bb78dff
GH-49233: [CI][Python] Update anaconda-client to 1.14.1 to support la…
nateprewitt Feb 12, 2026
a272046
GH-49225: [Ruby] Add support for writing dictionary delta for primiti…
kou Feb 12, 2026
29d34e8
GH-49234: [CI][Python] Nightly sdist job fails due to missing update_…
rok Feb 13, 2026
134638d
GH-49144: [R][CI] Get rid of unused CentOS CI job (#49239)
thisisnic Feb 13, 2026
e2aad46
GH-48576: [C++][FlightRPC] ODBC: add Mac setup script (#48578)
alinaliBQ Feb 15, 2026
1d76e1e
GH-49176: [C++] CRAN build fail on missing std::floating_point concep…
jonkeane Feb 16, 2026
4ba70c5
GH-49229: [C++] Fix abort when reading IPC file with a union validity…
pitrou Feb 16, 2026
f2aea05
MINOR: [Release] Update versions for 24.0.0-SNAPSHOT
raulcd Feb 16, 2026
63f20c4
MINOR: [Release] Update .deb/.rpm changelogs for 23.0.1
raulcd Feb 16, 2026
3e6988a
GH-48998: [R] Add note to docs on validating IPC streams (#48999)
thisisnic Feb 16, 2026
1114958
GH-49186: [R] Support dplyr::filter_out() in Arrow dplyr backend (#49…
larry77 Feb 16, 2026
76f7815
GH-49248: [Release] Include checksum in vote email (#49249)
amoeba Feb 17, 2026
7c45228
GH-48846: [C++] Read message metadata and body in one go in IPC file …
abhishek593 Feb 17, 2026
ebaaf07
GH-49146: [C++] Add option to disable atfork handlers (#49148)
pitrou Feb 17, 2026
c8e069d
GH-49307: [Benchmarks] Revert rig-based R installation in benchmark h…
thisisnic Feb 17, 2026
4a4718f
GH-49263: [Python][CI] Install rust compiler for libcst only on Debia…
raulcd Feb 17, 2026
aa564a9
GH-49169: [C++] Add ApplicationId to AzureFileSystem for SDK calls (#…
nateprewitt Feb 18, 2026
b6eb617
GH-49311: [C++][CI] Use differential fuzzing on IPC file fuzzer (#49312)
pitrou Feb 18, 2026
6c86961
GH-49318: [Ruby] Ensure using extpp 0.1.2 or later (#49319)
kou Feb 18, 2026
59e0ba6
GH-49299: [C++][Parquet] Integer overflow in Parquet dict decoding (#…
pitrou Feb 18, 2026
2691103
GH-48591: [C++] Remove some bit utils from bit_utils.h and replace th…
Anakin100100 Feb 18, 2026
6080027
GH-38184: [C++] Add systematic tests for Builder::AppendArraySlice (#…
abhishek593 Feb 18, 2026
b5eb42e
GH-49287: [C++][R] Clean up any other C++20 partial compatibility iss…
jonkeane Feb 18, 2026
9cf8f33
GH-49323: [R] Update NEWS.md for 23.0.1 (#49324)
thisisnic Feb 18, 2026
99984fd
GH-46531: [C++] Add type_singleton utility function and tests. (#47922)
harshkumar-2005 Feb 18, 2026
aea1ad3
GH-49325: [C++] Check if YMM register saving is OS enabled (#49326)
AntoinePrv Feb 18, 2026
031a2a4
GH-49316: [Ruby] Add support for auto dependency install for red-arro…
kou Feb 19, 2026
dde15b1
Add ORC predicate pushdown allium specification (#2)
cbb330 Feb 19, 2026
563bbe5
ORC Predicate Pushdown: Complete Planning Framework (#7)
cbb330 Feb 19, 2026
07778c0
Task #0: Add ORC column statistics APIs
cbb330 Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 4 additions & 7 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ ULIMIT_CORE=-1
# Default versions for platforms
ALMALINUX=8
ALPINE_LINUX=3.22
DEBIAN=12
DEBIAN=13
FEDORA=42
UBUNTU=22.04

Expand All @@ -61,11 +61,9 @@ CLANG_TOOLS=18
CMAKE=3.26.0
CUDA=11.7.1
DASK=latest
DOTNET=8.0
GCC=
HDFS=3.2.1
JDK=11
KARTOTHEK=latest
# LLVM 12 and GCC 11 reports -Wmismatched-new-delete.
LLVM=18
MAVEN=3.8.7
Expand All @@ -79,7 +77,6 @@ PYTHON_IMAGE_TAG=3.10
PYTHON_ABI_TAG=cp310
R=4.5
SPARK=master
TURBODBC=latest

# These correspond to images on Docker Hub that contain R, e.g. rhub/ubuntu-release:latest
R_IMAGE=ubuntu-release
Expand All @@ -96,14 +93,14 @@ TZ=UTC
# Used through compose.yaml and serves as the default version for the
# ci/scripts/install_vcpkg.sh script. Prefer to use short SHAs to keep the
# docker tags more readable.
VCPKG="4334d8b4c8916018600212ab4dd4bbdc343065d1" # 2025.09.17 Release
VCPKG="66c0373dc7fca549e5803087b9487edfe3aca0a1" # 2026.01.16 Release

# This must be updated when we update
# ci/docker/python-*-windows-*.dockerfile or the vcpkg config.
# This is a workaround for our CI problem that "archery docker build" doesn't
# use pulled built images in dev/tasks/python-wheels/github.windows.yml.
PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2025-10-13
PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION=2025-10-13
PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2026-02-07
PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION=2026-02-07

# Use conanio/${CONAN_BASE}:{CONAN_VERSION} for "docker compose run --rm conan".
# See https://github.com/conan-io/conan-docker-tools#readme and
Expand Down
1 change: 1 addition & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ If this is your first pull request you can find detailed information on how to c

* [New Contributor's Guide](https://arrow.apache.org/docs/dev/developers/guide/step_by_step/pr_lifecycle.html#reviews-and-merge-of-the-pull-request)
* [Contributing Overview](https://arrow.apache.org/docs/dev/developers/overview.html)
* [AI-generated Code Guidance](https://arrow.apache.org/docs/dev/developers/overview.html#ai-generated-code)

Please remove this line and the above text before creating your pull request.

Expand Down
202 changes: 188 additions & 14 deletions .github/workflows/cpp_extra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -336,9 +336,79 @@ jobs:
cd cpp/examples/minimal_build
../minimal_build.build/arrow-example

odbc:
odbc-macos:
needs: check-labels
name: ODBC
name: ODBC ${{ matrix.architecture }} macOS ${{ matrix.macos-version }}
runs-on: macos-${{ matrix.macos-version }}
if: >-
needs.check-labels.outputs.force == 'true' ||
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra') ||
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: C++')
timeout-minutes: 75
strategy:
fail-fast: false
matrix:
include:
- architecture: AMD64
macos-version: "15-intel"
- architecture: ARM64
macos-version: "14"
env:
ARROW_BUILD_TESTS: ON
ARROW_FLIGHT_SQL_ODBC: ON
ARROW_HOME: /tmp/local
steps:
- name: Checkout Arrow
uses: actions/checkout@v6.0.1
with:
fetch-depth: 0
submodules: recursive
- name: Install Dependencies
run: |
brew bundle --file=cpp/Brewfile
- name: Setup ccache
run: |
ci/scripts/ccache_setup.sh
- name: ccache info
id: ccache-info
run: |
echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v5.0.2
with:
path: ${{ steps.ccache-info.outputs.cache-dir }}
key: cpp-odbc-ccache-macos-${{ matrix.macos-version }}-${{ hashFiles('cpp/**') }}
restore-keys: cpp-odbc-ccache-macos-${{ matrix.macos-version }}-
- name: Build
run: |
# Homebrew uses /usr/local as prefix. So packages
# installed by Homebrew also use /usr/local/include. We
# want to include headers for packages installed by
# Homebrew as system headers to ignore warnings in them.
# But "-isystem /usr/local/include" isn't used by CMake
# because /usr/local/include is marked as the default
# include path. So we disable -Werror to avoid build error
# by warnings from packages installed by Homebrew.
export BUILD_WARNING_LEVEL=PRODUCTION
LIBIODBC_DIR="$(brew --cellar libiodbc)/$(brew list --versions libiodbc | awk '{print $2}')"
ODBC_INCLUDE_DIR=$LIBIODBC_DIR/include
export ARROW_CMAKE_ARGS="-DODBC_INCLUDE_DIR=$ODBC_INCLUDE_DIR"
export CXXFLAGS="$CXXFLAGS -I$ODBC_INCLUDE_DIR"
ci/scripts/cpp_build.sh $(pwd) $(pwd)/build
- name: Register Flight SQL ODBC Driver
run: |
sudo cpp/src/arrow/flight/sql/odbc/install/mac/install_odbc.sh $(pwd)/build/cpp/debug/libarrow_flight_sql_odbc.dylib
- name: Test
shell: bash
run: |
sudo sysctl -w kern.coredump=1
sudo sysctl -w kern.corefile=/tmp/core.%N.%P
ulimit -c unlimited # must enable within the same shell
ci/scripts/cpp_test.sh $(pwd) $(pwd)/build

odbc-msvc:
needs: check-labels
name: ODBC Windows
runs-on: windows-2022
if: >-
needs.check-labels.outputs.force == 'true' ||
Expand All @@ -352,6 +422,9 @@ jobs:
ARROW_BUILD_STATIC: OFF
ARROW_BUILD_TESTS: ON
ARROW_BUILD_TYPE: release
# Turn Arrow CSV off to disable `find_package(Arrow)` check on MSVC CI.
# GH-49050 TODO: enable `find_package(Arrow)` check on MSVC CI.
ARROW_CSV: OFF
ARROW_DEPENDENCY_SOURCE: VCPKG
ARROW_FLIGHT_SQL_ODBC: ON
ARROW_FLIGHT_SQL_ODBC_INSTALLER: ON
Expand Down Expand Up @@ -434,10 +507,15 @@ jobs:
shell: cmd
run: |
call "cpp\src\arrow\flight\sql\odbc\tests\install_odbc.cmd" ${{ github.workspace }}\build\cpp\%ARROW_BUILD_TYPE%\arrow_flight_sql_odbc.dll
# GH-48270 TODO: Resolve segementation fault during Arrow library unload
# GH-48269 TODO: Enable Flight & Flight SQL testing in MSVC CI
# GH-48547 TODO: enable ODBC tests after GH-48270 and GH-48269 are resolved.

- name: Test
shell: cmd
run: |
set VCPKG_ROOT_KEEP=%VCPKG_ROOT%
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
set VCPKG_ROOT=%VCPKG_ROOT_KEEP%
# Convert VCPKG Windows path to MSYS path
for /f "usebackq delims=" %%I in (`bash -c "cygpath -u \"$VCPKG_ROOT_KEEP\""` ) do set VCPKG_ROOT=%%I
bash -c "ci/scripts/cpp_test.sh $(pwd) $(pwd)/build"
- name: Install WiX Toolset
shell: pwsh
run: |
Expand All @@ -455,18 +533,79 @@ jobs:
uses: actions/upload-artifact@v6
with:
name: flight-sql-odbc-msi-installer
path: build/cpp/Apache Arrow Flight SQL ODBC-*-win64.msi
path: build/cpp/Apache-Arrow-Flight-SQL-ODBC-*-win64.msi
if-no-files-found: error
# Upload ODBC installer as nightly release in scheduled runs
- name: Install ODBC MSI
run: |
cd build/cpp
$odbc_msi = Get-ChildItem -Filter "Apache-Arrow-Flight-SQL-ODBC-*-win64.msi"
if (-not $odbc_msi) {
Write-Error "ODBC MSI not found"
exit 1
}

foreach ($msi in $odbc_msi) {
Write-Host "Installing $($msi.Name) with logs"
$log = "odbc-install.log"
Start-Process msiexec.exe -Wait -ArgumentList "/i `"$msi`"", "/qn", "/L*V `"$log`""
Get-Content $log
}
- name: Check ODBC DLL installation
run: |
$dirs = Get-ChildItem "C:\Program Files" -Directory -Filter "Apache-Arrow-Flight-SQL-ODBC*"

foreach ($dir in $dirs) {
$bin = Join-Path $dir.FullName "bin"

if (Test-Path $bin) {
tree $bin /f

$dll = Join-Path $bin "arrow_flight_sql_odbc.dll"
if (Test-Path $dll) {
Write-Host "Found ODBC DLL: $dll"
exit 0
}
}
}

Write-Error "ODBC DLL not found"
exit 1

odbc-nightly:
needs: odbc-msvc
name: ODBC nightly
runs-on: ubuntu-latest
if: github.event_name == 'schedule' && github.repository == 'apache/arrow'
steps:
- name: Download the artifacts
uses: actions/download-artifact@v7
with:
name: flight-sql-odbc-msi-installer
- name: Prepare ODBC installer for sync
if: github.event_name == 'schedule'
run: |
mkdir odbc-installer
Move-Item "build/cpp/Apache Arrow Flight SQL ODBC-*-win64.msi" odbc-installer/
tree odbc-installer /f
mv *.msi odbc-installer/

# Add `dev-yyyy-mm-dd` to ODBC MSI before `win64.msi`:
# Apache Arrow Flight SQL ODBC-24.0.0-win64.msi ->
# Apache Arrow Flight SQL ODBC-24.0.0-dev-2026-02-06-win64.msi
cd odbc-installer
msi_name=$(ls *.msi)
dev_msi_name=$(echo ${msi_name} | sed -e "s/win64\.msi$/dev-$(date +%Y-%m-%d)-win64.msi/")
mv "${msi_name}" "${dev_msi_name}"
cd ..

tree odbc-installer
- name: Checkout Arrow
uses: actions/checkout@v6
with:
fetch-depth: 1
path: arrow
repository: apache/arrow
ref: main
submodules: recursive
- name: Sync to Remote
if: github.event_name == 'schedule'
uses: ./.github/actions/sync-nightlies
uses: ./arrow/.github/actions/sync-nightlies
with:
upload: true
switches: -avzh --update --delete --progress
Expand All @@ -478,13 +617,48 @@ jobs:
remote_key: ${{ secrets.NIGHTLIES_RSYNC_KEY }}
remote_host_key: ${{ secrets.NIGHTLIES_RSYNC_HOST_KEY }}

odbc-release:
needs: odbc-msvc
name: ODBC release
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref_name, 'apache-arrow-') && contains(github.ref_name, '-rc') }}
permissions:
# Upload to GitHub Release
contents: write
steps:
- name: Checkout Arrow
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive
- name: Download the artifacts
uses: actions/download-artifact@v7
with:
name: flight-sql-odbc-msi-installer
- name: Wait for creating GitHub Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
dev/release/utils-watch-gh-workflow.sh \
${GITHUB_REF_NAME} \
release_candidate.yml
- name: Upload the artifacts to GitHub Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload ${GITHUB_REF_NAME} \
--clobber \
Apache-Arrow-Flight-SQL-ODBC-*-win64.msi

report-extra-cpp:
if: github.event_name == 'schedule' && always()
needs:
- docker
- jni-linux
- jni-macos
- msvc-arm64
- odbc
- odbc-macos
- odbc-msvc
- odbc-nightly
uses: ./.github/workflows/report_ci.yml
secrets: inherit
2 changes: 2 additions & 0 deletions .github/workflows/cpp_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,14 @@ jobs:
runs-on: ${{ inputs.os }}
timeout-minutes: 60
env:
ARROW_AZURE: ON
ARROW_BOOST_USE_SHARED: OFF
ARROW_BUILD_BENCHMARKS: ON
ARROW_BUILD_SHARED: ON
ARROW_BUILD_STATIC: OFF
ARROW_BUILD_TESTS: ON
ARROW_DATASET: ON
ARROW_FILESYSTEM: ON
ARROW_FLIGHT: OFF
ARROW_HDFS: ON
ARROW_HOME: /usr
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/package_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ jobs:
rake version:update
popd
- name: Login to GitHub Container registry
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
registry: ghcr.io
username: ${{ github.actor }}
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ jobs:
timeout-minutes: 60
strategy:
fail-fast: false
max-parallel: 20
matrix:
name:
- conda-python-docs
Expand All @@ -69,10 +70,10 @@ jobs:
- conda-python-3.12-no-numpy
include:
- name: conda-python-docs
cache: conda-python-3.10
cache: conda-python-3.11
image: conda-python-docs
title: AMD64 Conda Python 3.10 Sphinx & Numpydoc
python: "3.10"
title: AMD64 Conda Python 3.11 Sphinx & Numpydoc
python: "3.11"
- name: conda-python-3.11-nopandas
cache: conda-python-3.11
image: conda-python
Expand Down Expand Up @@ -145,12 +146,15 @@ jobs:
timeout-minutes: 60
strategy:
fail-fast: false
max-parallel: 20
matrix:
include:
- architecture: AMD64
macos-version: "15-intel"
large-memory-tests: "OFF"
- architecture: ARM64
macos-version: "14"
large-memory-tests: "ON"
env:
ARROW_HOME: /tmp/local
ARROW_AZURE: ON
Expand All @@ -173,7 +177,8 @@ jobs:
ARROW_WITH_SNAPPY: ON
ARROW_WITH_BROTLI: ON
ARROW_BUILD_TESTS: OFF
PYARROW_TEST_LARGE_MEMORY: ON
PYARROW_TEST_LARGE_MEMORY: ${{ matrix.large-memory-tests }}
PYTEST_ARGS: "-n auto --durations=40"
# Current oldest supported version according to https://endoflife.date/macos
MACOSX_DEPLOYMENT_TARGET: 12.0
steps:
Expand Down
Loading
Loading