From ec063ffa80cc375fe8f70ac665c14f308c7c63f2 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Tue, 10 Mar 2026 15:56:51 +0100 Subject: [PATCH 01/13] Resolve macOS job Bus error --- .github/workflows/python.yml | 6 ++++++ cpp/Brewfile | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index b200b37d1fe..538dcdca392 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -201,6 +201,12 @@ jobs: brew uninstall pkg-config@0.29.2 || : brew bundle --file=cpp/Brewfile + # protobuf@33 is keg-only, so make it visible to CMake and pkg-config. + export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" + echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" + echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" + echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" + python -m pip install \ -r python/requirements-build.txt \ -r python/requirements-test.txt diff --git a/cpp/Brewfile b/cpp/Brewfile index 811712516bf..afd1bfe0a31 100644 --- a/cpp/Brewfile +++ b/cpp/Brewfile @@ -36,7 +36,7 @@ brew "ninja" brew "node" brew "openssl" brew "pkgconf" -brew "protobuf" +brew "protobuf@33" brew "python" brew "rapidjson" brew "re2" From 0e7db286258745cbbfeb6e71d951fb080ba6c087 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Tue, 10 Mar 2026 18:00:12 +0100 Subject: [PATCH 02/13] Add env setup for protobuf@33 in cpp and ruby --- .github/workflows/cpp.yml | 6 ++++++ .github/workflows/ruby.yml | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml index 02bc98a1cc3..a931818ab77 100644 --- a/.github/workflows/cpp.yml +++ b/.github/workflows/cpp.yml @@ -230,6 +230,12 @@ jobs: brew uninstall pkg-config || : brew uninstall pkg-config@0.29.2 || : brew bundle --file=cpp/Brewfile + + # protobuf@33 is keg-only, so make it visible to CMake and pkg-config. + export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" + echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" + echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" + echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" - name: Install MinIO run: | $(brew --prefix bash)/bin/bash \ diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 1e91f624878..41ab966e599 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -162,6 +162,12 @@ jobs: brew update brew bundle --file=cpp/Brewfile brew bundle --file=c_glib/Brewfile + + # protobuf@33 is keg-only, so make it visible to CMake and pkg-config. + export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" + echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" + echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" + echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" # For Meson. # See also: https://github.com/mesonbuild/meson/issues/7701 echo "PKG_CONFIG=$(brew --prefix pkgconf)/bin/pkgconf" >> $GITHUB_ENV From 58bd232d7cc1eaf496b50d77697cd05ecb71d9e1 Mon Sep 17 00:00:00 2001 From: tadeja Date: Wed, 11 Mar 2026 10:00:08 +0100 Subject: [PATCH 03/13] Update .github/workflows/ruby.yml Co-authored-by: Sutou Kouhei --- .github/workflows/ruby.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 41ab966e599..65e41ef529a 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -168,6 +168,7 @@ jobs: echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" + # For Meson. # See also: https://github.com/mesonbuild/meson/issues/7701 echo "PKG_CONFIG=$(brew --prefix pkgconf)/bin/pkgconf" >> $GITHUB_ENV From 88138347f4bacd2323f4970fba060db62d9c4cf0 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Wed, 11 Mar 2026 12:39:32 +0100 Subject: [PATCH 04/13] Attempt setting grpc for Ruby --- .github/workflows/cpp.yml | 2 ++ .github/workflows/python.yml | 2 ++ .github/workflows/ruby.yml | 3 +++ 3 files changed, 7 insertions(+) diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml index a931818ab77..61d45373342 100644 --- a/.github/workflows/cpp.yml +++ b/.github/workflows/cpp.yml @@ -232,6 +232,8 @@ jobs: brew bundle --file=cpp/Brewfile # protobuf@33 is keg-only, so make it visible to CMake and pkg-config. + # Remove this workaround after the gRPC problem is fixed. + # See https://github.com/grpc/grpc/issues/41755 export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 538dcdca392..c2b4ccf2e11 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -202,6 +202,8 @@ jobs: brew bundle --file=cpp/Brewfile # protobuf@33 is keg-only, so make it visible to CMake and pkg-config. + # Remove this workaround after the gRPC problem is fixed. + # See https://github.com/grpc/grpc/issues/41755 export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 65e41ef529a..25287840fa5 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -148,6 +148,7 @@ jobs: ARROW_WITH_SNAPPY: ON ARROW_WITH_ZLIB: ON ARROW_WITH_ZSTD: ON + gRPC_SOURCE: BUNDLED steps: - name: Checkout Arrow uses: actions/checkout@v6 @@ -164,6 +165,8 @@ jobs: brew bundle --file=c_glib/Brewfile # protobuf@33 is keg-only, so make it visible to CMake and pkg-config. + # Remove this workaround after the gRPC problem is fixed. + # See https://github.com/grpc/grpc/issues/41755 export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" From e3f06857c31cbfde592ac2d5240d2507ce6a6520 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Wed, 11 Mar 2026 13:41:31 +0100 Subject: [PATCH 05/13] Attempt setting grpc and unlink protobuf for Ruby --- .github/workflows/ruby.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 25287840fa5..0cb7bc73e79 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -164,9 +164,11 @@ jobs: brew bundle --file=cpp/Brewfile brew bundle --file=c_glib/Brewfile - # protobuf@33 is keg-only, so make it visible to CMake and pkg-config. - # Remove this workaround after the gRPC problem is fixed. + # protobuf@33 workaround: unlink v34 (pulled by grpc) and make + # keg-only protobuf@33 visible to CMake and pkg-config. + # Remove after gRPC problem is fixed. # See https://github.com/grpc/grpc/issues/41755 + brew unlink protobuf export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" From 445145eb7a50044b2a0434f29dc50b244d296933 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Wed, 11 Mar 2026 14:41:16 +0100 Subject: [PATCH 06/13] Attempt setting grpc, protobuf and unlink for Ruby --- .github/workflows/cpp.yml | 1 + .github/workflows/ruby.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml index 61d45373342..392120e6489 100644 --- a/.github/workflows/cpp.yml +++ b/.github/workflows/cpp.yml @@ -238,6 +238,7 @@ jobs: echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" + - name: Install MinIO run: | $(brew --prefix bash)/bin/bash \ diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 0cb7bc73e79..b913b74033e 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -148,6 +148,7 @@ jobs: ARROW_WITH_SNAPPY: ON ARROW_WITH_ZLIB: ON ARROW_WITH_ZSTD: ON + Protobuf_SOURCE: BUNDLED gRPC_SOURCE: BUNDLED steps: - name: Checkout Arrow From 4dd559cf4ad81b59d85e6855a094d0fee83dff83 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Wed, 11 Mar 2026 15:36:13 +0100 Subject: [PATCH 07/13] Use protobuf v34 for macOS Ruby build --- .github/workflows/ruby.yml | 12 ------------ .../flight/transport/grpc/serialization_internal.cc | 5 ++++- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index b913b74033e..c6234b9192e 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -148,8 +148,6 @@ jobs: ARROW_WITH_SNAPPY: ON ARROW_WITH_ZLIB: ON ARROW_WITH_ZSTD: ON - Protobuf_SOURCE: BUNDLED - gRPC_SOURCE: BUNDLED steps: - name: Checkout Arrow uses: actions/checkout@v6 @@ -165,16 +163,6 @@ jobs: brew bundle --file=cpp/Brewfile brew bundle --file=c_glib/Brewfile - # protobuf@33 workaround: unlink v34 (pulled by grpc) and make - # keg-only protobuf@33 visible to CMake and pkg-config. - # Remove after gRPC problem is fixed. - # See https://github.com/grpc/grpc/issues/41755 - brew unlink protobuf - export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" - echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" - echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" - echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" - # For Meson. # See also: https://github.com/mesonbuild/meson/issues/7701 echo "PKG_CONFIG=$(brew --prefix pkgconf)/bin/pkgconf" >> $GITHUB_ENV diff --git a/cpp/src/arrow/flight/transport/grpc/serialization_internal.cc b/cpp/src/arrow/flight/transport/grpc/serialization_internal.cc index 0b8c90a08eb..d4848c5077d 100644 --- a/cpp/src/arrow/flight/transport/grpc/serialization_internal.cc +++ b/cpp/src/arrow/flight/transport/grpc/serialization_internal.cc @@ -353,7 +353,10 @@ ::grpc::Status FlightDataDeserialize(ByteBuffer* buffer, // Can't use ParseFromCodedStream as this reads the entire // rest of the stream into the descriptor command field. std::string buffer; - pb_stream.ReadString(&buffer, length); + if (!pb_stream.ReadString(&buffer, length)) { + return {::grpc::StatusCode::INTERNAL, + "Unable to read FlightDescriptor from protobuf"}; + } if (!pb_descriptor.ParseFromString(buffer)) { return {::grpc::StatusCode::INTERNAL, "Unable to parse FlightDescriptor"}; } From ba31dc18dc4af903668d5b7287507e5cb00078c1 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Wed, 11 Mar 2026 16:02:00 +0100 Subject: [PATCH 08/13] Apply solution from #49436 --- cpp/src/arrow/flight/sql/server.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cpp/src/arrow/flight/sql/server.cc b/cpp/src/arrow/flight/sql/server.cc index 8471fa8a2b1..10dd073b622 100644 --- a/cpp/src/arrow/flight/sql/server.cc +++ b/cpp/src/arrow/flight/sql/server.cc @@ -537,7 +537,13 @@ arrow::Result CreateStatementQueryTicket( ticket_statement_query.set_statement_handle(statement_handle); google::protobuf::Any ticket; +#if PROTOBUF_VERSION >= 3015000 + if (!ticket.PackFrom(ticket_statement_query)) { + return Status::IOError("Failed to pack ticket"); + } +#else ticket.PackFrom(ticket_statement_query); +#endif std::string ticket_string; From 8c13094caad43eadf9068f9c7a6a1c51e713defb Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Thu, 12 Mar 2026 12:49:58 +0100 Subject: [PATCH 09/13] New approach with brew update --- .github/workflows/cpp.yml | 12 +++--------- .github/workflows/python.yml | 12 +++--------- .github/workflows/ruby.yml | 1 - 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml index 392120e6489..3effb88b606 100644 --- a/.github/workflows/cpp.yml +++ b/.github/workflows/cpp.yml @@ -229,16 +229,10 @@ jobs: # pkg-config formula is removed from GitHub Actions runner. brew uninstall pkg-config || : brew uninstall pkg-config@0.29.2 || : + # Workaround for https://github.com/grpc/grpc/issues/41755 + # Remove once the runner ships a newer Homebrew. + brew update brew bundle --file=cpp/Brewfile - - # protobuf@33 is keg-only, so make it visible to CMake and pkg-config. - # Remove this workaround after the gRPC problem is fixed. - # See https://github.com/grpc/grpc/issues/41755 - export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" - echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" - echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" - echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" - - name: Install MinIO run: | $(brew --prefix bash)/bin/bash \ diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index c2b4ccf2e11..aa333606529 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -199,16 +199,10 @@ jobs: # pkg-config formula is removed from GitHub Actions runner. brew uninstall pkg-config || : brew uninstall pkg-config@0.29.2 || : + # Workaround for https://github.com/grpc/grpc/issues/41755 + # Remove once the runner ships a newer Homebrew. + brew update brew bundle --file=cpp/Brewfile - - # protobuf@33 is keg-only, so make it visible to CMake and pkg-config. - # Remove this workaround after the gRPC problem is fixed. - # See https://github.com/grpc/grpc/issues/41755 - export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" - echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" - echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" - echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" - python -m pip install \ -r python/requirements-build.txt \ -r python/requirements-test.txt diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index c6234b9192e..1e91f624878 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -162,7 +162,6 @@ jobs: brew update brew bundle --file=cpp/Brewfile brew bundle --file=c_glib/Brewfile - # For Meson. # See also: https://github.com/mesonbuild/meson/issues/7701 echo "PKG_CONFIG=$(brew --prefix pkgconf)/bin/pkgconf" >> $GITHUB_ENV From 1188e7d12c2b36c6854db341bee41e2b5d259e51 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Thu, 12 Mar 2026 13:14:51 +0100 Subject: [PATCH 10/13] Remove @33 --- cpp/Brewfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/Brewfile b/cpp/Brewfile index afd1bfe0a31..811712516bf 100644 --- a/cpp/Brewfile +++ b/cpp/Brewfile @@ -36,7 +36,7 @@ brew "ninja" brew "node" brew "openssl" brew "pkgconf" -brew "protobuf@33" +brew "protobuf" brew "python" brew "rapidjson" brew "re2" From 4f26c65b3bcc6315bf24261892cb0b3a00adcf3a Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Thu, 12 Mar 2026 14:14:38 +0100 Subject: [PATCH 11/13] Handle PackFrom nodiscard --- cpp/src/arrow/engine/substrait/expression_internal.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cpp/src/arrow/engine/substrait/expression_internal.cc b/cpp/src/arrow/engine/substrait/expression_internal.cc index d91edbfce6d..09b295632b8 100644 --- a/cpp/src/arrow/engine/substrait/expression_internal.cc +++ b/cpp/src/arrow/engine/substrait/expression_internal.cc @@ -804,7 +804,13 @@ struct ScalarToProtoImpl { auto user_defined = std::make_unique(); user_defined->set_type_reference(anchor); auto value_any = std::make_unique(); +#if PROTOBUF_VERSION >= 3015000 + if (!value_any->PackFrom(value)) { + return Status::IOError("Failed to pack user-defined type value"); + } +#else value_any->PackFrom(value); +#endif user_defined->set_allocated_value(value_any.release()); lit_->set_allocated_user_defined(user_defined.release()); return Status::OK(); From 598cbf49d59145dc61cbad7b93ee31e54402f878 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Thu, 12 Mar 2026 14:29:11 +0100 Subject: [PATCH 12/13] Handle UnpackTo in options.cc --- cpp/src/arrow/engine/substrait/options.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cpp/src/arrow/engine/substrait/options.cc b/cpp/src/arrow/engine/substrait/options.cc index f8e71733865..a6951d540ef 100644 --- a/cpp/src/arrow/engine/substrait/options.cc +++ b/cpp/src/arrow/engine/substrait/options.cc @@ -68,17 +68,35 @@ class DefaultExtensionProvider : public BaseExtensionProvider { const ExtensionSet& ext_set) override { if (rel.Is()) { substrait_ext::AsOfJoinRel as_of_join_rel; +#if PROTOBUF_VERSION >= 3015000 + if (!rel.UnpackTo(&as_of_join_rel)) { + return Status::IOError("Failed to unpack AsOfJoinRel"); + } +#else rel.UnpackTo(&as_of_join_rel); +#endif return MakeAsOfJoinRel(inputs, as_of_join_rel, ext_set); } if (rel.Is()) { substrait_ext::NamedTapRel named_tap_rel; +#if PROTOBUF_VERSION >= 3015000 + if (!rel.UnpackTo(&named_tap_rel)) { + return Status::IOError("Failed to unpack NamedTapRel"); + } +#else rel.UnpackTo(&named_tap_rel); +#endif return MakeNamedTapRel(conv_opts, inputs, named_tap_rel, ext_set); } if (rel.Is()) { substrait_ext::SegmentedAggregateRel seg_agg_rel; +#if PROTOBUF_VERSION >= 3015000 + if (!rel.UnpackTo(&seg_agg_rel)) { + return Status::IOError("Failed to unpack SegmentedAggregateRel"); + } +#else rel.UnpackTo(&seg_agg_rel); +#endif return MakeSegmentedAggregateRel(conv_opts, inputs, seg_agg_rel, ext_set); } return Status::NotImplemented("Unrecognized extension in Substrait plan: ", From bf088e08f319d5fee5e69d3d7032e9814a5aeb14 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Thu, 12 Mar 2026 14:59:35 +0100 Subject: [PATCH 13/13] Removed ifdef from options.cc --- cpp/src/arrow/engine/substrait/options.cc | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/cpp/src/arrow/engine/substrait/options.cc b/cpp/src/arrow/engine/substrait/options.cc index a6951d540ef..0c647df54fd 100644 --- a/cpp/src/arrow/engine/substrait/options.cc +++ b/cpp/src/arrow/engine/substrait/options.cc @@ -68,35 +68,23 @@ class DefaultExtensionProvider : public BaseExtensionProvider { const ExtensionSet& ext_set) override { if (rel.Is()) { substrait_ext::AsOfJoinRel as_of_join_rel; -#if PROTOBUF_VERSION >= 3015000 if (!rel.UnpackTo(&as_of_join_rel)) { return Status::IOError("Failed to unpack AsOfJoinRel"); } -#else - rel.UnpackTo(&as_of_join_rel); -#endif return MakeAsOfJoinRel(inputs, as_of_join_rel, ext_set); } if (rel.Is()) { substrait_ext::NamedTapRel named_tap_rel; -#if PROTOBUF_VERSION >= 3015000 if (!rel.UnpackTo(&named_tap_rel)) { return Status::IOError("Failed to unpack NamedTapRel"); } -#else - rel.UnpackTo(&named_tap_rel); -#endif return MakeNamedTapRel(conv_opts, inputs, named_tap_rel, ext_set); } if (rel.Is()) { substrait_ext::SegmentedAggregateRel seg_agg_rel; -#if PROTOBUF_VERSION >= 3015000 if (!rel.UnpackTo(&seg_agg_rel)) { return Status::IOError("Failed to unpack SegmentedAggregateRel"); } -#else - rel.UnpackTo(&seg_agg_rel); -#endif return MakeSegmentedAggregateRel(conv_opts, inputs, seg_agg_rel, ext_set); } return Status::NotImplemented("Unrecognized extension in Substrait plan: ",