This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
The following commit(s) were added to refs/heads/main by this push:
new 7ffcf0d40b Add more documentation for FixedSizeBinary arrays (#9866)
7ffcf0d40b is described below
commit 7ffcf0d40b4bcd0d1b918c213fe74709e540fd74
Author: Andrew Lamb <[email protected]>
AuthorDate: Fri May 1 17:24:17 2026 -0400
Add more documentation for FixedSizeBinary arrays (#9866)
# Which issue does this PR close?
- related to
https://github.com/apache/arrow-rs/pull/9850/changes#r3170266352
# Rationale for this change
While working on https://github.com/apache/arrow-rs/pull/9850 I felt it
would help to have some better docs about what a FixedSizeBinaryArray
actually was, so I made some
# What changes are included in this PR?
Add some more background / explanatory docs about this array
# Are these changes tested?
By CI
# Are there any user-facing changes?
Docs only
---
arrow-array/src/array/fixed_size_binary_array.rs | 39 +++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)
diff --git a/arrow-array/src/array/fixed_size_binary_array.rs
b/arrow-array/src/array/fixed_size_binary_array.rs
index 39bfc1db4a..928aa38a27 100644
--- a/arrow-array/src/array/fixed_size_binary_array.rs
+++ b/arrow-array/src/array/fixed_size_binary_array.rs
@@ -25,7 +25,44 @@ use arrow_schema::{ArrowError, DataType};
use std::any::Any;
use std::sync::Arc;
-/// An array of [fixed size binary
arrays](https://arrow.apache.org/docs/format/Columnar.html#fixed-size-primitive-layout)
+/// An array of [fixed-size binary
values](https://arrow.apache.org/docs/format/Columnar.html#fixed-size-primitive-layout)
+///
+/// Each element in a [`FixedSizeBinaryArray`] has `value_length` bytes, where
+/// `value_length` is defined by the schema.
+///
+/// This array type is useful for storing fixed-length values such as 16-byte
+/// UUIDs (`value_length = 16`).
+///
+/// # Layout
+///
+/// Values in a [`FixedSizeBinaryArray`] are stored contiguously in a single
+/// buffer. The byte offset for the `i`-th element can be calculated as
+/// `i * value_length`.
+///
+/// Nulls are stored in a standard optional Arrow [`NullBuffer`].
+///
+/// For example, a 100-value [`FixedSizeBinaryArray`] with `value_length = 12`
+/// is shown below.
+///
+/// ```text
+/// ┌──────────────────────────────────────────┐
+/// │ Computed byte offsets │
+/// │ ┌──────────────────────┐ ┌────┐ │
+/// │ │┌────────────────────┐│ │ │ │
+/// │ 0 ││value 0 (12 bytes) ││ │ 1 │ │
+/// │ │├────────────────────┤│ │ │ │
+/// │ 12 ││value 1 (12 bytes) ││ │ 0 │ │
+/// │ │├────────────────────┤│ │ │ │
+/// │ 24 ││value 2 (12 bytes) ││ │ 1 │ │
+/// │ │└────────────────────┘│ │ │ │
+/// │ │ ... │ │... │ │
+/// │ │┌───────────────────┐ │ │ │ │
+/// │ 1188 ││value 99 (12 bytes)│ │ │ 1 │ │
+/// │ │└───────────────────┘ │ │ │ │
+/// │ └──────────────────────┘ └────┘ │
+/// │ value_data nulls │
+/// └──────────────────────────────────────────┘
+/// ```
///
/// # Examples
///