Commits


Felipe Oliveira Carvalho authored and GitHub committed 214378b522a
GH-40280: [C++] Specialize ResolvedChunk::Value on value-specific types instead of entire class (#40281) ### Rationale for this change Less template-specialization without any loss in efficiency. ### What changes are included in this PR? - `ChunkedResolver` tweak - Explicitly declare copy constructors of `ChunkedResolver` - at the moment they are necessary because `ChunkedArrayResolver` is copied in compute kernel code - Make `ChunkedArrayResolver` re-use `ChunkResolver` via composition instead of inheritance - This will allow the `ChunkResolver` API to evolve in ways that might not make sense if it's a sub-class of `ChunkedArrayResolver` - Use `std::enable_if` instead of duplicating the `ResolvedChunk` implementation and template-specializing - Only specialize `ResolvedChunk::Value` on value-type-specific types preserving the same type-safety checks (static and runtime) ### Are these changes tested? Yes, by existing tests. ### Are there any user-facing changes? No, because these are API are under the internal namespace at the moment even though there are plans to make it public. These changes are preparation for that if we end up making them public. * GitHub Issue: #40280 Authored-by: Felipe Oliveira Carvalho <felipekde@gmail.com> Signed-off-by: Felipe Oliveira Carvalho <felipekde@gmail.com>