diff options
Diffstat (limited to 'community/ceph17/46-arrow9.patch')
-rw-r--r-- | community/ceph17/46-arrow9.patch | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/community/ceph17/46-arrow9.patch b/community/ceph17/46-arrow9.patch new file mode 100644 index 00000000000..629945bf35a --- /dev/null +++ b/community/ceph17/46-arrow9.patch @@ -0,0 +1,218 @@ +--- a/src/s3select/include/s3select_parquet_intrf.h ++++ b/src/s3select/include/s3select_parquet_intrf.h +@@ -26,6 +26,14 @@ + #include "internal_file_decryptor.h" + #include "encryption_internal.h" + ++#if ARROW_VERSION_MAJOR < 9 ++#define _ARROW_FD fd_ ++#define _ARROW_FD_TYPE int ++#else ++#define _ARROW_FD fd_.fd() ++#define _ARROW_FD_TYPE arrow::internal::FileDescriptor ++#endif ++ + /******************************************/ + /******************************************/ + class optional_yield; +@@ -164,7 +172,7 @@ + std::mutex lock_; + + // File descriptor +- int fd_; ++ _ARROW_FD_TYPE fd_; + + FileMode::type mode_; + +@@ -202,7 +210,7 @@ + mode_ = write_only ? FileMode::WRITE : FileMode::READWRITE; + + if (!truncate) { +- ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(fd_)); ++ ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(_ARROW_FD)); + } else { + size_ = 0; + } +@@ -222,7 +230,11 @@ + RETURN_NOT_OK(SetFileName(fd)); + is_open_ = true; + mode_ = FileMode::WRITE; ++ #if ARROW_VERSION_MAJOR < 9 + fd_ = fd; ++ #else ++ fd_ = arrow::internal::FileDescriptor{fd}; ++ #endif + return Status::OK(); + } + +@@ -230,7 +242,7 @@ + RETURN_NOT_OK(SetFileName(path)); + + ARROW_ASSIGN_OR_RAISE(fd_, ::arrow::internal::FileOpenReadable(file_name_)); +- ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(fd_)); ++ ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(_ARROW_FD)); + + is_open_ = true; + mode_ = FileMode::READ; +@@ -242,7 +254,11 @@ + RETURN_NOT_OK(SetFileName(fd)); + is_open_ = true; + mode_ = FileMode::READ; ++ #if ARROW_VERSION_MAJOR < 9 + fd_ = fd; ++ #else ++ fd_ = arrow::internal::FileDescriptor{fd}; ++ #endif + return Status::OK(); + } + +@@ -258,9 +274,13 @@ + // Even if closing fails, the fd will likely be closed (perhaps it's + // already closed). + is_open_ = false; ++ #if ARROW_VERSION_MAJOR < 9 + int fd = fd_; + fd_ = -1; + RETURN_NOT_OK(::arrow::internal::FileClose(fd)); ++ #else ++ RETURN_NOT_OK(fd_.Close()); ++ #endif + } + return Status::OK(); + } +@@ -268,7 +288,7 @@ + Result<int64_t> Read(int64_t nbytes, void* out) override { + RETURN_NOT_OK(CheckClosed()); + RETURN_NOT_OK(CheckPositioned()); +- return ::arrow::internal::FileRead(fd_, reinterpret_cast<uint8_t*>(out), nbytes); ++ return ::arrow::internal::FileRead(_ARROW_FD, reinterpret_cast<uint8_t*>(out), nbytes); + } + + Result<int64_t> ReadAt(int64_t position, int64_t nbytes, void* out) override { +@@ -277,7 +297,7 @@ + // ReadAt() leaves the file position undefined, so require that we seek + // before calling Read() or Write(). + need_seeking_.store(true); +- return ::arrow::internal::FileReadAt(fd_, reinterpret_cast<uint8_t*>(out), position, ++ return ::arrow::internal::FileReadAt(_ARROW_FD, reinterpret_cast<uint8_t*>(out), position, + nbytes); + } + +@@ -286,7 +306,7 @@ + if (pos < 0) { + return Status::Invalid("Invalid position"); + } +- Status st = ::arrow::internal::FileSeek(fd_, pos); ++ Status st = ::arrow::internal::FileSeek(_ARROW_FD, pos); + if (st.ok()) { + need_seeking_.store(false); + } +@@ -295,7 +315,7 @@ + + Result<int64_t> Tell() const override { + RETURN_NOT_OK(CheckClosed()); +- return ::arrow::internal::FileTell(fd_); ++ return ::arrow::internal::FileTell(_ARROW_FD); + } + + Status Write(const void* data, int64_t length) override { +@@ -306,11 +326,11 @@ + if (length < 0) { + return Status::IOError("Length must be non-negative"); + } +- return ::arrow::internal::FileWrite(fd_, reinterpret_cast<const uint8_t*>(data), ++ return ::arrow::internal::FileWrite(_ARROW_FD, reinterpret_cast<const uint8_t*>(data), + length); + } + +- int fd() const override { return fd_; } ++ int fd() const override { return _ARROW_FD; } + + bool is_open() const override { return is_open_; } + +@@ -345,7 +365,7 @@ + std::mutex lock_; + + // File descriptor +- int fd_; ++ _ARROW_FD_TYPE fd_; + + FileMode::type mode_; + +@@ -411,7 +431,11 @@ + // already closed). + is_open_ = false; + //int fd = fd_; ++ #if ARROW_VERSION_MAJOR < 9 + fd_ = -1; ++ #else ++ fd_.Close(); ++ #endif + //RETURN_NOT_OK(::arrow::internal::FileClose(fd)); + } + return Status::OK(); +@@ -421,7 +445,7 @@ + NOT_IMPLEMENT; + RETURN_NOT_OK(CheckClosed()); + RETURN_NOT_OK(CheckPositioned()); +- return ::arrow::internal::FileRead(fd_, reinterpret_cast<uint8_t*>(out), nbytes); ++ return ::arrow::internal::FileRead(_ARROW_FD, reinterpret_cast<uint8_t*>(out), nbytes); + } + + Result<int64_t> ReadAt(int64_t position, int64_t nbytes, void* out) { +@@ -443,7 +467,7 @@ + return Status::OK(); + } + +- int fd() const { return fd_; } ++ int fd() const { return _ARROW_FD; } + + bool is_open() const { return is_open_; } + +@@ -467,7 +491,7 @@ + std::mutex lock_; + + // File descriptor +- int fd_; ++ _ARROW_FD_TYPE fd_; + + FileMode::type mode_; + +@@ -609,7 +633,7 @@ + for (const auto& range : ranges) { + RETURN_NOT_OK(internal::ValidateRange(range.offset, range.length)); + #if defined(POSIX_FADV_WILLNEED) +- if (posix_fadvise(fd_, range.offset, range.length, POSIX_FADV_WILLNEED)) { ++ if (posix_fadvise(_ARROW_FD, range.offset, range.length, POSIX_FADV_WILLNEED)) { + return IOErrorFromErrno(errno, "posix_fadvise failed"); + } + #elif defined(F_RDADVISE) // macOS, BSD? +@@ -617,7 +641,7 @@ + off_t ra_offset; + int ra_count; + } radvisory{range.offset, static_cast<int>(range.length)}; +- if (radvisory.ra_count > 0 && fcntl(fd_, F_RDADVISE, &radvisory) == -1) { ++ if (radvisory.ra_count > 0 && fcntl(_ARROW_FD, F_RDADVISE, &radvisory) == -1) { + return IOErrorFromErrno(errno, "fcntl(fd, F_RDADVISE, ...) failed"); + } + #endif +@@ -970,6 +994,9 @@ + CryptoContext ctx(col->has_dictionary_page(), row_group_ordinal_, + static_cast<int16_t>(i), meta_decryptor, data_decryptor); + return PageReader::Open(stream, col->num_values(), col->compression(), ++ #if ARROW_VERSION_MAJOR > 8 ++ false, ++ #endif + properties_.memory_pool(), &ctx); + } + +@@ -985,6 +1012,9 @@ + CryptoContext ctx(col->has_dictionary_page(), row_group_ordinal_, + static_cast<int16_t>(i), meta_decryptor, data_decryptor); + return PageReader::Open(stream, col->num_values(), col->compression(), ++ #if ARROW_VERSION_MAJOR > 8 ++ false, ++ #endif + properties_.memory_pool(), &ctx); + } + |