This is an automated email from the ASF dual-hosted git repository.
wgtmac pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-cpp.git
The following commit(s) were added to refs/heads/main by this push:
new 84fb526b fix: prevent copying and moving StructLikeAccessor (#993)
84fb526b is described below
commit 84fb526b312c03021c8e0952207d836039342998
Author: Gang Wu <[email protected]>
AuthorDate: Sat Oct 10 17:43:36 2026 +0800
fix: prevent copying and moving StructLikeAccessor (#993)
---
src/iceberg/row/struct_like.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/iceberg/row/struct_like.h b/src/iceberg/row/struct_like.h
index 77f84e23..df7315d9 100644
--- a/src/iceberg/row/struct_like.h
+++ b/src/iceberg/row/struct_like.h
@@ -109,6 +109,12 @@ class ICEBERG_EXPORT StructLikeAccessor {
std::span<const size_t> position_path,
std::vector<bool> is_optional);
+ // Deep-path accessors capture this, so the object must keep a stable
address.
+ StructLikeAccessor(const StructLikeAccessor&) = delete;
+ StructLikeAccessor& operator=(const StructLikeAccessor&) = delete;
+ StructLikeAccessor(StructLikeAccessor&&) = delete;
+ StructLikeAccessor& operator=(StructLikeAccessor&&) = delete;
+
/// \brief Get the scalar value at the given position.
/// A null optional parent returns monostate; a null required field is an
error.
Result<Scalar> Get(const StructLike& struct_like) const {