Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARROW-14892: [Python][C++] GCS Bindings #12763

Merged
merged 85 commits into from
Jun 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
7f60418
parent a23c6dd5b404cfcabf70762d693720b849d9501b
emkornfield Mar 25, 2022
2fac4b4
address PR comment pt 1
emkornfield Apr 19, 2022
c4eec64
Update cpp/src/arrow/filesystem/gcsfs.cc
emkornfield Apr 19, 2022
5f0d5e0
Update cpp/src/arrow/filesystem/gcsfs.cc
emkornfield Apr 19, 2022
026ef2d
Update cpp/src/arrow/filesystem/gcsfs.cc
emkornfield Apr 19, 2022
7172b33
pr comments pt2.
emkornfield Apr 19, 2022
bb383a5
pr comments pt3.
emkornfield Apr 19, 2022
ce804bb
Update cpp/src/arrow/filesystem/gcsfs.cc
emkornfield Apr 19, 2022
9c038a0
Update dev/archery/archery/cli.py
emkornfield Apr 19, 2022
11556d8
Update cpp/src/arrow/filesystem/gcsfs.cc
emkornfield Apr 19, 2022
84d7ed2
Update python/pyarrow/_gcsfs.pyx
emkornfield Apr 19, 2022
afa49ce
Apply suggestions from code review
emkornfield Apr 19, 2022
2b41c39
Update cpp/src/arrow/filesystem/gcsfs.cc
emkornfield Apr 19, 2022
c679dae
pr review comments #4
emkornfield Apr 19, 2022
47e8e52
Update python/pyarrow/_gcsfs.pyx
emkornfield Apr 19, 2022
272828e
Update python/pyarrow/_gcsfs.pyx
emkornfield Apr 19, 2022
fb75754
ninja format
emkornfield Apr 19, 2022
4ce2fd1
more pr fixes
emkornfield Apr 19, 2022
7b69c41
make ensure_metadata cpdef
emkornfield Apr 19, 2022
55e784e
remove build_absl_once
emkornfield Apr 20, 2022
89f061c
fix lint
emkornfield Apr 20, 2022
359f8a8
cast expiration to system clock (mac)
emkornfield Apr 20, 2022
25d2305
try to remove separate testbench install
emkornfield Apr 20, 2022
8ba98e5
some simplication
emkornfield Apr 20, 2022
842a29a
simplify further
emkornfield Apr 20, 2022
878d991
Avoid counting trailing slash in Depth
emkornfield Apr 20, 2022
18af508
Revert "try to remove separate testbench install"
emkornfield Apr 20, 2022
acc2a57
use latest version and remove DO NOT SUBMIT
emkornfield Apr 20, 2022
93be2be
Update python/pyarrow/tests/conftest.py
emkornfield Apr 20, 2022
3f6954a
comment out GCS ON instead of set it to off
emkornfield Apr 20, 2022
92ccc6f
add gs/gcs to filesystemfromuri docs
emkornfield Apr 20, 2022
1b512f3
remove duplicate code
emkornfield Apr 20, 2022
e9f7130
remove duplicate PYARROW_WITH_GCS
emkornfield Apr 20, 2022
8ed3b29
remove duplicate cli.py
emkornfield Apr 20, 2022
25741f2
add smoke test for FileSystemFromUri
emkornfield Apr 20, 2022
aa4df5f
separate gcs and s3 variables in tasks.yml
emkornfield Apr 20, 2022
ad86713
make GcsOptions default constructible
emkornfield Apr 20, 2022
54da88f
run install_gcs_test_bench if it exists
emkornfield Apr 21, 2022
05448aa
turn of gcs on macos github workflow
emkornfield Apr 21, 2022
c09bcb2
install testbench on wheel test
emkornfield Apr 21, 2022
d312f46
fix error for calculating directory presence
emkornfield Apr 21, 2022
fb8d359
Install the testbench using the right Python
pitrou Apr 21, 2022
fefada1
add ARROW_EXPORT
emkornfield Apr 21, 2022
28a22eb
fix alphabeetic order in build-pyarrow.sh
emkornfield Apr 21, 2022
013a7d2
enable macOS 10.13 gcs build
emkornfield Apr 21, 2022
feb83a5
use install_gcs_bench.sh in unix wheel test script
emkornfield Apr 21, 2022
9e7ca4c
Update python/pyarrow/_gcsfs.pyx
emkornfield Apr 21, 2022
7048d54
Update python/pyarrow/_gcsfs.pyx
emkornfield Apr 21, 2022
a984a48
fixup tests per feedback
emkornfield Apr 21, 2022
57069f3
make close idempotent
emkornfield Apr 21, 2022
b0e1b82
Use bundled google-cloud-cpp-storage
kou Apr 23, 2022
2a79041
Install test dependencies in Dockerfile
kou Apr 23, 2022
b746d05
Enable GCS on Debian and Fedora
kou Apr 24, 2022
72d5fea
Don't enable GCS on Debian 10
kou Apr 25, 2022
7ea4443
Update installing testing dependency in dev/tasks/python-wheels/
kou Apr 25, 2022
1d761f3
Fix wrong Python use
kou Apr 26, 2022
8874daf
Make failures of testbench short lived
emkornfield Apr 27, 2022
7ee8c74
Add missing arch
kou Apr 28, 2022
b547ac1
use 5 second timeout for tests
emkornfield Apr 28, 2022
de6179c
Try installing testbench on arm64 macOS
kou May 2, 2022
e4e895c
Install python3-dev to build crc32c locally
kou May 6, 2022
bfad720
x86 and arm are only enabled
kou May 9, 2022
2a6bcd3
Don't use wheel for grpcio on arm64 macOS
kou May 17, 2022
1783e81
Use grpcio 1.44.0
kou May 17, 2022
a337c67
Disable GCS on s390x
kou May 17, 2022
62ad5c5
up timeout to 20 seconds
emkornfield May 18, 2022
5c5b9e2
add back conftest
emkornfield Jun 7, 2022
870ed6e
add logging to equality for debugging
emkornfield Jun 7, 2022
c514158
add logging for timepoint
emkornfield Jun 7, 2022
21be233
accept nanos and use it for expiration
emkornfield Jun 8, 2022
2af67fd
Revert "add logging for timepoint"
emkornfield Jun 8, 2022
3147913
Revert "add logging to equality for debugging"
emkornfield Jun 8, 2022
6732402
fix lint
emkornfield Jun 8, 2022
544acfd
Revert "fix lint"
emkornfield Jun 8, 2022
843b99d
Revert "accept nanos and use it for expiration"
emkornfield Jun 8, 2022
75f8397
pass timezone to datetime
emkornfield Jun 8, 2022
20c35d5
increase timeout
emkornfield Jun 9, 2022
7246940
Apply suggestions from code review
emkornfield Jun 10, 2022
2d5c0f7
address code review feedback
emkornfield Jun 10, 2022
2ff901d
bump client policy
emkornfield Jun 10, 2022
28158ee
Try to understand arch issues
pitrou Jun 11, 2022
922e4ef
Try to rationalize uses of arch
pitrou Jun 11, 2022
3a7c769
Revert "Try to rationalize uses of arch"
pitrou Jun 11, 2022
0f1f1da
Revert "Try to understand arch issues"
pitrou Jun 11, 2022
b8336ef
Make error more informative in warnings check
pitrou Jun 12, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ jobs:
ARROW_DATASET: ON
ARROW_FLIGHT: ON
ARROW_GANDIVA: ON
ARROW_GCS: OFF
ARROW_HDFS: ON
ARROW_JEMALLOC: ON
ARROW_ORC: ON
Expand Down
7 changes: 3 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ jobs:
DOCKER_RUN_ARGS: >-
"
-e ARROW_BUILD_STATIC=OFF
-e ARROW_GCS=OFF
-e ARROW_ORC=OFF
-e ARROW_USE_GLOG=OFF
-e CMAKE_UNITY_BUILD=ON
Expand Down Expand Up @@ -99,11 +98,11 @@ jobs:
-e ARROW_GCS=OFF
-e ARROW_MIMALLOC=OFF
-e ARROW_ORC=OFF
-e ARROW_SUBSTRAIT=OFF
-e ARROW_PARQUET=OFF
-e ARROW_S3=OFF
-e CMAKE_UNITY_BUILD=ON
-e ARROW_SUBSTRAIT=OFF
-e CMAKE_BUILD_PARALLEL_LEVEL=2
-e CMAKE_UNITY_BUILD=ON
-e PARQUET_BUILD_EXAMPLES=OFF
-e PARQUET_BUILD_EXECUTABLES=OFF
-e Protobuf_SOURCE=BUNDLED
Expand Down Expand Up @@ -154,8 +153,8 @@ jobs:
-e ARROW_PARQUET=OFF
-e ARROW_PYTHON=ON
-e ARROW_S3=OFF
-e CMAKE_UNITY_BUILD=ON
-e CMAKE_BUILD_PARALLEL_LEVEL=2
-e CMAKE_UNITY_BUILD=ON
-e PARQUET_BUILD_EXAMPLES=OFF
-e PARQUET_BUILD_EXECUTABLES=OFF
-e Protobuf_SOURCE=BUNDLED
Expand Down
1 change: 1 addition & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ environment:
# (as generated by cmake)
- JOB: "Toolchain"
GENERATOR: Ninja
ARROW_GCS: "ON"
ARROW_S3: "ON"
ARROW_BUILD_FLIGHT: "ON"
ARROW_BUILD_GANDIVA: "ON"
Expand Down
5 changes: 5 additions & 0 deletions ci/docker/conda-python.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ RUN mamba install -q \
nomkl && \
mamba clean --all

# XXX The GCS testbench was already installed in conda-cpp.dockerfile,
# but we changed the installed Python version above, so we need to reinstall it.
COPY ci/scripts/install_gcs_testbench.sh /arrow/ci/scripts
RUN /arrow/ci/scripts/install_gcs_testbench.sh default

ENV ARROW_PYTHON=ON \
ARROW_BUILD_STATIC=OFF \
ARROW_BUILD_TESTS=OFF \
Expand Down
2 changes: 2 additions & 0 deletions ci/docker/debian-11-cpp.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ ENV ARROW_BUILD_TESTS=ON \
ARROW_DEPENDENCY_SOURCE=SYSTEM \
ARROW_FLIGHT=ON \
ARROW_GANDIVA=ON \
ARROW_GCS=ON \
ARROW_HOME=/usr/local \
ARROW_ORC=ON \
ARROW_PARQUET=ON \
Expand All @@ -99,6 +100,7 @@ ENV ARROW_BUILD_TESTS=ON \
AWSSDK_SOURCE=BUNDLED \
CC=gcc \
CXX=g++ \
google_cloud_cpp_storage_SOURCE=BUNDLED \
ORC_SOURCE=BUNDLED \
PATH=/usr/lib/ccache/:$PATH \
Protobuf_SOURCE=BUNDLED
2 changes: 2 additions & 0 deletions ci/docker/fedora-35-cpp.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ ENV ARROW_BUILD_TESTS=ON \
ARROW_FLIGHT=ON \
ARROW_GANDIVA_JAVA=ON \
ARROW_GANDIVA=ON \
ARROW_GCS=ON \
ARROW_HOME=/usr/local \
ARROW_ORC=ON \
ARROW_PARQUET=ON \
Expand All @@ -92,6 +93,7 @@ ENV ARROW_BUILD_TESTS=ON \
AWSSDK_SOURCE=BUNDLED \
CC=gcc \
CXX=g++ \
google_cloud_cpp_storage_SOURCE=BUNDLED \
ORC_SOURCE=BUNDLED \
PARQUET_BUILD_EXECUTABLES=ON \
PARQUET_BUILD_EXAMPLES=ON \
Expand Down
1 change: 1 addition & 0 deletions ci/docker/linux-apt-docs.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ ENV ARROW_BUILD_STATIC=OFF \
ARROW_BUILD_TESTS=OFF \
ARROW_BUILD_UTILITIES=OFF \
ARROW_FLIGHT=ON \
ARROW_GCS=ON \
ARROW_GLIB_VALA=false \
ARROW_PYTHON=ON \
ARROW_S3=ON \
Expand Down
3 changes: 3 additions & 0 deletions ci/docker/python-wheel-manylinux-test.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,6 @@ FROM ${arch}/python:${python}
# test dependencies in a docker image
COPY python/requirements-wheel-test.txt /arrow/python/
RUN pip install -r /arrow/python/requirements-wheel-test.txt

COPY ci/scripts/install_gcs_testbench.sh /arrow/ci/scripts/
RUN PYTHON=python /arrow/ci/scripts/install_gcs_testbench.sh default
1 change: 1 addition & 0 deletions ci/docker/ubuntu-20.04-cpp.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ RUN apt-get update -y -q && \
nlohmann-json3-dev \
pkg-config \
protobuf-compiler \
python3-dev \
python3-pip \
python3-rados \
rados-objclass-dev \
Expand Down
2 changes: 2 additions & 0 deletions ci/docker/ubuntu-22.04-cpp.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ ENV ARROW_BUILD_TESTS=ON \
ARROW_FLIGHT=ON \
ARROW_FLIGHT_SQL=ON \
ARROW_GANDIVA=ON \
ARROW_GCS=ON \
ARROW_HDFS=ON \
ARROW_HOME=/usr/local \
ARROW_INSTALL_NAME_RPATH=OFF \
Expand All @@ -175,6 +176,7 @@ ENV ARROW_BUILD_TESTS=ON \
ARROW_WITH_ZLIB=ON \
ARROW_WITH_ZSTD=ON \
AWSSDK_SOURCE=BUNDLED \
google_cloud_cpp_storage_SOURCE=BUNDLED \
GTest_SOURCE=BUNDLED \
ORC_SOURCE=BUNDLED \
PARQUET_BUILD_EXAMPLES=ON \
Expand Down
22 changes: 18 additions & 4 deletions ci/scripts/install_gcs_testbench.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,24 @@ if [ "$#" -ne 1 ]; then
exit 1
fi

if [ "$(uname -m)" != "x86_64" ]; then
echo "GCS testbench won't install on non-x86 architecture"
exit 0
fi
case "$(uname -m)" in
aarch64|arm64|x86_64)
: # OK
;;
*)
echo "GCS testbench is installed only on x86 or arm architectures: $(uname -m)"
exit 0
;;
esac

case "$(uname -s)-$(uname -m)" in
Darwin-arm64)
# Workaround for https://github.com/grpc/grpc/issues/28387 .
# Build grpcio instead of using wheel.
# storage-testbench 0.16.0 pins grpcio to 1.44.0.
${PYTHON:-python3} -m pip install --no-binary :all: "grpcio==1.44.0"
;;
esac

version=$1
if [[ "${version}" -eq "default" ]]; then
Expand Down
1 change: 1 addition & 0 deletions ci/scripts/python_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ export PYARROW_WITH_CUDA=${ARROW_CUDA:-OFF}
export PYARROW_WITH_DATASET=${ARROW_DATASET:-ON}
export PYARROW_WITH_FLIGHT=${ARROW_FLIGHT:-OFF}
export PYARROW_WITH_GANDIVA=${ARROW_GANDIVA:-OFF}
export PYARROW_WITH_GCS=${ARROW_GCS:-OFF}
export PYARROW_WITH_HDFS=${ARROW_HDFS:-ON}
export PYARROW_WITH_ORC=${ARROW_ORC:-OFF}
export PYARROW_WITH_PLASMA=${ARROW_PLASMA:-OFF}
Expand Down
2 changes: 2 additions & 0 deletions ci/scripts/python_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ export ARROW_DEBUG_MEMORY_POOL=trap
: ${PYARROW_TEST_DATASET:=${ARROW_DATASET:-ON}}
: ${PYARROW_TEST_FLIGHT:=${ARROW_FLIGHT:-ON}}
: ${PYARROW_TEST_GANDIVA:=${ARROW_GANDIVA:-ON}}
: ${PYARROW_TEST_GCS:=${ARROW_GCS:-ON}}
: ${PYARROW_TEST_HDFS:=${ARROW_HDFS:-ON}}
: ${PYARROW_TEST_ORC:=${ARROW_ORC:-ON}}
: ${PYARROW_TEST_PARQUET:=${ARROW_PARQUET:-ON}}
Expand All @@ -47,6 +48,7 @@ export PYARROW_TEST_CUDA
export PYARROW_TEST_DATASET
export PYARROW_TEST_FLIGHT
export PYARROW_TEST_GANDIVA
export PYARROW_TEST_GCS
export PYARROW_TEST_HDFS
export PYARROW_TEST_ORC
export PYARROW_TEST_PARQUET
Expand Down
3 changes: 2 additions & 1 deletion ci/scripts/python_wheel_macos_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
: ${ARROW_DATASET:=ON}
: ${ARROW_FLIGHT:=ON}
: ${ARROW_GANDIVA:=OFF}
: ${ARROW_GCS:=OFF}
: ${ARROW_GCS:=ON}
: ${ARROW_HDFS:=ON}
: ${ARROW_JEMALLOC:=ON}
: ${ARROW_MIMALLOC:=ON}
Expand Down Expand Up @@ -148,6 +148,7 @@ export PYARROW_INSTALL_TESTS=1
export PYARROW_WITH_DATASET=${ARROW_DATASET}
export PYARROW_WITH_FLIGHT=${ARROW_FLIGHT}
export PYARROW_WITH_GANDIVA=${ARROW_GANDIVA}
export PYARROW_WITH_GCS=${ARROW_GCS}
export PYARROW_WITH_HDFS=${ARROW_HDFS}
export PYARROW_WITH_ORC=${ARROW_ORC}
export PYARROW_WITH_PARQUET=${ARROW_PARQUET}
Expand Down
3 changes: 2 additions & 1 deletion ci/scripts/python_wheel_manylinux_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
: ${ARROW_DATASET:=ON}
: ${ARROW_FLIGHT:=ON}
: ${ARROW_GANDIVA:=OFF}
: ${ARROW_GCS:=OFF}
: ${ARROW_GCS:=ON}
: ${ARROW_HDFS:=ON}
: ${ARROW_JEMALLOC:=ON}
: ${ARROW_MIMALLOC:=ON}
Expand Down Expand Up @@ -144,6 +144,7 @@ export PYARROW_INSTALL_TESTS=1
export PYARROW_WITH_DATASET=${ARROW_DATASET}
export PYARROW_WITH_FLIGHT=${ARROW_FLIGHT}
export PYARROW_WITH_GANDIVA=${ARROW_GANDIVA}
export PYARROW_WITH_GCS=${ARROW_GCS}
export PYARROW_WITH_HDFS=${ARROW_HDFS}
export PYARROW_WITH_ORC=${ARROW_ORC}
export PYARROW_WITH_PARQUET=${ARROW_PARQUET}
Expand Down
15 changes: 13 additions & 2 deletions ci/scripts/python_wheel_unix_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ source_dir=${1}
: ${ARROW_FLIGHT:=ON}
: ${ARROW_SUBSTRAIT:=ON}
: ${ARROW_S3:=ON}
: ${ARROW_GCS:=ON}
: ${CHECK_IMPORTS:=ON}
: ${CHECK_UNITTESTS:=ON}
: ${INSTALL_PYARROW:=ON}
Expand All @@ -39,6 +40,7 @@ export PYARROW_TEST_CYTHON=OFF
export PYARROW_TEST_DATASET=ON
export PYARROW_TEST_FLIGHT=${ARROW_FLIGHT}
export PYARROW_TEST_GANDIVA=OFF
export PYARROW_TEST_GCS=${ARROW_GCS}
export PYARROW_TEST_HDFS=ON
export PYARROW_TEST_ORC=ON
export PYARROW_TEST_PANDAS=ON
Expand Down Expand Up @@ -69,6 +71,9 @@ import pyarrow.orc
import pyarrow.parquet
import pyarrow.plasma
"
if [ "${PYARROW_TEST_GCS}" == "ON" ]; then
python -c "import pyarrow._gcsfs"
fi
if [ "${PYARROW_TEST_S3}" == "ON" ]; then
python -c "import pyarrow._s3fs"
fi
Expand All @@ -81,8 +86,14 @@ import pyarrow.plasma
fi

if [ "${CHECK_UNITTESTS}" == "ON" ]; then
# Install testing dependencies
pip install -U -r ${source_dir}/python/requirements-wheel-test.txt
# Generally, we should install testing dependencies here to install
# built wheels without testing dependencies. Testing dependencies are
# installed in ci/docker/python-wheel-manylinux-test.dockerfile to
# reduce test time.
#
# We also need to update dev/tasks/python-wheels/*.yml when we need
# to add more steps to prepare testing dependencies.

# Execute unittest, test dependencies must be installed
python -c 'import pyarrow; pyarrow.create_library_symlinks()'
python -m pytest -r s --pyargs pyarrow
Expand Down
7 changes: 5 additions & 2 deletions cpp/src/arrow/filesystem/api.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,11 @@

#include "arrow/filesystem/filesystem.h" // IWYU pragma: export
#include "arrow/filesystem/hdfs.h" // IWYU pragma: export
#include "arrow/filesystem/localfs.h" // IWYU pragma: export
#include "arrow/filesystem/mockfs.h" // IWYU pragma: export
#ifdef ARROW_GCS
#include "arrow/filesystem/gcsfs.h" // IWYU pragma: export
#endif
#include "arrow/filesystem/localfs.h" // IWYU pragma: export
#include "arrow/filesystem/mockfs.h" // IWYU pragma: export
#ifdef ARROW_S3
#include "arrow/filesystem/s3fs.h" // IWYU pragma: export
#endif
3 changes: 1 addition & 2 deletions cpp/src/arrow/filesystem/filesystem.cc
Original file line number Diff line number Diff line change
Expand Up @@ -695,8 +695,7 @@ Result<std::shared_ptr<FileSystem>> FileSystemFromUriReal(const Uri& uri,
if (scheme == "gs" || scheme == "gcs") {
#ifdef ARROW_GCS
ARROW_ASSIGN_OR_RAISE(auto options, GcsOptions::FromUri(uri, out_path));
ARROW_ASSIGN_OR_RAISE(auto gcsfs, GcsFileSystem::Make(options, io_context));
return gcsfs;
return GcsFileSystem::Make(options, io_context);
#else
return Status::NotImplemented("Got GCS URI but Arrow compiled without GCS support");
#endif
Expand Down
6 changes: 4 additions & 2 deletions cpp/src/arrow/filesystem/filesystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,8 @@ class ARROW_EXPORT SlowFileSystem : public FileSystem {

/// \brief Create a new FileSystem by URI
///
/// Recognized schemes are "file", "mock", "hdfs" and "s3fs".
/// Recognized schemes are "file", "mock", "hdfs", "viewfs", "s3",
/// "gs" and "gcs".
///
/// \param[in] uri a URI-based path, ex: file:///some/local/path
/// \param[out] out_path (optional) Path inside the filesystem.
Expand All @@ -463,7 +464,8 @@ Result<std::shared_ptr<FileSystem>> FileSystemFromUri(const std::string& uri,

/// \brief Create a new FileSystem by URI with a custom IO context
///
/// Recognized schemes are "file", "mock", "hdfs" and "s3fs".
/// Recognized schemes are "file", "mock", "hdfs", "viewfs", "s3",
/// "gs" and "gcs".
///
/// \param[in] uri a URI-based path, ex: file:///some/local/path
/// \param[in] io_context an IOContext which will be associated with the filesystem
Expand Down
Loading