From 26f08422eafe8901785ca7de009e5f613eb70e73 Mon Sep 17 00:00:00 2001 From: Harsha Vardhan Date: Mon, 27 Jul 2026 20:47:35 +0530 Subject: [PATCH 1/2] GH-50657: [C++][Dev] Implement BinaryView support in gdb_arrow.py --- cpp/gdb_arrow.py | 9 ++++++++- python/pyarrow/src/arrow/python/gdb.cc | 8 ++++++++ python/pyarrow/tests/test_gdb.py | 16 ++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/cpp/gdb_arrow.py b/cpp/gdb_arrow.py index c3f5ab62981e..8872d34478ca 100644 --- a/cpp/gdb_arrow.py +++ b/cpp/gdb_arrow.py @@ -47,8 +47,11 @@ 'EXTENSION', 'FIXED_SIZE_LIST', 'DURATION', 'LARGE_STRING', 'LARGE_BINARY', 'LARGE_LIST', 'INTERVAL_MONTH_DAY_NANO'] +_type_id_tuples = [(name, i) for i, name in enumerate(_type_ids)] +_type_id_tuples.extend([('STRING_VIEW', 39), ('BINARY_VIEW', 40)]) + # Mirror the C++ Type::type enum -Type = enum.IntEnum('Type', _type_ids, start=0) +Type = enum.IntEnum('Type', _type_id_tuples) # Mirror the C++ TimeUnit::type enum TimeUnit = enum.IntEnum('TimeUnit', ['SECOND', 'MILLI', 'MICRO', 'NANO'], @@ -1041,8 +1044,10 @@ def num_rows(self): 'Decimal256Type': 'decimal256', 'StringType': 'utf8', 'LargeStringType': 'large_utf8', + 'StringViewType': 'utf8_view', 'BinaryType': 'binary', 'LargeBinaryType': 'large_binary', + 'BinaryViewType': 'binary_view', 'FixedSizeBinaryType': 'fixed_size_binary', 'ListType': 'list', 'LargeListType': 'large_list', @@ -2042,6 +2047,8 @@ class ExtensionTypeClass(DataTypeClass): Type.BINARY: DataTypeTraits(BaseBinaryTypeClass, 'BinaryType'), Type.LARGE_STRING: DataTypeTraits(BaseBinaryTypeClass, 'LargeStringType'), Type.LARGE_BINARY: DataTypeTraits(BaseBinaryTypeClass, 'LargeBinaryType'), + Type.STRING_VIEW: DataTypeTraits(BaseBinaryTypeClass, 'StringViewType'), + Type.BINARY_VIEW: DataTypeTraits(BaseBinaryTypeClass, 'BinaryViewType'), Type.FIXED_SIZE_BINARY: DataTypeTraits(FixedSizeBinaryTypeClass, 'FixedSizeBinaryType'), diff --git a/python/pyarrow/src/arrow/python/gdb.cc b/python/pyarrow/src/arrow/python/gdb.cc index 2a7d2eda4bf2..6ff6bfd9745d 100644 --- a/python/pyarrow/src/arrow/python/gdb.cc +++ b/python/pyarrow/src/arrow/python/gdb.cc @@ -165,6 +165,10 @@ void TestSession() { StringType string_type; LargeBinaryType large_binary_type; LargeStringType large_string_type; + BinaryViewType binary_view_type; + StringViewType string_view_type; + auto heap_binary_view_type = binary_view(); + auto heap_string_view_type = utf8_view(); FixedSizeBinaryType fixed_size_binary_type(10); auto heap_fixed_size_binary_type = fixed_size_binary(10); @@ -313,6 +317,10 @@ void TestSession() { LargeBinaryScalar large_binary_scalar_abc{Buffer::FromString("abc")}; LargeStringScalar large_string_scalar_hehe{Buffer::FromString("héhé")}; + BinaryViewScalar binary_view_scalar_null{binary_view()}; + BinaryViewScalar binary_view_scalar_abc{Buffer::FromString("abc")}; + StringViewScalar string_view_scalar_null{utf8_view()}; + StringViewScalar string_view_scalar_hehe{Buffer::FromString("héhé")}; FixedSizeBinaryScalar fixed_size_binary_scalar{Buffer::FromString("abc"), fixed_size_binary(3)}; diff --git a/python/pyarrow/tests/test_gdb.py b/python/pyarrow/tests/test_gdb.py index 912953ae60d2..133dd7504879 100644 --- a/python/pyarrow/tests/test_gdb.py +++ b/python/pyarrow/tests/test_gdb.py @@ -368,6 +368,8 @@ def test_types_stack(gdb_arrow): check_stack_repr(gdb_arrow, "string_type", "arrow::utf8()") check_stack_repr(gdb_arrow, "large_binary_type", "arrow::large_binary()") check_stack_repr(gdb_arrow, "large_string_type", "arrow::large_utf8()") + check_stack_repr(gdb_arrow, "binary_view_type", "arrow::binary_view()") + check_stack_repr(gdb_arrow, "string_view_type", "arrow::utf8_view()") check_stack_repr(gdb_arrow, "fixed_size_binary_type", "arrow::fixed_size_binary(10)") @@ -427,6 +429,8 @@ def test_types_heap(gdb_arrow): check_heap_repr(gdb_arrow, "heap_decimal128_type", "arrow::decimal128(16, 5)") + check_heap_repr(gdb_arrow, "heap_binary_view_type", "arrow::binary_view()") + check_heap_repr(gdb_arrow, "heap_string_view_type", "arrow::utf8_view()") check_heap_repr(gdb_arrow, "heap_list_type", "arrow::list(arrow::uint8())") @@ -625,6 +629,12 @@ def test_scalars_stack(gdb_arrow): check_stack_repr( gdb_arrow, "large_binary_scalar_abc", 'arrow::LargeBinaryScalar of size 3, value "abc"') + check_stack_repr( + gdb_arrow, "binary_view_scalar_null", + "arrow::BinaryViewScalar of null value") + check_stack_repr( + gdb_arrow, "binary_view_scalar_abc", + 'arrow::BinaryViewScalar of size 3, value "abc"') check_stack_repr( gdb_arrow, "string_scalar_null", @@ -645,6 +655,12 @@ def test_scalars_stack(gdb_arrow): check_stack_repr( gdb_arrow, "large_string_scalar_hehe", 'arrow::LargeStringScalar of size 6, value "héhé"') + check_stack_repr( + gdb_arrow, "string_view_scalar_null", + "arrow::StringViewScalar of null value") + check_stack_repr( + gdb_arrow, "string_view_scalar_hehe", + 'arrow::StringViewScalar of size 6, value "héhé"') check_stack_repr( gdb_arrow, "fixed_size_binary_scalar", From f09a279df44c53f8b04399b60c12b76282b81895 Mon Sep 17 00:00:00 2001 From: Harsha Vardhan Date: Tue, 28 Jul 2026 12:18:43 +0530 Subject: [PATCH 2/2] GH-50666: Use Ubuntu 24.04 for release source verification jobs * Remove Ubuntu 22.04 from the release source verification task matrix. * Update the release verification GitHub Actions workflow to use Ubuntu 24.04. * Update the Linux wheel verification task to use Ubuntu 24.04. * Update the default Ubuntu version used by the release verification Docker environment. * Remove the obsolete Ubuntu 22.04 release verification Dockerfile. --- .env | 2 +- .github/workflows/verify_rc.yml | 1 - ci/docker/ubuntu-22.04-verify-rc.dockerfile | 31 --------------------- compose.yaml | 2 +- dev/tasks/python-wheels/github.linux.yml | 4 +-- dev/tasks/tasks.yml | 1 - 6 files changed, 4 insertions(+), 37 deletions(-) delete mode 100644 ci/docker/ubuntu-22.04-verify-rc.dockerfile diff --git a/.env b/.env index ca77b9441d7b..e07c3b5b9601 100644 --- a/.env +++ b/.env @@ -54,7 +54,7 @@ ALMALINUX=8 ALPINE_LINUX=3.22 DEBIAN=13 FEDORA=42 -UBUNTU=22.04 +UBUNTU=24.04 # Default versions for various dependencies CLANG_TOOLS=18 diff --git a/.github/workflows/verify_rc.yml b/.github/workflows/verify_rc.yml index df70e755642a..eddbf646b126 100644 --- a/.github/workflows/verify_rc.yml +++ b/.github/workflows/verify_rc.yml @@ -153,7 +153,6 @@ jobs: distro: - almalinux-8 - conda - - ubuntu-22.04 - ubuntu-24.04 env: RC: ${{ needs.target.outputs.rc }} diff --git a/ci/docker/ubuntu-22.04-verify-rc.dockerfile b/ci/docker/ubuntu-22.04-verify-rc.dockerfile deleted file mode 100644 index 596410a5390b..000000000000 --- a/ci/docker/ubuntu-22.04-verify-rc.dockerfile +++ /dev/null @@ -1,31 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -ARG arch=amd64 -ARG base=ubuntu:22.04 -FROM --platform=linux/${arch} ${base} - -ENV DEBIAN_FRONTEND=noninteractive -COPY dev/release/setup-ubuntu.sh / -RUN /setup-ubuntu.sh && \ - rm /setup-ubuntu.sh && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* - -ARG cmake -COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/ -RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/ diff --git a/compose.yaml b/compose.yaml index 6809d6994b6c..f913813b7afa 100644 --- a/compose.yaml +++ b/compose.yaml @@ -2084,7 +2084,7 @@ services: # docker compose build ubuntu-verify-rc # docker compose run -e VERIFY_VERSION=6.0.1 -e VERIFY_RC=1 ubuntu-verify-rc # Parameters: - # UBUNTU: 22.04, 24.04 + # UBUNTU: 24.04 image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-verify-rc build: context: . diff --git a/dev/tasks/python-wheels/github.linux.yml b/dev/tasks/python-wheels/github.linux.yml index e9e36566ba8d..074a6a85181c 100644 --- a/dev/tasks/python-wheels/github.linux.yml +++ b/dev/tasks/python-wheels/github.linux.yml @@ -104,12 +104,12 @@ jobs: -e TEST_WHEELS=1 \ almalinux-verify-rc - - name: Test wheel on Ubuntu 22.04 + - name: Test wheel on Ubuntu 24.04 shell: bash if: | '{{ python_version }}' == '3.11' && '{{ linux_wheel_kind }}' == 'manylinux' env: - UBUNTU: "22.04" + UBUNTU: "24.04" run: | archery docker run \ -e TEST_DEFAULT=0 \ diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml index 89d239a0a266..6c16808ce7f9 100644 --- a/dev/tasks/tasks.yml +++ b/dev/tasks/tasks.yml @@ -272,7 +272,6 @@ tasks: {% for distribution, version in [("conda", "latest"), ("almalinux", "10"), - ("ubuntu", "22.04"), ("ubuntu", "24.04")] %} {% for target in ["cpp", "integration",