diff --git a/cpp/src/arrow/acero/asof_join_benchmark.cc b/cpp/src/arrow/acero/asof_join_benchmark.cc index ed2ac2258eb6..f2cd10468e64 100644 --- a/cpp/src/arrow/acero/asof_join_benchmark.cc +++ b/cpp/src/arrow/acero/asof_join_benchmark.cc @@ -54,7 +54,7 @@ static void TableJoinOverhead(benchmark::State& state, TableGenerationProperties right_table_properties, int batch_size, int num_right_tables, std::string factory_name, - std::shared_ptr options) { + const std::shared_ptr& options) { left_table_properties.column_prefix = "lt"; left_table_properties.seed = 0; ASSERT_OK_AND_ASSIGN(TableStats left_table_stats, MakeTable(left_table_properties)); diff --git a/cpp/src/arrow/acero/asof_join_node.cc b/cpp/src/arrow/acero/asof_join_node.cc index 3970050e5022..02160135e620 100644 --- a/cpp/src/arrow/acero/asof_join_node.cc +++ b/cpp/src/arrow/acero/asof_join_node.cc @@ -238,7 +238,7 @@ struct MemoStore { Entry() = default; Entry(OnType time, std::shared_ptr batch, row_index_t row) - : time(time), batch(batch), row(row) {} + : time(time), batch(std::move(batch)), row(row) {} void swap(Entry& other) { std::swap(time, other.time); diff --git a/cpp/src/arrow/acero/asof_join_node_test.cc b/cpp/src/arrow/acero/asof_join_node_test.cc index 59a9b4ebba12..6356a93b1307 100644 --- a/cpp/src/arrow/acero/asof_join_node_test.cc +++ b/cpp/src/arrow/acero/asof_join_node_test.cc @@ -1398,7 +1398,7 @@ struct BackpressureCountingNode : public MapNode { BackpressureCountingNode(ExecPlan* plan, std::vector inputs, std::shared_ptr output_schema, const BackpressureCountingNodeOptions& options) - : MapNode(plan, inputs, output_schema), counters(options.counters) {} + : MapNode(plan, inputs, std::move(output_schema)), counters(options.counters) {} static Result Make(ExecPlan* plan, std::vector inputs, const ExecNodeOptions& options) { diff --git a/cpp/src/arrow/acero/hash_aggregate_test.cc b/cpp/src/arrow/acero/hash_aggregate_test.cc index 2f498f3a7bb2..ad66481db4a9 100644 --- a/cpp/src/arrow/acero/hash_aggregate_test.cc +++ b/cpp/src/arrow/acero/hash_aggregate_test.cc @@ -227,7 +227,7 @@ Result NaiveGroupBy(std::vector arguments, std::vector keys } Result MakeGroupByOutput(const std::vector& output_batches, - const std::shared_ptr output_schema, + const std::shared_ptr& output_schema, size_t num_aggregates, size_t num_keys, bool naive) { ArrayVector out_arrays(num_aggregates + num_keys); for (size_t i = 0; i < out_arrays.size(); ++i) { diff --git a/cpp/src/arrow/acero/source_node.cc b/cpp/src/arrow/acero/source_node.cc index ed3723d249da..525ade97d7c8 100644 --- a/cpp/src/arrow/acero/source_node.cc +++ b/cpp/src/arrow/acero/source_node.cc @@ -301,7 +301,7 @@ struct SourceNode : ExecNode, public TracedNode { }; struct TableSourceNode : public SourceNode { - TableSourceNode(ExecPlan* plan, std::shared_ptr table, int64_t batch_size) + TableSourceNode(ExecPlan* plan, const std::shared_ptr
& table, int64_t batch_size) : SourceNode(plan, table->schema(), TableGenerator(*table, batch_size), Ordering::Implicit()) {} @@ -319,7 +319,7 @@ struct TableSourceNode : public SourceNode { const char* kind_name() const override { return "TableSourceNode"; } - static arrow::Status ValidateTableSourceNodeInput(const std::shared_ptr
table, + static arrow::Status ValidateTableSourceNodeInput(const std::shared_ptr
& table, const int64_t batch_size) { if (table == nullptr) { return Status::Invalid("TableSourceNode requires table which is not null"); @@ -372,7 +372,7 @@ template struct SchemaSourceNode : public SourceNode { SchemaSourceNode(ExecPlan* plan, std::shared_ptr schema, arrow::AsyncGenerator> generator) - : SourceNode(plan, schema, generator, Ordering::Implicit()) {} + : SourceNode(plan, std::move(schema), generator, Ordering::Implicit()) {} static Result Make(ExecPlan* plan, std::vector inputs, const ExecNodeOptions& options) { @@ -408,7 +408,7 @@ struct SchemaSourceNode : public SourceNode { struct RecordBatchReaderSourceNode : public SourceNode { RecordBatchReaderSourceNode(ExecPlan* plan, std::shared_ptr schema, arrow::AsyncGenerator> generator) - : SourceNode(plan, schema, generator, Ordering::Implicit()) {} + : SourceNode(plan, std::move(schema), generator, Ordering::Implicit()) {} static Result Make(ExecPlan* plan, std::vector inputs, const ExecNodeOptions& options) { diff --git a/cpp/src/arrow/acero/source_node_test.cc b/cpp/src/arrow/acero/source_node_test.cc index 79ff5852815c..d6364dd7d197 100644 --- a/cpp/src/arrow/acero/source_node_test.cc +++ b/cpp/src/arrow/acero/source_node_test.cc @@ -37,7 +37,7 @@ struct PauseThenStopNode : public MapNode { PauseThenStopNode(ExecPlan* plan, std::vector inputs, std::shared_ptr output_schema, const PauseThenStopNodeOptions& options) - : MapNode(plan, inputs, output_schema), num_pass(options.num_pass) {} + : MapNode(plan, inputs, std::move(output_schema)), num_pass(options.num_pass) {} static Result Make(ExecPlan* plan, std::vector inputs, const ExecNodeOptions& options) { diff --git a/cpp/src/arrow/acero/test_nodes.cc b/cpp/src/arrow/acero/test_nodes.cc index d95c22ca4510..47dc02ef9283 100644 --- a/cpp/src/arrow/acero/test_nodes.cc +++ b/cpp/src/arrow/acero/test_nodes.cc @@ -275,7 +275,7 @@ struct GatedNode : public ExecNode, public TracedNode { GatedNode(ExecPlan* plan, std::vector inputs, std::shared_ptr output_schema, const GatedNodeOptions& options) - : ExecNode(plan, inputs, {"input"}, output_schema), + : ExecNode(plan, inputs, {"input"}, std::move(output_schema)), TracedNode(this), gate_(options.gate) {} diff --git a/cpp/src/arrow/acero/unmaterialized_table_internal.h b/cpp/src/arrow/acero/unmaterialized_table_internal.h index 86b1a763a603..e1331fb96208 100644 --- a/cpp/src/arrow/acero/unmaterialized_table_internal.h +++ b/cpp/src/arrow/acero/unmaterialized_table_internal.h @@ -242,7 +242,7 @@ class UnmaterializedSliceBuilder { UnmaterializedCompositeTable* table_) : table(table_) {} - void AddEntry(std::shared_ptr rb, uint64_t start, uint64_t end) { + void AddEntry(const std::shared_ptr& rb, uint64_t start, uint64_t end) { if (rb) { table->AddRecordBatchRef(rb); } diff --git a/cpp/src/arrow/adapters/orc/adapter.cc b/cpp/src/arrow/adapters/orc/adapter.cc index 51cca497485c..e40269c9ce0d 100644 --- a/cpp/src/arrow/adapters/orc/adapter.cc +++ b/cpp/src/arrow/adapters/orc/adapter.cc @@ -137,7 +137,7 @@ class OrcStripeReader : public RecordBatchReader { OrcStripeReader(std::unique_ptr row_reader, std::shared_ptr schema, int64_t batch_size, MemoryPool* pool) : row_reader_(std::move(row_reader)), - schema_(schema), + schema_(std::move(schema)), pool_(pool), batch_size_{batch_size} {} diff --git a/cpp/src/arrow/adapters/orc/adapter_test.cc b/cpp/src/arrow/adapters/orc/adapter_test.cc index 3cbb6d7828f1..ef1038fc7c5a 100644 --- a/cpp/src/arrow/adapters/orc/adapter_test.cc +++ b/cpp/src/arrow/adapters/orc/adapter_test.cc @@ -103,7 +103,7 @@ std::shared_ptr GenerateFixedDifferenceBuffer(int32_t fixed_length, } std::shared_ptr CastFixedSizeBinaryArrayToBinaryArray( - std::shared_ptr array) { + const std::shared_ptr& array) { auto fixed_size_binary_array = checked_pointer_cast(array); std::shared_ptr value_offsets = GenerateFixedDifferenceBuffer( fixed_size_binary_array->byte_width(), array->length() + 1); @@ -114,7 +114,7 @@ std::shared_ptr CastFixedSizeBinaryArrayToBinaryArray( template std::shared_ptr CastInt64ArrayToTemporalArray( - const std::shared_ptr& type, std::shared_ptr array) { + const std::shared_ptr& type, const std::shared_ptr& array) { std::shared_ptr new_array_data = ArrayData::Make(type, array->length(), array->data()->buffers); return std::make_shared(new_array_data); @@ -128,7 +128,7 @@ Result> GenerateRandomDate64Array(int64_t size, } Result> GenerateRandomTimestampArray( - int64_t size, std::shared_ptr type, double null_probability) { + int64_t size, const std::shared_ptr& type, double null_probability) { random::RandomArrayGenerator rand(kRandomSeed); switch (type->unit()) { case TimeUnit::type::SECOND: { @@ -1049,7 +1049,7 @@ namespace { // read them back and compare equality in the unit test). Because the orc reader // fills unselected values to nulls when reading from the file. So flattening // the SparseUnionArray before writing makes it easy for the array equality check. -std::shared_ptr FlattenSparseUnionArray(std::shared_ptr array) { +std::shared_ptr FlattenSparseUnionArray(const std::shared_ptr& array) { auto union_array = checked_pointer_cast(array); ArrayVector children; for (int i = 0; i < array->num_fields(); ++i) { @@ -1061,7 +1061,7 @@ std::shared_ptr FlattenSparseUnionArray(std::shared_ptr array) { union_array->type_codes(), array->offset()); } -void TestUnionConversion(std::shared_ptr array) { +void TestUnionConversion(const std::shared_ptr& array) { auto length = array->length(); auto orc_type = liborc::Type::buildTypeFromString("uniontype"); diff --git a/cpp/src/arrow/array/array_dict_test.cc b/cpp/src/arrow/array/array_dict_test.cc index 23335ebb008a..e846ca0a9369 100644 --- a/cpp/src/arrow/array/array_dict_test.cc +++ b/cpp/src/arrow/array/array_dict_test.cc @@ -873,7 +873,7 @@ TEST(TestFixedSizeBinaryDictionaryBuilder, AppendArrayInvalidType) { #endif template -void TestDecimalDictionaryBuilderBasic(std::shared_ptr decimal_type) { +void TestDecimalDictionaryBuilderBasic(const std::shared_ptr& decimal_type) { // Build the dictionary Array DictionaryBuilder builder(decimal_type); @@ -903,7 +903,8 @@ TEST(TestDecimal256DictionaryBuilder, Basic) { } void TestDecimalDictionaryBuilderDoubleTableSize( - std::shared_ptr decimal_type, FixedSizeBinaryBuilder& decimal_builder) { + const std::shared_ptr& decimal_type, + FixedSizeBinaryBuilder& decimal_builder) { // Build the dictionary Array DictionaryBuilder dict_builder(decimal_type); diff --git a/cpp/src/arrow/array/array_nested.cc b/cpp/src/arrow/array/array_nested.cc index 6849aca089b7..9ff303125537 100644 --- a/cpp/src/arrow/array/array_nested.cc +++ b/cpp/src/arrow/array/array_nested.cc @@ -130,7 +130,7 @@ Result::ArrayType>> ListArrayFromArray if (offsets.null_count() > 0) { ARROW_ASSIGN_OR_RAISE(auto buffers, CleanListOffsets(null_bitmap, offsets, pool)); - auto data = ArrayData::Make(type, offsets.length() - 1, std::move(buffers), + auto data = ArrayData::Make(std::move(type), offsets.length() - 1, std::move(buffers), {values.data()}, offsets.null_count(), /*offset=*/0); return std::make_shared(std::move(data)); } @@ -138,7 +138,7 @@ Result::ArrayType>> ListArrayFromArray using OffsetArrayType = typename TypeTraits::ArrayType; const auto& typed_offsets = checked_cast(offsets); auto buffers = BufferVector({std::move(null_bitmap), typed_offsets.values()}); - auto data = ArrayData::Make(type, offsets.length() - 1, std::move(buffers), + auto data = ArrayData::Make(std::move(type), offsets.length() - 1, std::move(buffers), {values.data()}, null_count, offsets.offset()); return std::make_shared(std::move(data)); } @@ -209,8 +209,8 @@ Result::ArrayType>> ListViewArrayFromA typed_offsets.values(), typed_sizes.values(), }); - auto data = ArrayData::Make(type, sizes.length(), std::move(buffers), {values.data()}, - null_count, array_offset); + auto data = ArrayData::Make(std::move(type), sizes.length(), std::move(buffers), + {values.data()}, null_count, array_offset); return std::make_shared(std::move(data)); } diff --git a/cpp/src/arrow/array/array_run_end_test.cc b/cpp/src/arrow/array/array_run_end_test.cc index 6cf50ccade19..b81fdfae7cde 100644 --- a/cpp/src/arrow/array/array_run_end_test.cc +++ b/cpp/src/arrow/array/array_run_end_test.cc @@ -68,7 +68,7 @@ class TestRunEndEncodedArray } std::shared_ptr RunEndEncodedArrayFromJSON( - int64_t logical_length, std::shared_ptr value_type, + int64_t logical_length, const std::shared_ptr& value_type, std::string_view run_ends_json, std::string_view values_json, int64_t logical_offset = 0) { auto run_ends = ArrayFromJSON(run_end_type, run_ends_json); diff --git a/cpp/src/arrow/array/builder_run_end.cc b/cpp/src/arrow/array/builder_run_end.cc index 2edeaff504d2..0e71df72f63e 100644 --- a/cpp/src/arrow/array/builder_run_end.cc +++ b/cpp/src/arrow/array/builder_run_end.cc @@ -167,7 +167,8 @@ RunEndEncodedBuilder::ValueRunBuilder::ValueRunBuilder( RunEndEncodedBuilder::RunEndEncodedBuilder( MemoryPool* pool, const std::shared_ptr& run_end_builder, const std::shared_ptr& value_builder, std::shared_ptr type) - : ArrayBuilder(pool), type_(internal::checked_pointer_cast(type)) { + : ArrayBuilder(pool), + type_(internal::checked_pointer_cast(std::move(type))) { auto value_run_builder = std::make_shared(pool, value_builder, type_->value_type(), *this); value_run_builder_ = value_run_builder.get(); diff --git a/cpp/src/arrow/array/diff_test.cc b/cpp/src/arrow/array/diff_test.cc index 76f4202992f3..958ba10ffdaf 100644 --- a/cpp/src/arrow/array/diff_test.cc +++ b/cpp/src/arrow/array/diff_test.cc @@ -115,7 +115,7 @@ class DiffTest : public ::testing::Test { /*verbose=*/true); } - void BaseAndTargetFromRandomFilter(std::shared_ptr values, + void BaseAndTargetFromRandomFilter(const std::shared_ptr& values, double filter_probability) { std::shared_ptr base_filter, target_filter; do { diff --git a/cpp/src/arrow/buffer_test.cc b/cpp/src/arrow/buffer_test.cc index 4dd210076ed1..15c3300ab96c 100644 --- a/cpp/src/arrow/buffer_test.cc +++ b/cpp/src/arrow/buffer_test.cc @@ -87,7 +87,8 @@ class MyDevice : public Device { class MyMemoryManager : public MemoryManager { public: - explicit MyMemoryManager(std::shared_ptr device) : MemoryManager(device) {} + explicit MyMemoryManager(const std::shared_ptr& device) + : MemoryManager(device) {} bool allow_copy() const { return checked_cast(*device()).allow_copy(); @@ -135,7 +136,7 @@ class MyBuffer : public Buffer { MyBuffer(std::shared_ptr mm, const std::shared_ptr& parent) : Buffer(parent->data(), parent->size()) { parent_ = parent; - SetMemoryManager(mm); + SetMemoryManager(std::move(mm)); } }; diff --git a/cpp/src/arrow/c/bridge.cc b/cpp/src/arrow/c/bridge.cc index 184be3ab8eb9..ddd09de0658b 100644 --- a/cpp/src/arrow/c/bridge.cc +++ b/cpp/src/arrow/c/bridge.cc @@ -1509,7 +1509,8 @@ class ImportedBuffer : public Buffer { ImportedBuffer(const uint8_t* data, int64_t size, std::shared_ptr mm, DeviceAllocationType device_type, std::shared_ptr import) - : Buffer(data, size, mm, nullptr, device_type), import_(std::move(import)) {} + : Buffer(data, size, std::move(mm), nullptr, device_type), + import_(std::move(import)) {} ~ImportedBuffer() override = default; @@ -2288,22 +2289,22 @@ class ArrayStreamReader { Result> ImportRecordBatchInternal( struct ArrowArray* array, std::shared_ptr schema) { - return ImportRecordBatch(array, schema); + return ImportRecordBatch(array, std::move(schema)); } Result> ImportRecordBatchInternal( struct ArrowDeviceArray* array, std::shared_ptr schema) { - return ImportDeviceRecordBatch(array, schema, mapper_); + return ImportDeviceRecordBatch(array, std::move(schema), mapper_); } Result> ImportArrayInternal( struct ArrowArray* array, std::shared_ptr type) { - return ImportArray(array, type); + return ImportArray(array, std::move(type)); } Result> ImportArrayInternal( struct ArrowDeviceArray* array, std::shared_ptr type) { - return ImportDeviceArray(array, type, mapper_); + return ImportDeviceArray(array, std::move(type), mapper_); } Result> ReadSchema() { diff --git a/cpp/src/arrow/c/bridge_test.cc b/cpp/src/arrow/c/bridge_test.cc index 9a4d104d0004..44a1ea9a57c7 100644 --- a/cpp/src/arrow/c/bridge_test.cc +++ b/cpp/src/arrow/c/bridge_test.cc @@ -681,7 +681,7 @@ class TestArrayExport : public ::testing::Test { void SetUp() override { pool_ = default_memory_pool(); } static std::function>()> JSONArrayFactory( - std::shared_ptr type, const char* json) { + const std::shared_ptr& type, const char* json) { return [=]() { return ArrayFromJSON(type, json); }; } @@ -1458,14 +1458,14 @@ class TestDeviceArrayExport : public ::testing::Test { } static std::function>()> JSONArrayFactory( - const std::shared_ptr& mm, std::shared_ptr type, + const std::shared_ptr& mm, const std::shared_ptr& type, const char* json) { return [=]() { return ToDevice(mm, *ArrayFromJSON(type, json)->data()); }; } #ifdef ARROW_COMPUTE static std::function>()> JSONREEArrayFactory( - const std::shared_ptr& mm, std::shared_ptr type, + const std::shared_ptr& mm, const std::shared_ptr& type, const char* json) { return [=]() -> Result> { ARROW_ASSIGN_OR_RAISE(auto result, REEFromJSON(type, json)); @@ -3912,7 +3912,8 @@ class TestArrayRoundtrip : public ::testing::Test { void SetUp() override { pool_ = default_memory_pool(); } - static ArrayFactory JSONArrayFactory(std::shared_ptr type, const char* json) { + static ArrayFactory JSONArrayFactory(const std::shared_ptr& type, + const char* json) { return [=]() { return ArrayFromJSON(type, json); }; } @@ -4015,11 +4016,11 @@ class TestArrayRoundtrip : public ::testing::Test { ASSERT_EQ(pool_->bytes_allocated(), orig_bytes); } - void TestWithJSON(std::shared_ptr type, const char* json) { + void TestWithJSON(const std::shared_ptr& type, const char* json) { TestWithArrayFactory(JSONArrayFactory(type, json)); } - void TestWithJSONSliced(std::shared_ptr type, const char* json) { + void TestWithJSONSliced(const std::shared_ptr& type, const char* json) { TestWithArrayFactory(SlicedArrayFactory(JSONArrayFactory(type, json))); } @@ -4352,7 +4353,8 @@ class TestDeviceArrayRoundtrip : public ::testing::Test { } static ArrayFactory JSONArrayFactory(const std::shared_ptr& mm, - std::shared_ptr type, const char* json) { + const std::shared_ptr& type, + const char* json) { return [=]() { return ToDevice(mm, *ArrayFromJSON(type, json)->data()); }; } @@ -4463,12 +4465,12 @@ class TestDeviceArrayRoundtrip : public ::testing::Test { } void TestWithJSON(const std::shared_ptr& mm, - std::shared_ptr type, const char* json) { + const std::shared_ptr& type, const char* json) { TestWithArrayFactory(JSONArrayFactory(mm, type, json)); } void TestWithJSONSliced(const std::shared_ptr& mm, - std::shared_ptr type, const char* json) { + const std::shared_ptr& type, const char* json) { TestWithArrayFactory(SlicedArrayFactory(JSONArrayFactory(mm, type, json))); } @@ -4519,7 +4521,8 @@ class BaseArrayStreamTest : public ::testing::Test { void TearDown() override { ASSERT_EQ(pool_->bytes_allocated(), orig_allocated_); } - RecordBatchVector MakeBatches(std::shared_ptr schema, ArrayVector arrays) { + RecordBatchVector MakeBatches(const std::shared_ptr& schema, + ArrayVector arrays) { DCHECK_EQ(schema->num_fields(), 1); RecordBatchVector batches; for (const auto& array : arrays) { diff --git a/cpp/src/arrow/compute/function_benchmark.cc b/cpp/src/arrow/compute/function_benchmark.cc index 3dfd590c7e30..1c35fa5b6225 100644 --- a/cpp/src/arrow/compute/function_benchmark.cc +++ b/cpp/src/arrow/compute/function_benchmark.cc @@ -37,7 +37,7 @@ namespace compute { constexpr int32_t kSeed = 0xfede4a7e; constexpr int64_t kScalarCount = 1 << 10; -inline ScalarVector ToScalars(std::shared_ptr arr) { +inline ScalarVector ToScalars(const std::shared_ptr& arr) { ScalarVector scalars{static_cast(arr->length())}; int64_t i = 0; for (auto& scalar : scalars) { diff --git a/cpp/src/arrow/compute/kernels/aggregate_basic.cc b/cpp/src/arrow/compute/kernels/aggregate_basic.cc index f7ff72bc114a..2a55405bb873 100644 --- a/cpp/src/arrow/compute/kernels/aggregate_basic.cc +++ b/cpp/src/arrow/compute/kernels/aggregate_basic.cc @@ -316,7 +316,7 @@ struct ProductImpl : public ScalarAggregator { using ProductType = typename TypeTraits::CType; using OutputType = typename TypeTraits::ScalarType; - explicit ProductImpl(std::shared_ptr out_type, + explicit ProductImpl(const std::shared_ptr& out_type, const ScalarAggregateOptions& options) : out_type(out_type), options(options), @@ -400,7 +400,7 @@ struct ProductInit { ProductInit(KernelContext* ctx, std::shared_ptr type, const ScalarAggregateOptions& options) - : ctx(ctx), type(type), options(options) {} + : ctx(ctx), type(std::move(type)), options(options) {} Status Visit(const DataType&) { return Status::NotImplemented("No product implemented"); @@ -844,8 +844,8 @@ struct IndexInit { void AddBasicAggKernels(KernelInit init, const std::vector>& types, - std::shared_ptr out_ty, ScalarAggregateFunction* func, - SimdLevel::type simd_level) { + const std::shared_ptr& out_ty, + ScalarAggregateFunction* func, SimdLevel::type simd_level) { for (const auto& ty : types) { // array[InT] -> scalar[OutT] auto sig = KernelSignature::Make({ty->id()}, out_ty); @@ -857,7 +857,7 @@ namespace { void AddScalarAggKernels(KernelInit init, const std::vector>& types, - std::shared_ptr out_ty, + const std::shared_ptr& out_ty, ScalarAggregateFunction* func) { for (const auto& ty : types) { auto sig = KernelSignature::Make({ty->id()}, out_ty); @@ -867,7 +867,7 @@ void AddScalarAggKernels(KernelInit init, void AddArrayScalarAggKernels(KernelInit init, const std::vector>& types, - std::shared_ptr out_ty, + const std::shared_ptr& out_ty, ScalarAggregateFunction* func, SimdLevel::type simd_level = SimdLevel::NONE) { AddBasicAggKernels(init, types, out_ty, func, simd_level); diff --git a/cpp/src/arrow/compute/kernels/aggregate_basic.inc.cc b/cpp/src/arrow/compute/kernels/aggregate_basic.inc.cc index 3733f415a048..2d6b36e65795 100644 --- a/cpp/src/arrow/compute/kernels/aggregate_basic.inc.cc +++ b/cpp/src/arrow/compute/kernels/aggregate_basic.inc.cc @@ -166,7 +166,7 @@ struct SumLikeInit { SumLikeInit(KernelContext* ctx, std::shared_ptr type, const ScalarAggregateOptions& options) - : ctx(ctx), type(type), options(options) {} + : ctx(ctx), type(std::move(type)), options(options) {} // If this returns true, then the aggregator will promote a decimal to the maximum // precision for that type. For instance, a decimal128(3, 2) will be promoted to a @@ -289,7 +289,7 @@ template