---
dev/release/01-prepare-test.rb | 23 +++++++++++++++++++++++
dev/release/post-12-bump-versions-test.rb | 23 +++++++++++++++++++++++
dev/release/utils-prepare.sh | 1 +
r/pkgdown/assets/versions.html | 13 ++++++++++---
r/pkgdown/assets/versions.json | 4 ++++
5 files changed, 61 insertions(+), 3 deletions(-)
diff --git a/dev/release/01-prepare-test.rb b/dev/release/01-prepare-test.rb
index ca53b7f8fdee5..27f9f5f869ea3 100644
--- a/dev/release/01-prepare-test.rb
+++ b/dev/release/01-prepare-test.rb
@@ -263,6 +263,18 @@ def test_version_pre_tag
]
if next_release_type == :major
expected_changes += [
+ {
+ path: "r/pkgdown/assets/versions.html",
+ hunks: [
+ [
+ "-#{@previous_version}.9000 (dev)
",
+ "-#{@previous_r_version} (release)
",
+ "+#{@release_version}.9000 (dev)
",
+ "+#{@release_version} (release)
",
+ "+#{@previous_r_version}
",
+ ]
+ ],
+ },
{
path: "r/pkgdown/assets/versions.json",
hunks: [
@@ -281,6 +293,17 @@ def test_version_pre_tag
]
else
expected_changes += [
+ {
+ path: "r/pkgdown/assets/versions.html",
+ hunks: [
+ [
+ "-#{@previous_version}.9000 (dev)
",
+ "-#{@previous_r_version} (release)
",
+ "+#{@release_version}.9000 (dev)
",
+ "+#{@release_version} (release)
",
+ ]
+ ],
+ },
{
path: "r/pkgdown/assets/versions.json",
hunks: [
diff --git a/dev/release/post-12-bump-versions-test.rb b/dev/release/post-12-bump-versions-test.rb
index 9af334c496fe6..9c4026584aeca 100644
--- a/dev/release/post-12-bump-versions-test.rb
+++ b/dev/release/post-12-bump-versions-test.rb
@@ -210,6 +210,18 @@ def test_version_post_tag
["+ (#{@next_major_version}, 0),"],
],
},
+ {
+ path: "r/pkgdown/assets/versions.html",
+ hunks: [
+ [
+ "-#{@previous_version}.9000 (dev)
",
+ "-#{@previous_r_version} (release)
",
+ "+#{@release_version}.9000 (dev)
",
+ "+#{@release_version} (release)
",
+ "+#{@previous_r_version}
",
+ ],
+ ],
+ },
{
path: "r/pkgdown/assets/versions.json",
hunks: [
@@ -228,6 +240,17 @@ def test_version_post_tag
]
else
expected_changes += [
+ {
+ path: "r/pkgdown/assets/versions.html",
+ hunks: [
+ [
+ "-#{@previous_version}.9000 (dev)
",
+ "-#{@previous_r_version} (release)
",
+ "+#{@release_version}.9000 (dev)
",
+ "+#{@release_version} (release)
",
+ ],
+ ],
+ },
{
path: "r/pkgdown/assets/versions.json",
hunks: [
diff --git a/dev/release/utils-prepare.sh b/dev/release/utils-prepare.sh
index ecdd0a26dcb7a..19ffda578b4b0 100644
--- a/dev/release/utils-prepare.sh
+++ b/dev/release/utils-prepare.sh
@@ -194,6 +194,7 @@ update_versions() {
"${base_version}" \
"${next_version}"
git add docs/source/_static/versions.json
+ git add r/pkgdown/assets/versions.html
git add r/pkgdown/assets/versions.json
popd
}
diff --git a/r/pkgdown/assets/versions.html b/r/pkgdown/assets/versions.html
index 8ba513a98c85b..e2f56772cf339 100644
--- a/r/pkgdown/assets/versions.html
+++ b/r/pkgdown/assets/versions.html
@@ -1,9 +1,16 @@
-13.0.0.9000 (dev)
-13.0.0.1 (release)
+18.0.0.9000 (dev)
+18.0.0 (release)
+17.0.0
+16.1.0
+16.0.0
+15.0.2
+14.0.2
+13.0.0.1
12.0.1.1
-11.0.0.3
+12.0.0
+11.0.0
10.0.1
9.0.0
8.0.0
diff --git a/r/pkgdown/assets/versions.json b/r/pkgdown/assets/versions.json
index cecbed7f32818..41c8469772f9d 100644
--- a/r/pkgdown/assets/versions.json
+++ b/r/pkgdown/assets/versions.json
@@ -15,6 +15,10 @@
"name": "16.1.0",
"version": "16.1/"
},
+ {
+ "name": "16.0.0",
+ "version": "16.0/"
+ },
{
"name": "15.0.2",
"version": "15.0/"
From e1fa7e5fb257fa9f83ffcc531efda8a4489b2961 Mon Sep 17 00:00:00 2001
From: Sutou Kouhei
Date: Fri, 1 Nov 2024 08:47:17 +0900
Subject: [PATCH 25/59] GH-44590: [C++] Add `const` and `&` to
`arrow::Array::statistics()` return type (#44592)
### Rationale for this change
It must be immutable.
### What changes are included in this PR?
Add missing `const` and `&`.
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
**This PR includes breaking changes to public APIs.**
* GitHub Issue: #44590
Authored-by: Sutou Kouhei
Signed-off-by: Sutou Kouhei
---
cpp/src/arrow/array/array_base.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cpp/src/arrow/array/array_base.h b/cpp/src/arrow/array/array_base.h
index e4af67d7e5f0b..21faa3f4279ea 100644
--- a/cpp/src/arrow/array/array_base.h
+++ b/cpp/src/arrow/array/array_base.h
@@ -237,8 +237,8 @@ class ARROW_EXPORT Array {
/// This just delegates to calling statistics on the underlying ArrayData
/// object which backs this Array.
///
- /// \return const ArrayStatistics&
- std::shared_ptr statistics() const { return data_->statistics; }
+ /// \return const std::shared_ptr&
+ const std::shared_ptr& statistics() const { return data_->statistics; }
protected:
Array() = default;
From f3abc6802a94a1a4202c710c236a24a137e0a0d7 Mon Sep 17 00:00:00 2001
From: Bryce Mecum
Date: Fri, 1 Nov 2024 07:58:33 -0700
Subject: [PATCH 26/59] GH-43547: [R][CI] Add recheck workflow for checking
reverse dependencies on GHA (#43784)
### Rationale for this change
See https://github.com/apache/arrow/issues/43547.
### What changes are included in this PR?
Adds two new new crossbow tasks for performing reverse dependency checking using https://github.com/r-devel/recheck:
- `r-recheck-most`
- `r-recheck-strong`
### Are these changes tested?
Yes. https://github.com/apache/arrow/pull/44523#issuecomment-2434122461.
### Are there any user-facing changes?
No.
* GitHub Issue: #43547
Fixes https://github.com/apache/arrow/issues/43547.
Authored-by: Bryce Mecum
Signed-off-by: Bryce Mecum
---
dev/tasks/r/github.recheck.yml | 30 ++++++++++++++++++++++++++++++
dev/tasks/tasks.yml | 15 +++++++++++++++
2 files changed, 45 insertions(+)
create mode 100644 dev/tasks/r/github.recheck.yml
diff --git a/dev/tasks/r/github.recheck.yml b/dev/tasks/r/github.recheck.yml
new file mode 100644
index 0000000000000..5f0095fa22126
--- /dev/null
+++ b/dev/tasks/r/github.recheck.yml
@@ -0,0 +1,30 @@
+# 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.
+
+{% import 'macros.jinja' as macros with context %}
+
+{{ macros.github_header() }}
+
+jobs:
+ recheck:
+ name: Reverse check {{ which }} dependents
+ uses: r-devel/recheck/.github/workflows/recheck.yml@9fe04de60ebeadd505b8d76223a346617ccca836
+ with:
+ which: {{ which }}
+ subdirectory: r
+ repository: {{ arrow.github_repo }}
+ ref: {{ arrow.branch }}
diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml
index 30c1daecf7a31..8f542265fd02d 100644
--- a/dev/tasks/tasks.yml
+++ b/dev/tasks/tasks.yml
@@ -94,6 +94,7 @@ groups:
r:
- test*-r-*
- r-binary-packages
+ - r-recheck-most
ruby:
- test-*ruby*
@@ -901,6 +902,20 @@ tasks:
- r-pkg__bin__macosx__big-sur-arm64__contrib__4.3__arrow_{no_rc_r_version}\.tgz
- r-pkg__src__contrib__arrow_{no_rc_r_version}\.tar\.gz
+{% for which in ["strong", "most"] %}
+ # strong and most used here are defined by ?tools::package_dependencies as:
+ #
+ # strong: Depends, Imports, LinkingTo
+ # most: Depends, Imports, LinkingTo, Suggests
+ #
+ # So the key difference between strong and most is whether you want to expand
+ # the reverse dependency checking to Suggests (most) or not.
+ r-recheck-{{which}}:
+ ci: github
+ template: r/github.recheck.yml
+ params:
+ which: {{which}}
+{% endfor %}
########################### Release verification ############################
From 277df0ec4bdc0e9bc4557ce40d38fcf921396683 Mon Sep 17 00:00:00 2001
From: Hiroyuki Sato
Date: Sat, 2 Nov 2024 07:04:15 +0900
Subject: [PATCH 27/59] GH-44601: [GLib] Fix the wrong GARROW_AVAILABLE_IN
declaration (#44602)
### Rationale for this change
GArrowDecimal64 will be introduced in the 19.0.0 release.
This part should be `GARROW_AVAILABLE_IN_19_0`
instead of `GARROW_AVAILABLE_IN_ALL`
### What changes are included in this PR?
Change the `GARROW_AVAILABLE_IN` declaration.
### Are these changes tested?
YES
### Are there any user-facing changes?
NO
* GitHub Issue: #44601
Authored-by: Hiroyuki Sato
Signed-off-by: Sutou Kouhei
---
c_glib/arrow-glib/decimal.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/c_glib/arrow-glib/decimal.h b/c_glib/arrow-glib/decimal.h
index 6f839a67d9b3b..e034f1bbdc84c 100644
--- a/c_glib/arrow-glib/decimal.h
+++ b/c_glib/arrow-glib/decimal.h
@@ -106,7 +106,7 @@ garrow_decimal32_rescale(GArrowDecimal32 *decimal,
/* Disabled because it conflicts with GARROW_TYPE_DECIMAL64 in GArrowType. */
/* #define GARROW_TYPE_DECIMAL64 (garrow_decimal64_get_type()) */
-GARROW_AVAILABLE_IN_ALL
+GARROW_AVAILABLE_IN_19_0
G_DECLARE_DERIVABLE_TYPE(GArrowDecimal64, garrow_decimal64, GARROW, DECIMAL64, GObject)
struct _GArrowDecimal64Class
From 11c11a48234a7f49e0585f5762b3a6332ac7622a Mon Sep 17 00:00:00 2001
From: Hiroyuki Sato
Date: Sat, 2 Nov 2024 07:07:47 +0900
Subject: [PATCH 28/59] GH-44603: [GLib] Add GArrowDecimal64Array and
GArrowDecimal64ArrayBuilder (#44605)
### Rationale for this change
The `arrow::Decimal64Array` has been released. The `GArrowDecimal64Array` class must be implemented in the GLib.
### What changes are included in this PR?
* Implement `GArrowDecimal64Array`
* Implement `GArrowDecimal64ArrayBuilder`
### Are these changes tested?
YES
### Are there any user-facing changes?
NO
* GitHub Issue: #44603
Authored-by: Hiroyuki Sato
Signed-off-by: Sutou Kouhei
---
c_glib/arrow-glib/array-builder.cpp | 105 ++++++++++++++++++++++++++++
c_glib/arrow-glib/array-builder.h | 30 ++++++++
c_glib/arrow-glib/basic-array.cpp | 62 ++++++++++++++++
c_glib/arrow-glib/basic-array.h | 20 ++++++
c_glib/test/test-decimal64-array.rb | 37 ++++++++++
5 files changed, 254 insertions(+)
create mode 100644 c_glib/test/test-decimal64-array.rb
diff --git a/c_glib/arrow-glib/array-builder.cpp b/c_glib/arrow-glib/array-builder.cpp
index 1897562e13286..4f82ee2983b34 100644
--- a/c_glib/arrow-glib/array-builder.cpp
+++ b/c_glib/arrow-glib/array-builder.cpp
@@ -457,6 +457,9 @@ G_BEGIN_DECLS
* #GArrowMapArrayBuilder is the class to create a new
* #GArrowMapArray.
*
+ * #GArrowDecimal64ArrayBuilder is the class to create a new
+ * #GArrowDecimal64Array.
+ *
* #GArrowDecimal128ArrayBuilder is the class to create a new
* #GArrowDecimal128Array.
*
@@ -6062,6 +6065,105 @@ garrow_map_array_builder_get_value_builder(GArrowMapArrayBuilder *builder)
return priv->value_builder;
}
+G_DEFINE_TYPE(GArrowDecimal64ArrayBuilder,
+ garrow_decimal64_array_builder,
+ GARROW_TYPE_FIXED_SIZE_BINARY_ARRAY_BUILDER)
+
+static void
+garrow_decimal64_array_builder_init(GArrowDecimal64ArrayBuilder *builder)
+{
+}
+
+static void
+garrow_decimal64_array_builder_class_init(GArrowDecimal64ArrayBuilderClass *klass)
+{
+}
+
+/**
+ * garrow_decimal64_array_builder_new:
+ * @data_type: #GArrowDecimal64DataType for the decimal.
+ *
+ * Returns: A newly created #GArrowDecimal64ArrayBuilder.
+ *
+ * Since: 19.0.0
+ */
+GArrowDecimal64ArrayBuilder *
+garrow_decimal64_array_builder_new(GArrowDecimal64DataType *data_type)
+{
+ auto arrow_data_type = garrow_data_type_get_raw(GARROW_DATA_TYPE(data_type));
+ auto builder =
+ garrow_array_builder_new(arrow_data_type, NULL, "[decimal64-array-builder][new]");
+ return GARROW_DECIMAL64_ARRAY_BUILDER(builder);
+}
+
+/**
+ * garrow_decimal64_array_builder_append_value:
+ * @builder: A #GArrowDecimal64ArrayBuilder.
+ * @value: (nullable): A decimal value.
+ * @error: (nullable): Return location for a #GError or %NULL.
+ *
+ * Returns: %TRUE on success, %FALSE if there was an error.
+ *
+ * Since: 19.0.0
+ */
+gboolean
+garrow_decimal64_array_builder_append_value(GArrowDecimal64ArrayBuilder *builder,
+ GArrowDecimal64 *value,
+ GError **error)
+{
+ if (value) {
+ auto arrow_decimal = garrow_decimal64_get_raw(value);
+ return garrow_array_builder_append_value(
+ GARROW_ARRAY_BUILDER(builder),
+ *arrow_decimal,
+ error,
+ "[decimal64-array-builder][append-value]");
+ } else {
+ return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
+ }
+}
+
+/**
+ * garrow_decimal64_array_builder_append_values:
+ * @builder: A #GArrowDecimal64ArrayBuilder.
+ * @values: (array length=values_length): The array of #GArrowDecimal64.
+ * @values_length: The length of @values.
+ * @is_valids: (nullable) (array length=is_valids_length): The array of
+ * boolean that shows whether the Nth value is valid or not. If the
+ * Nth @is_valids is %TRUE, the Nth @values is valid value. Otherwise
+ * the Nth value is null value.
+ * @is_valids_length: The length of @is_valids.
+ * @error: (nullable): Return location for a #GError or %NULL.
+ *
+ * Append multiple values at once. It's more efficient than multiple
+ * `append` and `append_null` calls.
+ *
+ * Returns: %TRUE on success, %FALSE if there was an error.
+ *
+ * Since: 19.0.0
+ */
+gboolean
+garrow_decimal64_array_builder_append_values(GArrowDecimal64ArrayBuilder *builder,
+ GArrowDecimal64 **values,
+ gint64 values_length,
+ const gboolean *is_valids,
+ gint64 is_valids_length,
+ GError **error)
+{
+ return garrow_array_builder_append_values(
+ GARROW_ARRAY_BUILDER(builder),
+ values,
+ values_length,
+ is_valids,
+ is_valids_length,
+ error,
+ "[decimal64-array-builder][append-values]",
+ [](guint8 *output, GArrowDecimal64 *value, gsize size) {
+ auto arrow_decimal = garrow_decimal64_get_raw(value);
+ arrow_decimal->ToBytes(output);
+ });
+}
+
G_DEFINE_TYPE(GArrowDecimal128ArrayBuilder,
garrow_decimal128_array_builder,
GARROW_TYPE_FIXED_SIZE_BINARY_ARRAY_BUILDER)
@@ -6581,6 +6683,9 @@ garrow_array_builder_new_raw(std::shared_ptr *arrow_builder
case arrow::Type::type::MAP:
type = GARROW_TYPE_MAP_ARRAY_BUILDER;
break;
+ case arrow::Type::type::DECIMAL64:
+ type = GARROW_TYPE_DECIMAL64_ARRAY_BUILDER;
+ break;
case arrow::Type::type::DECIMAL128:
type = GARROW_TYPE_DECIMAL128_ARRAY_BUILDER;
break;
diff --git a/c_glib/arrow-glib/array-builder.h b/c_glib/arrow-glib/array-builder.h
index da9e8748ee387..f653ddb7781a3 100644
--- a/c_glib/arrow-glib/array-builder.h
+++ b/c_glib/arrow-glib/array-builder.h
@@ -1729,6 +1729,36 @@ GARROW_AVAILABLE_IN_0_17
GArrowArrayBuilder *
garrow_map_array_builder_get_value_builder(GArrowMapArrayBuilder *builder);
+#define GARROW_TYPE_DECIMAL64_ARRAY_BUILDER (garrow_decimal64_array_builder_get_type())
+GARROW_AVAILABLE_IN_19_0
+G_DECLARE_DERIVABLE_TYPE(GArrowDecimal64ArrayBuilder,
+ garrow_decimal64_array_builder,
+ GARROW,
+ DECIMAL64_ARRAY_BUILDER,
+ GArrowFixedSizeBinaryArrayBuilder)
+struct _GArrowDecimal64ArrayBuilderClass
+{
+ GArrowFixedSizeBinaryArrayBuilderClass parent_class;
+};
+
+GARROW_AVAILABLE_IN_19_0
+GArrowDecimal64ArrayBuilder *
+garrow_decimal64_array_builder_new(GArrowDecimal64DataType *data_type);
+
+GARROW_AVAILABLE_IN_19_0
+gboolean
+garrow_decimal64_array_builder_append_value(GArrowDecimal64ArrayBuilder *builder,
+ GArrowDecimal64 *value,
+ GError **error);
+GARROW_AVAILABLE_IN_19_0
+gboolean
+garrow_decimal64_array_builder_append_values(GArrowDecimal64ArrayBuilder *builder,
+ GArrowDecimal64 **values,
+ gint64 values_length,
+ const gboolean *is_valids,
+ gint64 is_valids_length,
+ GError **error);
+
#define GARROW_TYPE_DECIMAL128_ARRAY_BUILDER (garrow_decimal128_array_builder_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowDecimal128ArrayBuilder,
diff --git a/c_glib/arrow-glib/basic-array.cpp b/c_glib/arrow-glib/basic-array.cpp
index f102a252467a3..8c39715c384f0 100644
--- a/c_glib/arrow-glib/basic-array.cpp
+++ b/c_glib/arrow-glib/basic-array.cpp
@@ -171,6 +171,11 @@ G_BEGIN_DECLS
* have Arrow format data, you need to use #GArrowMonthDayNanoIntervalArray
* to create a new array.
*
+ * #GArrowDecimal64Array is a class for 64-bit decimal array. It can
+ * store zero or more 64-bit decimal data. If you don't have Arrow
+ * format data, you need to use #GArrowDecimal64ArrayBuilder to
+ * create a new array.
+ *
* #GArrowDecimal128Array is a class for 128-bit decimal array. It can
* store zero or more 128-bit decimal data. If you don't have Arrow
* format data, you need to use #GArrowDecimal128ArrayBuilder to
@@ -3090,6 +3095,60 @@ garrow_fixed_size_binary_array_get_values_bytes(GArrowFixedSizeBinaryArray *arra
arrow_binary_array->byte_width() * arrow_array->length());
}
+G_DEFINE_TYPE(GArrowDecimal64Array,
+ garrow_decimal64_array,
+ GARROW_TYPE_FIXED_SIZE_BINARY_ARRAY)
+static void
+garrow_decimal64_array_init(GArrowDecimal64Array *object)
+{
+}
+
+static void
+garrow_decimal64_array_class_init(GArrowDecimal64ArrayClass *klass)
+{
+}
+
+/**
+ * garrow_decimal64_array_format_value:
+ * @array: A #GArrowDecimal64Array.
+ * @i: The index of the target value.
+ *
+ * Returns: (transfer full): The formatted @i-th value.
+ *
+ * It should be freed with g_free() when no longer needed.
+ *
+ * Since: 19.0.0
+ */
+gchar *
+garrow_decimal64_array_format_value(GArrowDecimal64Array *array, gint64 i)
+{
+ auto arrow_array = garrow_array_get_raw(GARROW_ARRAY(array));
+ auto arrow_decimal64_array =
+ std::static_pointer_cast(arrow_array);
+ auto value = arrow_decimal64_array->FormatValue(i);
+ return g_strndup(value.data(), value.size());
+}
+
+/**
+ * garrow_decimal64_array_get_value:
+ * @array: A #GArrowDecimal64Array.
+ * @i: The index of the target value.
+ *
+ * Returns: (transfer full): The @i-th value.
+ *
+ * Since: 19.0.0
+ */
+GArrowDecimal64 *
+garrow_decimal64_array_get_value(GArrowDecimal64Array *array, gint64 i)
+{
+ auto arrow_array = garrow_array_get_raw(GARROW_ARRAY(array));
+ auto arrow_decimal64_array =
+ std::static_pointer_cast(arrow_array);
+ auto arrow_decimal64 =
+ std::make_shared(arrow_decimal64_array->GetValue(i));
+ return garrow_decimal64_new_raw(&arrow_decimal64);
+}
+
G_DEFINE_TYPE(GArrowDecimal128Array,
garrow_decimal128_array,
GARROW_TYPE_FIXED_SIZE_BINARY_ARRAY)
@@ -3443,6 +3502,9 @@ garrow_array_new_raw_valist(std::shared_ptr *arrow_array,
case arrow::Type::type::DICTIONARY:
type = GARROW_TYPE_DICTIONARY_ARRAY;
break;
+ case arrow::Type::type::DECIMAL64:
+ type = GARROW_TYPE_DECIMAL64_ARRAY;
+ break;
case arrow::Type::type::DECIMAL128:
type = GARROW_TYPE_DECIMAL128_ARRAY;
break;
diff --git a/c_glib/arrow-glib/basic-array.h b/c_glib/arrow-glib/basic-array.h
index 95679aa37c57a..f70cf114a4a96 100644
--- a/c_glib/arrow-glib/basic-array.h
+++ b/c_glib/arrow-glib/basic-array.h
@@ -810,6 +810,26 @@ GARROW_AVAILABLE_IN_3_0
GBytes *
garrow_fixed_size_binary_array_get_values_bytes(GArrowFixedSizeBinaryArray *array);
+#define GARROW_TYPE_DECIMAL64_ARRAY (garrow_decimal64_array_get_type())
+GARROW_AVAILABLE_IN_19_0
+G_DECLARE_DERIVABLE_TYPE(GArrowDecimal64Array,
+ garrow_decimal64_array,
+ GARROW,
+ DECIMAL64_ARRAY,
+ GArrowFixedSizeBinaryArray)
+struct _GArrowDecimal64ArrayClass
+{
+ GArrowFixedSizeBinaryArrayClass parent_class;
+};
+
+GARROW_AVAILABLE_IN_19_0
+gchar *
+garrow_decimal64_array_format_value(GArrowDecimal64Array *array, gint64 i);
+
+GARROW_AVAILABLE_IN_19_0
+GArrowDecimal64 *
+garrow_decimal64_array_get_value(GArrowDecimal64Array *array, gint64 i);
+
#define GARROW_TYPE_DECIMAL128_ARRAY (garrow_decimal128_array_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowDecimal128Array,
diff --git a/c_glib/test/test-decimal64-array.rb b/c_glib/test/test-decimal64-array.rb
new file mode 100644
index 0000000000000..ab7b9e2523481
--- /dev/null
+++ b/c_glib/test/test-decimal64-array.rb
@@ -0,0 +1,37 @@
+# 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.
+
+class TestDecimal64Array < Test::Unit::TestCase
+ def test_format_value
+ data_type = Arrow::Decimal64DataType.new(8, 2)
+ builder = Arrow::Decimal64ArrayBuilder.new(data_type)
+ decimal = Arrow::Decimal64.new("23423445")
+ builder.append_value(decimal)
+ array = builder.finish
+ assert_equal("234234.45", array.format_value(0))
+ end
+
+ def test_value
+ data_type = Arrow::Decimal64DataType.new(8, 2)
+ builder = Arrow::Decimal64ArrayBuilder.new(data_type)
+ decimal = Arrow::Decimal64.new("23423445")
+ builder.append_value(decimal)
+ array = builder.finish
+ assert_equal("234234.45",
+ array.get_value(0).to_string_scale(array.value_data_type.scale))
+ end
+end
From ab0c857695420f94cc83259494941a68b2762dee Mon Sep 17 00:00:00 2001
From: Sutou Kouhei
Date: Sun, 3 Nov 2024 00:31:06 +0900
Subject: [PATCH 29/59] GH-44578: [Release][Packaging] Verify wheel version
(#44593)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
### Rationale for this change
We want to detect binary build from wrong source.
### What changes are included in this PR?
Add version check. If we use wrong source, binary's version is `X.Y.Z-SNAPSHOT` not `X.Y.Z`. So the added check is failed.
### Are these changes tested?
Yes.
### Are there any user-facing changes?
No.
* GitHub Issue: #44578
Authored-by: Sutou Kouhei
Signed-off-by: Raúl Cumplido
---
ci/scripts/python_wheel_unix_test.sh | 7 +++++++
dev/release/verify-release-candidate.sh | 27 ++++++++++++++++++++++---
2 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/ci/scripts/python_wheel_unix_test.sh b/ci/scripts/python_wheel_unix_test.sh
index 1487581eaef51..3ce86b16116b0 100755
--- a/ci/scripts/python_wheel_unix_test.sh
+++ b/ci/scripts/python_wheel_unix_test.sh
@@ -88,6 +88,13 @@ import pyarrow.parquet
fi
fi
+if [ "${CHECK_VERSION}" == "ON" ]; then
+ pyarrow_version=$(python -c "import pyarrow; print(pyarrow.__version__)")
+ [ "${pyarrow_version}" = "${ARROW_VERSION}" ]
+ arrow_cpp_version=$(python -c "import pyarrow; print(pyarrow.cpp_build_info.version)")
+ [ "${arrow_cpp_version}" = "${ARROW_VERSION}" ]
+fi
+
if [ "${CHECK_WHEEL_CONTENT}" == "ON" ]; then
python ${source_dir}/ci/scripts/python_wheel_validate_contents.py \
--path ${source_dir}/python/repaired_wheels
diff --git a/dev/release/verify-release-candidate.sh b/dev/release/verify-release-candidate.sh
index d9f973562aa78..17d10601d11d7 100755
--- a/dev/release/verify-release-candidate.sh
+++ b/dev/release/verify-release-candidate.sh
@@ -1052,6 +1052,12 @@ test_linux_wheels() {
local wheel_content="OFF"
fi
+ if [ "${SOURCE_KIND}" = "tarball" ]; then
+ local check_version="ON"
+ else
+ local check_version="OFF"
+ fi
+
for python in ${python_versions}; do
local pyver=${python/m}
for platform in ${platform_tags}; do
@@ -1061,7 +1067,11 @@ test_linux_wheels() {
continue
fi
pip install pyarrow-${TEST_PYARROW_VERSION:-${VERSION}}-cp${pyver/.}-cp${python/.}-${platform}.whl
- CHECK_WHEEL_CONTENT=${wheel_content:-"ON"} INSTALL_PYARROW=OFF ARROW_GCS=${check_gcs} \
+ ARROW_GCS=${check_gcs} \
+ ARROW_VERSION=${VERSION} \
+ CHECK_VERSION=${check_version} \
+ CHECK_WHEEL_CONTENT=${wheel_content:-"ON"} \
+ INSTALL_PYARROW=OFF \
${ARROW_DIR}/ci/scripts/python_wheel_unix_test.sh ${ARROW_SOURCE_DIR}
done
done
@@ -1086,6 +1096,12 @@ test_macos_wheels() {
local wheel_content="OFF"
fi
+ if [ "${SOURCE_KIND}" = "tarball" ]; then
+ local check_version="ON"
+ else
+ local check_version="OFF"
+ fi
+
# verify arch-native wheels inside an arch-native conda environment
for python in ${python_versions}; do
local pyver=${python/m}
@@ -1102,8 +1118,13 @@ test_macos_wheels() {
fi
pip install pyarrow-${VERSION}-cp${pyver/.}-cp${python/.}-${platform}.whl
- CHECK_WHEEL_CONTENT=${wheel_content:-"ON"} INSTALL_PYARROW=OFF ARROW_FLIGHT=${check_flight} \
- ARROW_GCS=${check_gcs} ARROW_S3=${check_s3} \
+ ARROW_FLIGHT=${check_flight} \
+ ARROW_GCS=${check_gcs} \
+ ARROW_S3=${check_s3} \
+ ARROW_VERSION=${VERSION} \
+ CHECK_WHEEL_CONTENT=${wheel_content:-"ON"} \
+ CHECK_VERSION=${check_version} \
+ INSTALL_PYARROW=OFF \
${ARROW_DIR}/ci/scripts/python_wheel_unix_test.sh ${ARROW_SOURCE_DIR}
done
done
From e76082dc9b5d704b4f5f438c8e8b3bf68a361894 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 3 Nov 2024 06:26:28 +0900
Subject: [PATCH 30/59] MINOR: [JS] Bump memfs from 4.9.2 to 4.14.0 in /js
(#44609)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps [memfs](https://github.com/streamich/memfs) from 4.9.2 to 4.14.0.
Release notes
Sourced from memfs's releases.
v4.14.0
4.14.0 (2024-10-13)
Features
- support stream as source in promises version of
writeFile
(#1069) (11f8a36)
v4.13.0
4.13.0 (2024-10-07)
Features
v4.12.0
4.12.0 (2024-09-19)
Features
v4.11.2
4.11.2 (2024-09-17)
Bug Fixes
v4.11.1
4.11.1 (2024-08-01)
Bug Fixes
v4.11.0
4.11.0 (2024-07-27)
Features
- volume implementation of .opendir() method (7072fb7)
v4.10.0
4.10.0 (2024-07-27)
... (truncated)
Changelog
Sourced from memfs's changelog.
4.14.0 (2024-10-13)
Features
- support stream as source in promises version of
writeFile
(#1069) (11f8a36)
4.13.0 (2024-10-07)
Features
4.12.0 (2024-09-19)
Features
4.11.2 (2024-09-17)
Bug Fixes
4.11.1 (2024-08-01)
Bug Fixes
4.11.0 (2024-07-27)
Features
- volume implementation of .opendir() method (7072fb7)
4.10.0 (2024-07-27)
Features
- 🎸 add IReadableWebStreamOptions type (99ebd64)
- 🎸 implement FileHandle.readableWebStream() (c3ddc6c)
... (truncated)
Commits
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=memfs&package-manager=npm_and_yarn&previous-version=4.9.2&new-version=4.14.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@ dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@ dependabot rebase` will rebase this PR
- `@ dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@ dependabot merge` will merge this PR after your CI passes on it
- `@ dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@ dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@ dependabot reopen` will reopen this PR if it is closed
- `@ dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@ dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@ dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@ dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@ dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Sutou Kouhei
---
js/package.json | 2 +-
js/yarn.lock | 35 ++++++++++++++---------------------
2 files changed, 15 insertions(+), 22 deletions(-)
diff --git a/js/package.json b/js/package.json
index a879814426ed7..2a0db0067bd5b 100644
--- a/js/package.json
+++ b/js/package.json
@@ -98,7 +98,7 @@
"ix": "7.0.0",
"jest": "29.7.0",
"jest-silent-reporter": "0.6.0",
- "memfs": "4.9.2",
+ "memfs": "4.14.0",
"mkdirp": "3.0.1",
"multistream": "4.1.0",
"regenerator-runtime": "0.14.1",
diff --git a/js/yarn.lock b/js/yarn.lock
index e237d09469f4d..2941ccf3c569d 100644
--- a/js/yarn.lock
+++ b/js/yarn.lock
@@ -948,10 +948,10 @@
hyperdyperid "^1.2.0"
thingies "^1.20.0"
-"@jsonjoy.com/util@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.1.2.tgz#5072c27ecdb16d1ed7a2d125a1d0ed8aba01d652"
- integrity sha512-HOGa9wtE6LEz2I5mMQ2pMSjth85PmD71kPbsecs02nEUq3/Kw0wRK3gmZn5BCEB8mFLXByqPxjHgApoMwIPMKQ==
+"@jsonjoy.com/util@^1.1.2", "@jsonjoy.com/util@^1.3.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.5.0.tgz#6008e35b9d9d8ee27bc4bfaa70c8cbf33a537b4c"
+ integrity sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -5168,14 +5168,14 @@ mdurl@^2.0.0:
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0"
integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==
-memfs@4.9.2:
- version "4.9.2"
- resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.9.2.tgz#42e7b48207268dad8c9c48ea5d4952c5d3840433"
- integrity sha512-f16coDZlTG1jskq3mxarwB+fGRrd0uXWt+o1WIhRfOwbXQZqUDsTVxQBFK9JjRQHblg8eAG2JSbprDXKjc7ijQ==
+memfs@4.14.0:
+ version "4.14.0"
+ resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.14.0.tgz#48d5e85a03ea0b428280003212fbca3063531be3"
+ integrity sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==
dependencies:
"@jsonjoy.com/json-pack" "^1.0.3"
- "@jsonjoy.com/util" "^1.1.2"
- sonic-forest "^1.0.0"
+ "@jsonjoy.com/util" "^1.3.0"
+ tree-dump "^1.0.1"
tslib "^2.0.0"
memoizee@0.4.X:
@@ -6397,13 +6397,6 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
-sonic-forest@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/sonic-forest/-/sonic-forest-1.0.2.tgz#d80aa621d1cffe75a606ca44789ccff30f5b9ce6"
- integrity sha512-2rICdwIJi5kVlehMUVtJeHn3ohh5YZV4pDv0P0c1M11cRz/gXNViItpM94HQwfvnXuzybpqK0LZJgTa3lEwtAw==
- dependencies:
- tree-dump "^1.0.0"
-
source-map-resolve@^0.5.0:
version "0.5.3"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
@@ -6879,10 +6872,10 @@ totalist@^3.0.0:
resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8"
integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==
-tree-dump@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.1.tgz#b448758da7495580e6b7830d6b7834fca4c45b96"
- integrity sha512-WCkcRBVPSlHHq1dc/px9iOfqklvzCbdRwvlNfxGZsrHqf6aZttfPrd7DJTt6oR10dwUfpFFQeVTkPbBIZxX/YA==
+tree-dump@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.2.tgz#c460d5921caeb197bde71d0e9a7b479848c5b8ac"
+ integrity sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==
trim-newlines@^4.0.2:
version "4.1.1"
From 2312eff1acc8818abcf057ec1fea54205b8c8d2f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 3 Nov 2024 06:26:54 +0900
Subject: [PATCH 31/59] MINOR: [JS] Bump rollup from 4.22.4 to 4.24.3 in /js
(#44610)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps [rollup](https://github.com/rollup/rollup) from 4.22.4 to 4.24.3.
Release notes
Sourced from rollup's releases.
v4.24.3
4.24.3
2024-10-29
Bug Fixes
- Slightly reduce memory consumption by specifying fixed array sizes where possible (#5703)
Pull Requests
- #5703: perf: use pre-allocated arrays for known result sizes (