Skip to content

Commit 0df8c88

Browse files
Merge remote-tracking branch 'upstream/master' into ARROW-5436-parquet-read_table
2 parents 4ea7b77 + a4dad32 commit 0df8c88

File tree

420 files changed

+10014
-4043
lines changed

Some content is hidden

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

420 files changed

+10014
-4043
lines changed

.travis.yml

+11-9
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ before_install:
4747
- if [ $TRAVIS_OS_NAME == "linux" ]; then ccache -s; fi
4848

4949
matrix:
50-
allow_failures:
51-
- language: r
5250
fast_finish: true
5351
include:
5452
- name: "Lint, Release tests"
@@ -73,6 +71,8 @@ matrix:
7371
- ARROW_TRAVIS_VERBOSE=1
7472
- ARROW_TRAVIS_USE_SYSTEM_JAVA=1
7573
- ARROW_BUILD_WARNING_LEVEL=CHECKIN
74+
- ARROW_USE_ASAN=1
75+
- ARROW_USE_UBSAN=1
7676
- CC="clang-7"
7777
- CXX="clang++-7"
7878
before_script:
@@ -115,7 +115,7 @@ matrix:
115115
- $TRAVIS_BUILD_DIR/ci/travis_script_cpp.sh || travis_terminate 1
116116
- $TRAVIS_BUILD_DIR/ci/travis_script_gandiva_java.sh || travis_terminate 1
117117
- $TRAVIS_BUILD_DIR/ci/travis_upload_cpp_coverage.sh || travis_terminate 1
118-
- name: "Python 2.7 and 3.6 unit tests w/ Valgrind, conda-forge toolchain, coverage"
118+
- name: "Python 3.6 unit tests w/ Valgrind, conda-forge toolchain, coverage"
119119
compiler: gcc
120120
language: cpp
121121
os: linux
@@ -140,11 +140,9 @@ matrix:
140140
- $TRAVIS_BUILD_DIR/ci/travis_install_toolchain.sh
141141
script:
142142
- $TRAVIS_BUILD_DIR/ci/travis_script_java.sh || travis_terminate 1
143-
- ARROW_TRAVIS_PYTHON_GANDIVA=1
143+
- export ARROW_TRAVIS_PYTHON_GANDIVA=1
144144
# Only run Plasma tests with valgrind in one of the Python builds because
145145
# they are slow
146-
- export PLASMA_VALGRIND=0
147-
- $TRAVIS_BUILD_DIR/ci/travis_script_python.sh 2.7 || travis_terminate 1
148146
- export PLASMA_VALGRIND=1
149147
- $TRAVIS_BUILD_DIR/ci/travis_script_python.sh 3.6 || travis_terminate 1
150148
- $TRAVIS_BUILD_DIR/ci/travis_upload_cpp_coverage.sh
@@ -192,12 +190,11 @@ matrix:
192190
before_script:
193191
script:
194192
- if [ $ARROW_CI_PYTHON_AFFECTED != "1" ]; then exit; fi
195-
- $TRAVIS_BUILD_DIR/ci/travis_script_python.sh 2.7 || travis_terminate 1
196193
- $TRAVIS_BUILD_DIR/ci/travis_script_python.sh 3.6
197194
- name: "[manylinux1] Python"
198195
language: cpp
199196
env:
200-
- PYTHON_VERSIONS="2.7,32 3.6,16"
197+
- PYTHON_VERSIONS="3.6,16 3.7,16"
201198
before_script:
202199
- if [ $ARROW_CI_PYTHON_AFFECTED == "1" ]; then docker-compose pull python-manylinux1; fi
203200
script:
@@ -339,7 +336,7 @@ matrix:
339336
language: r
340337
cache: packages
341338
latex: false
342-
dist: trusty
339+
dist: xenial
343340
env:
344341
- ARROW_TRAVIS_PARQUET=1
345342
- ARROW_TRAVIS_USE_SYSTEM=1
@@ -354,11 +351,16 @@ matrix:
354351
sudo apt-get update -qq
355352
fi
356353
- $TRAVIS_BUILD_DIR/ci/travis_install_clang_tools.sh
354+
# On Xenial, installing clang-7 leads these to get removed,
355+
# but that breaks R, so let's reinstall them.
356+
- sudo apt-get install gfortran gfortran-5 libblas-dev libgfortran-5-dev libgfortran3 liblapack-dev liblapack3
357357
- $TRAVIS_BUILD_DIR/ci/travis_install_linux.sh
358358
- $TRAVIS_BUILD_DIR/ci/travis_before_script_cpp.sh --only-library
359359
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/cpp-install/lib
360360
- export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$TRAVIS_BUILD_DIR/cpp-install/lib/pkgconfig
361361
- pushd ${TRAVIS_BUILD_DIR}/r
362+
after_success:
363+
- Rscript -e 'covr::codecov()'
362364

363365

364366
after_failure:

appveyor.yml

+4-2
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,11 @@ environment:
6565
- JOB: "Toolchain"
6666
GENERATOR: Visual Studio 14 2015 Win64
6767
CONFIGURATION: "Release"
68+
ARROW_BUILD_FLIGHT: "ON"
6869
ARROW_BUILD_GANDIVA: "ON"
69-
- JOB: "Static_Crt_Build"
70-
GENERATOR: Ninja
70+
# NOTE: Since ARROW-5403 we have disabled the static CRT build
71+
# - JOB: "Static_Crt_Build"
72+
# GENERATOR: Ninja
7173
- JOB: "Build_Debug"
7274
GENERATOR: Ninja
7375
CONFIGURATION: "Debug"

c_glib/arrow-glib/input-stream.cpp

+13-3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <arrow/io/interfaces.h>
2525
#include <arrow/io/memory.h>
2626
#include <arrow/ipc/reader.h>
27+
#include <arrow/util/string_view.h>
2728

2829
#include <arrow-glib/buffer.hpp>
2930
#include <arrow-glib/codec.hpp>
@@ -386,6 +387,7 @@ garrow_seekable_input_stream_read_at(GArrowSeekableInputStream *input_stream,
386387
* garrow_seekable_input_stream_peek:
387388
* @input_stream: A #GArrowSeekableInputStream.
388389
* @n_bytes: The number of bytes to be peeked.
390+
* @error: (nullable): Return location for a #GError or %NULL.
389391
*
390392
* Returns: (transfer full): The data of the buffer, up to the
391393
* indicated number. The data becomes invalid after any operation on
@@ -397,12 +399,20 @@ garrow_seekable_input_stream_read_at(GArrowSeekableInputStream *input_stream,
397399
*/
398400
GBytes *
399401
garrow_seekable_input_stream_peek(GArrowSeekableInputStream *input_stream,
400-
gint64 n_bytes)
402+
gint64 n_bytes,
403+
GError **error)
401404
{
402405
auto arrow_random_access_file =
403406
garrow_seekable_input_stream_get_raw(input_stream);
404-
auto string_view = arrow_random_access_file->Peek(n_bytes);
405-
return g_bytes_new_static(string_view.data(), string_view.size());
407+
408+
arrow::util::string_view view;
409+
auto status = arrow_random_access_file->Peek(n_bytes, &view);
410+
411+
if (garrow_error_check(error, status, "[seekable-input-stream][peek]")) {
412+
return g_bytes_new_static(view.data(), view.size());
413+
} else {
414+
return NULL;
415+
}
406416
}
407417

408418

c_glib/arrow-glib/input-stream.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ GArrowBuffer *garrow_seekable_input_stream_read_at(GArrowSeekableInputStream *in
6868
GError **error);
6969
GARROW_AVAILABLE_IN_0_12
7070
GBytes *garrow_seekable_input_stream_peek(GArrowSeekableInputStream *input_stream,
71-
gint64 n_bytes);
71+
gint64 n_bytes,
72+
GError **error);
7273

7374

7475
#define GARROW_TYPE_BUFFER_INPUT_STREAM \

c_glib/doc/plasma-glib/meson.build

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ source_directories = [
5353
join_paths(meson.build_root(), 'plasma-glib'),
5454
]
5555
dependencies = [
56-
arrow_glib,
5756
plasma_glib,
57+
arrow_glib,
5858
]
5959
if arrow_cuda.found()
6060
dependencies += [arrow_cuda_glib]

c_glib/meson.build

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,5 +138,5 @@ test('unit test',
138138
'ARROW_CUDA_GLIB_TYPELIB_DIR=@0@/arrow-cuda-glib'.format(meson.build_root()),
139139
'GANDIVA_GLIB_TYPELIB_DIR=@0@/gandiva-glib'.format(meson.build_root()),
140140
'PARQUET_GLIB_TYPELIB_DIR=@0@/parquet-glib'.format(meson.build_root()),
141-
'PARQUET_GLIB_TYPELIB_DIR=@0@/plasma-glib'.format(meson.build_root()),
141+
'PLASMA_GLIB_TYPELIB_DIR=@0@/plasma-glib'.format(meson.build_root()),
142142
])

ci/appveyor-cpp-build.bat

+5-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ if "%JOB%" == "Static_Crt_Build" (
2626
@rem the Arrow DLL and the tests end up using a different instance of
2727
@rem the CRT, which wreaks havoc.
2828

29+
@rem ARROW-5403(wesm): Since changing to using gtest DLLs we can no
30+
@rem longer run the unit tests because gtest.dll and the unit test
31+
@rem executables have different static copies of the CRT
32+
2933
mkdir cpp\build-debug
3034
pushd cpp\build-debug
3135

@@ -100,7 +104,7 @@ set CONDA_PACKAGES=--file=ci\conda_env_python.yml python=%PYTHON% numpy=1.14 boo
100104

101105
if "%ARROW_BUILD_GANDIVA%" == "ON" (
102106
@rem Install llvmdev in the toolchain if building gandiva.dll
103-
set CONDA_PACKAGES=%CONDA_PACKAGES% llvmdev=%ARROW_LLVM_VERSION% clangdev=%ARROW_LLVM_VERSION%
107+
set CONDA_PACKAGES=%CONDA_PACKAGES% --file=ci\conda_env_gandiva.yml
104108
)
105109

106110
if "%JOB%" == "Toolchain" (

ci/appveyor-cpp-setup-mingw.bat

+30-20
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,36 @@ if "%MSYSTEM%" == "MINGW32" (
2424
)
2525
set PATH=%MINGW_PREFIX%\bin;C:\msys64\usr\bin;%PATH%
2626

27-
pacman --sync --refresh --noconfirm ^
28-
"ccache" ^
29-
"%MINGW_PACKAGE_PREFIX%-boost" ^
30-
"%MINGW_PACKAGE_PREFIX%-brotli" ^
31-
"%MINGW_PACKAGE_PREFIX%-cmake" ^
32-
"%MINGW_PACKAGE_PREFIX%-double-conversion" ^
33-
"%MINGW_PACKAGE_PREFIX%-flatbuffers" ^
34-
"%MINGW_PACKAGE_PREFIX%-gflags" ^
35-
"%MINGW_PACKAGE_PREFIX%-gobject-introspection" ^
36-
"%MINGW_PACKAGE_PREFIX%-gtest" ^
37-
"%MINGW_PACKAGE_PREFIX%-gtk-doc" ^
38-
"%MINGW_PACKAGE_PREFIX%-lz4" ^
39-
"%MINGW_PACKAGE_PREFIX%-meson" ^
40-
"%MINGW_PACKAGE_PREFIX%-protobuf" ^
41-
"%MINGW_PACKAGE_PREFIX%-python3-numpy" ^
42-
"%MINGW_PACKAGE_PREFIX%-rapidjson" ^
43-
"%MINGW_PACKAGE_PREFIX%-snappy" ^
44-
"%MINGW_PACKAGE_PREFIX%-thrift" ^
45-
"%MINGW_PACKAGE_PREFIX%-zlib" ^
46-
"%MINGW_PACKAGE_PREFIX%-zstd" || exit /B
27+
pacman --remove --noconfirm ^
28+
%MINGW_PACKAGE_PREFIX%-gcc-ada ^
29+
%MINGW_PACKAGE_PREFIX%-gcc-objc || exit /B
30+
pacman --sync --refresh --sysupgrade --noconfirm || exit /B
31+
pacman --sync --noconfirm ^
32+
%MINGW_PACKAGE_PREFIX%-gcc ^
33+
%MINGW_PACKAGE_PREFIX%-gcc-fortran ^
34+
%MINGW_PACKAGE_PREFIX%-python3 ^
35+
%MINGW_PACKAGE_PREFIX%-readline ^
36+
%MINGW_PACKAGE_PREFIX%-sqlite3 || exit /B
37+
pacman --sync --noconfirm ^
38+
ccache ^
39+
%MINGW_PACKAGE_PREFIX%-boost ^
40+
%MINGW_PACKAGE_PREFIX%-brotli ^
41+
%MINGW_PACKAGE_PREFIX%-cmake ^
42+
%MINGW_PACKAGE_PREFIX%-double-conversion ^
43+
%MINGW_PACKAGE_PREFIX%-flatbuffers ^
44+
%MINGW_PACKAGE_PREFIX%-gflags ^
45+
%MINGW_PACKAGE_PREFIX%-gobject-introspection ^
46+
%MINGW_PACKAGE_PREFIX%-gtest ^
47+
%MINGW_PACKAGE_PREFIX%-gtk-doc ^
48+
%MINGW_PACKAGE_PREFIX%-lz4 ^
49+
%MINGW_PACKAGE_PREFIX%-meson ^
50+
%MINGW_PACKAGE_PREFIX%-protobuf ^
51+
%MINGW_PACKAGE_PREFIX%-python3-numpy ^
52+
%MINGW_PACKAGE_PREFIX%-rapidjson ^
53+
%MINGW_PACKAGE_PREFIX%-snappy ^
54+
%MINGW_PACKAGE_PREFIX%-thrift ^
55+
%MINGW_PACKAGE_PREFIX%-zlib ^
56+
%MINGW_PACKAGE_PREFIX%-zstd || exit /B
4757

4858
pushd c_glib
4959
ruby -S bundle install || exit /B

ci/appveyor-cpp-setup.bat

+9
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@
1717

1818
@echo on
1919

20+
@rem Avoid picking up AppVeyor-installed OpenSSL (linker errors with gRPC)
21+
@rem XXX Perhaps there is a smarter way of solving this issue?
22+
rd /s /q C:\OpenSSL-Win32
23+
rd /s /q C:\OpenSSL-Win64
24+
rd /s /q C:\OpenSSL-v11-Win32
25+
rd /s /q C:\OpenSSL-v11-Win64
26+
rd /s /q C:\OpenSSL-v111-Win32
27+
rd /s /q C:\OpenSSL-v111-Win64
28+
2029
conda update -y -q conda
2130
conda config --set auto_update_conda false
2231
conda info -a

ci/conda_env_cpp.yml

-3
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,12 @@ glog
2828
gmock>=1.8.1
2929
grpc-cpp
3030
gtest>=1.8.1
31-
clangdev=7
32-
llvmdev=7
3331
libprotobuf
3432
lz4-c
3533
ninja
3634
pkg-config
3735
python
3836
rapidjson
39-
re2
4037
snappy
4138
thrift-cpp>=0.11.0
4239
zlib

cpp/src/parquet/util/CMakeLists.txt renamed to ci/conda_env_gandiva.yml

+3-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18-
# Headers: util
19-
arrow_install_all_headers("parquet/util")
20-
21-
add_parquet_test(memory-test)
18+
clangdev=7
19+
llvmdev=7
20+
re2

ci/conda_env_python.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18-
cython>=0.29.0
18+
cython=0.29.7
1919
cloudpickle
2020
hypothesis
2121
numpy>=1.14

ci/cpp-msvc-build-main.bat

+9-4
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,10 @@ set ARROW_HOME=%CONDA_PREFIX%\Library
2222
set CMAKE_ARGS=-DARROW_VERBOSE_THIRDPARTY_BUILD=OFF
2323

2424
if "%JOB%" == "Toolchain" (
25-
@rem Toolchain gtest does not currently work with Visual Studio 2015
2625
set CMAKE_ARGS=^
2726
%CMAKE_ARGS% ^
2827
-DARROW_WITH_BZ2=ON ^
29-
-DARROW_DEPENDENCY_SOURCE=CONDA ^
30-
-DGTest_SOURCE=BUNDLED
28+
-DARROW_DEPENDENCY_SOURCE=CONDA
3129
) else (
3230
@rem We're in a conda enviroment but don't want to use it for the dependencies
3331
set CMAKE_ARGS=%CMAKE_ARGS% -DARROW_DEPENDENCY_SOURCE=AUTO
@@ -63,6 +61,7 @@ cmake -G "%GENERATOR%" %CMAKE_ARGS% ^
6361
-DARROW_VERBOSE_THIRDPARTY_BUILD=ON ^
6462
-DARROW_CXXFLAGS="%ARROW_CXXFLAGS%" ^
6563
-DCMAKE_CXX_FLAGS_RELEASE="/MD %CMAKE_CXX_FLAGS_RELEASE%" ^
64+
-DARROW_FLIGHT=%ARROW_BUILD_FLIGHT% ^
6665
-DARROW_GANDIVA=%ARROW_BUILD_GANDIVA% ^
6766
-DARROW_PARQUET=ON ^
6867
-DPARQUET_BUILD_EXECUTABLES=ON ^
@@ -89,10 +88,16 @@ pip install -r requirements.txt pickle5
8988

9089
set PYARROW_CXXFLAGS=%ARROW_CXXFLAGS%
9190
set PYARROW_CMAKE_GENERATOR=%GENERATOR%
92-
set PYARROW_BUNDLE_ARROW_CPP=ON
91+
if "%ARROW_BUILD_FLIGHT%" == "ON" (
92+
@rem ARROW-5441: bundling Arrow Flight libraries not implemented
93+
set PYARROW_BUNDLE_ARROW_CPP=OFF
94+
) else (
95+
set PYARROW_BUNDLE_ARROW_CPP=ON
96+
)
9397
set PYARROW_BUNDLE_BOOST=OFF
9498
set PYARROW_WITH_STATIC_BOOST=ON
9599
set PYARROW_WITH_PARQUET=ON
100+
set PYARROW_WITH_FLIGHT=%ARROW_BUILD_FLIGHT%
96101
set PYARROW_WITH_GANDIVA=%ARROW_BUILD_GANDIVA%
97102
set PYARROW_PARALLEL=2
98103

ci/travis_before_script_cpp.sh

+9
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,15 @@ if [ "$ARROW_TRAVIS_VALGRIND" == "1" ]; then
121121
CMAKE_COMMON_FLAGS="$CMAKE_COMMON_FLAGS -DARROW_TEST_MEMCHECK=ON"
122122
fi
123123

124+
if [ "$ARROW_USE_ASAN" == "1" ]; then
125+
CMAKE_COMMON_FLAGS="$CMAKE_COMMON_FLAGS -DARROW_USE_ASAN=ON"
126+
fi
127+
128+
if [ "$ARROW_USE_UBSAN" == "1" ]; then
129+
CMAKE_COMMON_FLAGS="$CMAKE_COMMON_FLAGS -DARROW_USE_UBSAN=ON"
130+
fi
131+
132+
124133
if [ "$ARROW_TRAVIS_COVERAGE" == "1" ]; then
125134
CMAKE_COMMON_FLAGS="$CMAKE_COMMON_FLAGS -DARROW_GENERATE_COVERAGE=ON"
126135
fi

ci/travis_install_toolchain.sh

+3-9
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,17 @@ source $TRAVIS_BUILD_DIR/ci/travis_install_conda.sh
2323

2424
if [ ! -e $CPP_TOOLCHAIN ]; then
2525
CONDA_PACKAGES=""
26-
CONDA_LABEL=""
2726

28-
if [ "$ARROW_TRAVIS_GANDIVA" == "1" ] && [ $TRAVIS_OS_NAME == "osx" ]; then
29-
CONDA_PACKAGES="$CONDA_PACKAGES llvmdev=$CONDA_LLVM_VERSION"
30-
fi
31-
32-
if [ "$ARROW_TRAVIS_VALGRIND" == "1" ]; then
33-
# Use newer Valgrind
34-
CONDA_PACKAGES="$CONDA_PACKAGES valgrind"
27+
if [ "$ARROW_TRAVIS_GANDIVA" == "1" ]; then
28+
CONDA_PACKAGES="$CONDA_PACKAGES --file=$TRAVIS_BUILD_DIR/ci/conda_env_gandiva.yml"
3529
fi
3630

3731
# Set up C++ toolchain from conda-forge packages for faster builds
3832
time conda create -y -q -p $CPP_TOOLCHAIN \
3933
--file=$TRAVIS_BUILD_DIR/ci/conda_env_cpp.yml \
4034
--file=$TRAVIS_BUILD_DIR/ci/conda_env_unix.yml \
41-
compilers \
4235
$CONDA_PACKAGES \
36+
compilers \
4337
nomkl \
4438
python=3.6
4539
fi

ci/travis_lint.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ pre-commit install
3131
pre-commit run hadolint -a
3232

3333
# CMake formatting check
34-
pip install cmake_format
34+
pip install cmake_format==0.5.2
3535
$TRAVIS_BUILD_DIR/run-cmake-format.py --check
3636

3737
# C++ code linting

0 commit comments

Comments
 (0)