Skip to content

Commit fb7e627

Browse files
author
HackPoint
committed
Merge remote-tracking branch 'origin/main' into feat/flight-sql-client
2 parents bdbb9d3 + 31994b5 commit fb7e627

Some content is hidden

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

61 files changed

+1670
-340
lines changed

.github/pull_request_template.md

Lines changed: 6 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,20 @@
1-
2-
<!--
31
Thanks for opening a pull request!
4-
If this is your first pull request you can find detailed information on how
5-
to contribute here:
6-
* [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)
7-
* [Contributing Overview](https://arrow.apache.org/docs/dev/developers/overview.html)
8-
9-
10-
If this is not a [minor PR](https://github.com/apache/arrow/blob/main/CONTRIBUTING.md#Minor-Fixes). Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose
11-
12-
Opening GitHub issues ahead of time contributes to the [Openness](http://theapacheway.com/open/#:~:text=Openness%20allows%20new%20users%20the,must%20happen%20in%20the%20open.) of the Apache Arrow project.
13-
14-
Then could you also rename the pull request title in the following format?
15-
16-
GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}
172

18-
or
3+
If this is your first pull request you can find detailed information on how to contribute here:
194

20-
MINOR: [${COMPONENT}] ${SUMMARY}
5+
* [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)
6+
* [Contributing Overview](https://arrow.apache.org/docs/dev/developers/overview.html)
217

22-
-->
8+
Please remove this line and the above text before creating your pull request.
239

2410
### Rationale for this change
2511

26-
<!--
27-
Why are you proposing this change? If this is already explained clearly in the issue then this section is not needed.
28-
Explaining clearly why changes are proposed helps reviewers understand your changes and offer better suggestions for fixes.
29-
-->
30-
3112
### What changes are included in this PR?
3213

33-
<!--
34-
There is no need to duplicate the description in the issue here but it is sometimes worth providing a summary of the individual changes in this PR.
35-
-->
36-
3714
### Are these changes tested?
3815

39-
<!--
40-
We typically require tests for all PRs in order to:
41-
1. Prevent the code from being accidentally broken by subsequent changes
42-
2. Serve as another way to document the expected behavior of the code
43-
44-
If tests are not included in your PR, please explain why (for example, are they covered by existing tests)?
45-
-->
46-
4716
### Are there any user-facing changes?
4817

49-
<!--
50-
If there are user-facing changes then we may require documentation to be updated before approving the PR.
51-
-->
52-
53-
<!--
54-
If there are any breaking changes to public APIs, please uncomment the line below and explain which changes are breaking.
55-
-->
56-
<!-- **This PR includes breaking changes to public APIs.** -->
18+
**This PR includes breaking changes to public APIs.** (If there are any breaking changes to public APIs, please explain which changes are breaking. If not, you can remove this.)
5719

58-
<!--
59-
Please uncomment the line below (and provide explanation) if the changes fix either (a) a security vulnerability, (b) a bug that caused incorrect or invalid data to be produced, or (c) a bug that causes a crash (even when the API contract is upheld). We use this to highlight fixes to issues that may affect users without their knowledge. For this reason, fixing bugs that cause errors don't count, since those are usually obvious.
60-
-->
61-
<!-- **This PR contains a "Critical Fix".** -->
20+
**This PR contains a "Critical Fix".** (If the changes fix either (a) a security vulnerability, (b) a bug that caused incorrect or invalid data to be produced, or (c) a bug that causes a crash (even when the API contract is upheld), please provide explanation. If not, you can remove this.)

.github/workflows/r.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,7 @@ jobs:
361361
working-directory: 'r'
362362
extra-packages: |
363363
any::rcmdcheck
364+
any::cyclocomp
364365
# TODO(ARROW-17149): figure out why the GCS tests are hanging on Windows
365366
# - name: Install Google Cloud Storage Testbench
366367
# shell: bash
@@ -405,9 +406,7 @@ jobs:
405406
)
406407
# we use pak for package installation since it is faster, safer and more convenient
407408
pak::local_install()
408-
# Pin the lintr version to avoid breaking changes with newer 3.2.0 version
409-
# See: https://github.com/apache/arrow/pull/45524
410-
pak::pak("[email protected]")
409+
pak::pak("lintr")
411410
lintr::expect_lint_free()
412411
- name: Dump install logs
413412
shell: cmd

LICENSE.txt

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2257,5 +2257,36 @@ SOFTWARE.
22572257
java/vector/src/main/java/org/apache/arrow/vector/util/IntObjectHashMap.java
22582258
java/vector/src/main/java/org/apache/arrow/vector/util/IntObjectMap.java
22592259

2260-
These file are derived from code from Netty, which is made available under the
2260+
These files are derived from code from Netty, which is made available under the
22612261
Apache License 2.0.
2262+
2263+
--------------------------------------------------------------------------------
2264+
cpp/src/arrow/util/math_internal.cc (some portions)
2265+
2266+
Some portions of this file are derived from
2267+
2268+
https://github.com/ankane/dist-rust/
2269+
2270+
which is made available under the MIT license
2271+
2272+
The MIT License (MIT)
2273+
2274+
Copyright (c) 2021-2023 Contributors
2275+
2276+
Permission is hereby granted, free of charge, to any person obtaining a copy
2277+
of this software and associated documentation files (the "Software"), to deal
2278+
in the Software without restriction, including without limitation the rights
2279+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
2280+
copies of the Software, and to permit persons to whom the Software is
2281+
furnished to do so, subject to the following conditions:
2282+
2283+
The above copyright notice and this permission notice shall be included in
2284+
all copies or substantial portions of the Software.
2285+
2286+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2287+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2288+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2289+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2290+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2291+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2292+
THE SOFTWARE.

ci/conda_env_cpp.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ libprotobuf
3737
libutf8proc
3838
lz4-c
3939
make
40+
meson
4041
ninja
4142
nodejs
4243
orc

ci/scripts/PKGBUILD

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ depends=("${MINGW_PACKAGE_PREFIX}-bzip2"
2828
"${MINGW_PACKAGE_PREFIX}-curl" # for google-cloud-cpp bundled build
2929
"${MINGW_PACKAGE_PREFIX}-libutf8proc"
3030
"${MINGW_PACKAGE_PREFIX}-re2"
31-
"${MINGW_PACKAGE_PREFIX}-thrift"
3231
"${MINGW_PACKAGE_PREFIX}-snappy"
3332
"${MINGW_PACKAGE_PREFIX}-zlib"
3433
"${MINGW_PACKAGE_PREFIX}-lz4"
@@ -85,6 +84,19 @@ build() {
8584
# and does not work with newer versions of CMake. See comments:
8685
# https://github.com/apache/arrow/pull/44989/files#r1901428998
8786

87+
# We use the bundled Apache Thrift instead of the MINGW one because
88+
# the upstream one on rtools packages is unmaintained. Apache Thrift
89+
# still have the following problem:
90+
#
91+
# https://github.com/apache/thrift/pull/2725
92+
#
93+
# The original MSYS2 package has another fix:
94+
#
95+
# https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-thrift/002-fix-pkgconfig-paths.patch
96+
#
97+
# But one on rtools packages doesn't have the fix. So we can't use
98+
# the MINGW one.
99+
88100
# MSYS2_ARG_CONV_EXCL is needed to prevent autoconverting CMAKE_INSTALL_PREFIX
89101
# to Windows paths. See https://www.msys2.org/docs/filesystem-paths/#process-arguments
90102

@@ -128,7 +140,8 @@ build() {
128140
-DCMAKE_BUILD_TYPE="release" \
129141
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
130142
-DCMAKE_UNITY_BUILD=OFF \
131-
-DCMAKE_VERBOSE_MAKEFILE=ON
143+
-DCMAKE_VERBOSE_MAKEFILE=ON \
144+
-DThrift_SOURCE=BUNDLED
132145

133146
make -j3
134147
popd

ci/scripts/cpp_build.sh

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,13 @@ if [ "${ARROW_OFFLINE}" = "ON" ]; then
109109
echo > /etc/resolv.conf
110110
fi
111111

112-
if [ "${ARROW_EMSCRIPTEN:-OFF}" = "ON" ]; then
112+
if [ "${ARROW_USE_MESON:-OFF}" = "ON" ]; then
113+
meson setup \
114+
--prefix=${MESON_PREFIX:-${ARROW_HOME}} \
115+
--buildtype=${ARROW_BUILD_TYPE:-debug} \
116+
. \
117+
${source_dir}
118+
elif [ "${ARROW_EMSCRIPTEN:-OFF}" = "ON" ]; then
113119
if [ "${UBUNTU}" = "20.04" ]; then
114120
echo "arrow emscripten build is not supported on Ubuntu 20.04, run with UBUNTU=22.04"
115121
exit -1
@@ -141,7 +147,6 @@ else
141147
-DARROW_BUILD_BENCHMARKS=${ARROW_BUILD_BENCHMARKS:-OFF} \
142148
-DARROW_BUILD_EXAMPLES=${ARROW_BUILD_EXAMPLES:-OFF} \
143149
-DARROW_BUILD_INTEGRATION=${ARROW_BUILD_INTEGRATION:-OFF} \
144-
-DARROW_BUILD_OPENMP_BENCHMARKS=${ARROW_BUILD_OPENMP_BENCHMARKS:-OFF} \
145150
-DARROW_BUILD_SHARED=${ARROW_BUILD_SHARED:-ON} \
146151
-DARROW_BUILD_STATIC=${ARROW_BUILD_STATIC:-ON} \
147152
-DARROW_BUILD_TESTS=${ARROW_BUILD_TESTS:-OFF} \
@@ -244,8 +249,12 @@ else
244249
${source_dir}
245250
fi
246251

247-
export CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL:-$[${n_jobs} + 1]}
248-
time cmake --build . --target install
252+
if [ "${ARROW_USE_MESON:-OFF}" = "ON" ]; then
253+
time meson install
254+
else
255+
export CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL:-$[${n_jobs} + 1]}
256+
time cmake --build . --target install
257+
fi
249258

250259
# Save disk space by removing large temporary build products
251260
find . -name "*.o" -delete

ci/scripts/cpp_test.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,21 @@ pushd ${build_dir}
8989
if [ -z "${PYTHON}" ] && ! which python > /dev/null 2>&1; then
9090
export PYTHON="${PYTHON:-python3}"
9191
fi
92-
ctest \
92+
if [ "${ARROW_USE_MESON:-OFF}" = "ON" ]; then
93+
ARROW_BUILD_EXAMPLES=OFF # TODO: Remove this
94+
meson test \
95+
--print-errorlogs \
96+
"$@"
97+
else
98+
ctest \
9399
--label-regex unittest \
94100
--output-on-failure \
95101
--parallel ${n_jobs} \
96102
--repeat until-pass:3 \
97103
--timeout ${ARROW_CTEST_TIMEOUT:-300} \
98104
"${ctest_options[@]}" \
99105
"$@"
106+
fi
100107

101108
if [ "${ARROW_BUILD_EXAMPLES}" == "ON" ]; then
102109
examples=$(find ${binary_output_dir} -executable -name "*example")

ci/scripts/install_python.sh

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ declare -A versions
2828
versions=([3.9]=3.9.13
2929
[3.10]=3.10.11
3030
[3.11]=3.11.9
31-
[3.12]=3.12.5
32-
[3.13]=3.13.0
33-
[3.13t]=3.13.0)
31+
[3.12]=3.12.9
32+
[3.13]=3.13.2
33+
[3.13t]=3.13.2)
3434

3535
if [ "$#" -ne 2 ]; then
3636
echo "Usage: $0 <platform> <version>"
@@ -47,17 +47,11 @@ full_version=${versions[$2]}
4747
if [ $platform = "macOS" ]; then
4848
echo "Downloading Python installer..."
4949

50-
if [ "$version" = "3.13" ] || [ "$version" = "3.13t" ];
50+
if [ "$(uname -m)" = "x86_64" ] && [ "$version" = "3.9" ];
5151
then
52-
fname="python-${full_version}rc2-macos11.pkg"
53-
elif [ "$(uname -m)" = "arm64" ] || \
54-
[ "$version" = "3.10" ] || \
55-
[ "$version" = "3.11" ] || \
56-
[ "$version" = "3.12" ];
57-
then
58-
fname="python-${full_version}-macos11.pkg"
59-
else
6052
fname="python-${full_version}-macosx10.9.pkg"
53+
else
54+
fname="python-${full_version}-macos11.pkg"
6155
fi
6256
wget "https://www.python.org/ftp/python/${full_version}/${fname}"
6357

ci/scripts/r_windows_build.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,23 +66,23 @@ if [ -d mingw64/lib/ ]; then
6666
# Move the 64-bit versions of libarrow into the expected location
6767
mv mingw64/lib/*.a $DST_DIR/lib/x64
6868
# These are from https://dl.bintray.com/rtools/mingw{32,64}/
69-
cp $MSYS_LIB_DIR/mingw64/lib/lib{thrift,snappy,zstd,lz4,brotli*,bz2,crypto,curl,ss*,utf8proc,re2,nghttp2}.a $DST_DIR/lib/x64
69+
cp $MSYS_LIB_DIR/mingw64/lib/lib{snappy,zstd,lz4,brotli*,bz2,crypto,curl,ss*,utf8proc,re2,nghttp2}.a $DST_DIR/lib/x64
7070
fi
7171

7272
# Same for the 32-bit versions
7373
if [ -d mingw32/lib/ ]; then
7474
ls $MSYS_LIB_DIR/mingw32/lib/
7575
mkdir -p $DST_DIR/lib/i386
7676
mv mingw32/lib/*.a $DST_DIR/lib/i386
77-
cp $MSYS_LIB_DIR/mingw32/lib/lib{thrift,snappy,zstd,lz4,brotli*,bz2,crypto,curl,ss*,utf8proc,re2,nghttp2}.a $DST_DIR/lib/i386
77+
cp $MSYS_LIB_DIR/mingw32/lib/lib{snappy,zstd,lz4,brotli*,bz2,crypto,curl,ss*,utf8proc,re2,nghttp2}.a $DST_DIR/lib/i386
7878
fi
7979

8080
# Do the same also for ucrt64
8181
if [ -d ucrt64/lib/ ]; then
8282
ls $MSYS_LIB_DIR/ucrt64/lib/
8383
mkdir -p $DST_DIR/lib/x64-ucrt
8484
mv ucrt64/lib/*.a $DST_DIR/lib/x64-ucrt
85-
cp $MSYS_LIB_DIR/ucrt64/lib/lib{thrift,snappy,zstd,lz4,brotli*,bz2,crypto,curl,ss*,utf8proc,re2,nghttp2}.a $DST_DIR/lib/x64-ucrt
85+
cp $MSYS_LIB_DIR/ucrt64/lib/lib{snappy,zstd,lz4,brotli*,bz2,crypto,curl,ss*,utf8proc,re2,nghttp2}.a $DST_DIR/lib/x64-ucrt
8686
fi
8787

8888
# Create build artifact

cpp/CMakePresets.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
"cacheVariables": {
4242
"ARROW_BUILD_BENCHMARKS": "ON",
4343
"ARROW_BUILD_BENCHMARKS_REFERENCE": "ON",
44-
"ARROW_BUILD_OPENMP_BENCHMARKS": "ON",
4544
"ARROW_BUILD_DETAILED_BENCHMARKS": "OFF",
4645
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
4746
}

0 commit comments

Comments
 (0)