From eee4c2f5f6bbc4e74e6e585dd1e14de33d42427f Mon Sep 17 00:00:00 2001 From: Wes McKinney Date: Mon, 11 Sep 2017 11:43:12 -0400 Subject: [PATCH 1/3] Promote ArrayData, MakeArray to public API, deprecate MakePrimitiveArray Change-Id: I0090615f7554eda7c01201b309828db9c104def8 --- cpp/src/arrow/array.cc | 48 ++++++------- cpp/src/arrow/array.h | 89 ++++++++++++++----------- cpp/src/arrow/builder.cc | 1 - cpp/src/arrow/builder.h | 2 +- cpp/src/arrow/compute/cast.cc | 2 +- cpp/src/arrow/compute/compute-test.cc | 3 - cpp/src/arrow/compute/kernel.h | 3 - cpp/src/arrow/ipc/feather-test.cc | 4 +- cpp/src/arrow/ipc/feather.cc | 5 +- cpp/src/arrow/ipc/reader.cc | 18 ++--- cpp/src/arrow/python/pandas_to_arrow.cc | 4 -- cpp/src/arrow/table.cc | 4 +- cpp/src/arrow/table.h | 8 +-- 13 files changed, 97 insertions(+), 94 deletions(-) diff --git a/cpp/src/arrow/array.cc b/cpp/src/arrow/array.cc index 2d37274a976..3b4496ac024 100644 --- a/cpp/src/arrow/array.cc +++ b/cpp/src/arrow/array.cc @@ -37,8 +37,6 @@ namespace arrow { -using internal::ArrayData; - // ---------------------------------------------------------------------- // Base array class @@ -159,7 +157,7 @@ const uint8_t* PrimitiveArray::raw_values() const { } template -NumericArray::NumericArray(const std::shared_ptr& data) +NumericArray::NumericArray(const std::shared_ptr& data) : PrimitiveArray(data) { DCHECK_EQ(data->type->id(), T::type_id); } @@ -167,7 +165,7 @@ NumericArray::NumericArray(const std::shared_ptr& data) // ---------------------------------------------------------------------- // BooleanArray -BooleanArray::BooleanArray(const std::shared_ptr& data) +BooleanArray::BooleanArray(const std::shared_ptr& data) : PrimitiveArray(data) { DCHECK_EQ(data->type->id(), Type::BOOL); } @@ -215,9 +213,9 @@ Status ListArray::FromArrays(const Array& offsets, const Array& values, MemoryPo static_cast(offsets).values()}; auto list_type = list(values.type()); - auto internal_data = std::make_shared( - list_type, offsets.length() - 1, std::move(buffers), offsets.null_count(), - offsets.offset()); + auto internal_data = + std::make_shared(list_type, offsets.length() - 1, std::move(buffers), + offsets.null_count(), offsets.offset()); internal_data->child_data.push_back(values.data()); *out = std::make_shared(internal_data); @@ -230,7 +228,7 @@ void ListArray::SetData(const std::shared_ptr& data) { raw_value_offsets_ = value_offsets == nullptr ? nullptr : reinterpret_cast(value_offsets->data()); - DCHECK(internal::MakeArray(data_->child_data[0], &values_).ok()); + DCHECK(MakeArray(data_->child_data[0], &values_).ok()); } std::shared_ptr ListArray::value_type() const { @@ -245,7 +243,7 @@ std::shared_ptr ListArray::values() const { return values_; } static std::shared_ptr kBinary = std::make_shared(); static std::shared_ptr kString = std::make_shared(); -BinaryArray::BinaryArray(const std::shared_ptr& data) { +BinaryArray::BinaryArray(const std::shared_ptr& data) { DCHECK_EQ(data->type->id(), Type::BINARY); SetData(data); } @@ -277,7 +275,7 @@ BinaryArray::BinaryArray(const std::shared_ptr& type, int64_t length, std::make_shared(type, length, std::move(buffers), null_count, offset)); } -StringArray::StringArray(const std::shared_ptr& data) { +StringArray::StringArray(const std::shared_ptr& data) { DCHECK_EQ(data->type->id(), Type::STRING); SetData(data); } @@ -292,8 +290,7 @@ StringArray::StringArray(int64_t length, const std::shared_ptr& value_of // ---------------------------------------------------------------------- // Fixed width binary -FixedSizeBinaryArray::FixedSizeBinaryArray( - const std::shared_ptr& data) { +FixedSizeBinaryArray::FixedSizeBinaryArray(const std::shared_ptr& data) { SetData(data); } @@ -312,7 +309,7 @@ const uint8_t* FixedSizeBinaryArray::GetValue(int64_t i) const { // ---------------------------------------------------------------------- // Decimal -DecimalArray::DecimalArray(const std::shared_ptr& data) +DecimalArray::DecimalArray(const std::shared_ptr& data) : FixedSizeBinaryArray(data) { DCHECK_EQ(data->type->id(), Type::DECIMAL); } @@ -347,7 +344,7 @@ StructArray::StructArray(const std::shared_ptr& type, int64_t length, std::shared_ptr StructArray::field(int i) const { if (!boxed_fields_[i]) { - DCHECK(internal::MakeArray(data_->child_data[i], &boxed_fields_[i]).ok()); + DCHECK(MakeArray(data_->child_data[i], &boxed_fields_[i]).ok()); } return boxed_fields_[i]; } @@ -390,7 +387,7 @@ UnionArray::UnionArray(const std::shared_ptr& type, int64_t length, std::shared_ptr UnionArray::child(int i) const { if (!boxed_fields_[i]) { - DCHECK(internal::MakeArray(data_->child_data[i], &boxed_fields_[i]).ok()); + DCHECK(MakeArray(data_->child_data[i], &boxed_fields_[i]).ok()); } return boxed_fields_[i]; } @@ -419,7 +416,7 @@ void DictionaryArray::SetData(const std::shared_ptr& data) { auto indices_data = data_->ShallowCopy(); indices_data->type = dict_type_->index_type(); std::shared_ptr result; - DCHECK(internal::MakeArray(indices_data, &indices_).ok()); + DCHECK(MakeArray(indices_data, &indices_).ok()); } std::shared_ptr DictionaryArray::indices() const { return indices_; } @@ -599,21 +596,23 @@ class ArrayDataWrapper { std::shared_ptr* out_; }; +} // namespace internal + Status MakeArray(const std::shared_ptr& data, std::shared_ptr* out) { - ArrayDataWrapper wrapper_visitor(data, out); + internal::ArrayDataWrapper wrapper_visitor(data, out); return VisitTypeInline(*data->type, &wrapper_visitor); } -} // namespace internal - +#ifndef ARROW_NO_DEPRECATED_API +// \deprecated Since 0.7.0 Status MakePrimitiveArray(const std::shared_ptr& type, int64_t length, const std::shared_ptr& data, const std::shared_ptr& null_bitmap, int64_t null_count, int64_t offset, std::shared_ptr* out) { BufferVector buffers = {null_bitmap, data}; - auto internal_data = std::make_shared( - type, length, std::move(buffers), null_count, offset); - return internal::MakeArray(internal_data, out); + auto internal_data = + std::make_shared(type, length, std::move(buffers), null_count, offset); + return MakeArray(internal_data, out); } Status MakePrimitiveArray(const std::shared_ptr& type, @@ -621,9 +620,10 @@ Status MakePrimitiveArray(const std::shared_ptr& type, int64_t length, int64_t null_count, int64_t offset, std::shared_ptr* out) { auto internal_data = - std::make_shared(type, length, buffers, null_count, offset); - return internal::MakeArray(internal_data, out); + std::make_shared(type, length, buffers, null_count, offset); + return MakeArray(internal_data, out); } +#endif // ---------------------------------------------------------------------- // Instantiate templates diff --git a/cpp/src/arrow/array.h b/cpp/src/arrow/array.h index 994270db323..0fbb5797c0e 100644 --- a/cpp/src/arrow/array.h +++ b/cpp/src/arrow/array.h @@ -52,9 +52,8 @@ struct Decimal; // ---------------------------------------------------------------------- // Generic array data container -namespace internal { - -/// \brief Mutable internal container for generic Arrow array data +/// \class ArrayData +/// \brief Mutable container for generic Arrow array data /// /// This data structure is a self-contained representation of the memory and /// metadata inside an Arrow array data structure (called vectors in Java). The @@ -148,6 +147,14 @@ struct ARROW_EXPORT ArrayData { ARROW_EXPORT Status MakeArray(const std::shared_ptr& data, std::shared_ptr* out); +namespace internal { + +#ifndef ARROW_NO_DEPRECATED_API +// \deprecated since 0.7.0 +using ArrayData = ::arrow::ArrayData; +using MakeArray = ::arrow::MakeArray; +#endif + } // namespace internal // ---------------------------------------------------------------------- @@ -232,7 +239,7 @@ class ARROW_EXPORT Array { /// Slice from offset until end of the array std::shared_ptr Slice(int64_t offset) const; - std::shared_ptr data() const { return data_; } + std::shared_ptr data() const { return data_; } int num_fields() const { return static_cast(data_->child_data.size()); } @@ -242,11 +249,11 @@ class ARROW_EXPORT Array { protected: Array() {} - std::shared_ptr data_; + std::shared_ptr data_; const uint8_t* null_bitmap_data_; /// Protected method for constructors - inline void SetData(const std::shared_ptr& data) { + inline void SetData(const std::shared_ptr& data) { if (data->buffers.size() > 0 && data->buffers[0]) { null_bitmap_data_ = data->buffers[0]->data(); } else { @@ -274,11 +281,11 @@ class ARROW_EXPORT NullArray : public FlatArray { public: using TypeClass = NullType; - explicit NullArray(const std::shared_ptr& data) { SetData(data); } + explicit NullArray(const std::shared_ptr& data) { SetData(data); } explicit NullArray(int64_t length); private: - inline void SetData(const std::shared_ptr& data) { + inline void SetData(const std::shared_ptr& data) { null_bitmap_data_ = nullptr; data->null_count = data->length; data_ = data; @@ -302,13 +309,13 @@ class ARROW_EXPORT PrimitiveArray : public FlatArray { protected: PrimitiveArray() {} - inline void SetData(const std::shared_ptr& data) { + inline void SetData(const std::shared_ptr& data) { auto values = data->buffers[1]; this->Array::SetData(data); raw_values_ = values == nullptr ? nullptr : values->data(); } - explicit inline PrimitiveArray(const std::shared_ptr& data) { + explicit inline PrimitiveArray(const std::shared_ptr& data) { SetData(data); } @@ -321,7 +328,7 @@ class ARROW_EXPORT NumericArray : public PrimitiveArray { using TypeClass = TYPE; using value_type = typename TypeClass::c_type; - explicit NumericArray(const std::shared_ptr& data); + explicit NumericArray(const std::shared_ptr& data); // Only enable this constructor without a type argument for types without additional // metadata @@ -348,7 +355,7 @@ class ARROW_EXPORT BooleanArray : public PrimitiveArray { public: using TypeClass = BooleanType; - explicit BooleanArray(const std::shared_ptr& data); + explicit BooleanArray(const std::shared_ptr& data); BooleanArray(int64_t length, const std::shared_ptr& data, const std::shared_ptr& null_bitmap = nullptr, @@ -370,7 +377,7 @@ class ARROW_EXPORT ListArray : public Array { public: using TypeClass = ListType; - explicit ListArray(const std::shared_ptr& data); + explicit ListArray(const std::shared_ptr& data); ListArray(const std::shared_ptr& type, int64_t length, const std::shared_ptr& value_offsets, @@ -410,7 +417,7 @@ class ARROW_EXPORT ListArray : public Array { } protected: - void SetData(const std::shared_ptr& data); + void SetData(const std::shared_ptr& data); const int32_t* raw_value_offsets_; private: @@ -424,7 +431,7 @@ class ARROW_EXPORT BinaryArray : public FlatArray { public: using TypeClass = BinaryType; - explicit BinaryArray(const std::shared_ptr& data); + explicit BinaryArray(const std::shared_ptr& data); BinaryArray(int64_t length, const std::shared_ptr& value_offsets, const std::shared_ptr& data, @@ -463,7 +470,7 @@ class ARROW_EXPORT BinaryArray : public FlatArray { BinaryArray() {} /// Protected method for constructors - void SetData(const std::shared_ptr& data); + void SetData(const std::shared_ptr& data); // Constructor that allows sub-classes/builders to propagate there logical type up the // class hierarchy. @@ -481,7 +488,7 @@ class ARROW_EXPORT StringArray : public BinaryArray { public: using TypeClass = StringType; - explicit StringArray(const std::shared_ptr& data); + explicit StringArray(const std::shared_ptr& data); StringArray(int64_t length, const std::shared_ptr& value_offsets, const std::shared_ptr& data, @@ -504,7 +511,7 @@ class ARROW_EXPORT FixedSizeBinaryArray : public PrimitiveArray { public: using TypeClass = FixedSizeBinaryType; - explicit FixedSizeBinaryArray(const std::shared_ptr& data); + explicit FixedSizeBinaryArray(const std::shared_ptr& data); FixedSizeBinaryArray(const std::shared_ptr& type, int64_t length, const std::shared_ptr& data, @@ -517,7 +524,7 @@ class ARROW_EXPORT FixedSizeBinaryArray : public PrimitiveArray { int32_t byte_width() const { return byte_width_; } protected: - inline void SetData(const std::shared_ptr& data) { + inline void SetData(const std::shared_ptr& data) { this->PrimitiveArray::SetData(data); byte_width_ = static_cast(*type()).byte_width(); } @@ -533,8 +540,8 @@ class ARROW_EXPORT DecimalArray : public FixedSizeBinaryArray { using FixedSizeBinaryArray::FixedSizeBinaryArray; - /// \brief Construct DecimalArray from internal::ArrayData instance - explicit DecimalArray(const std::shared_ptr& data); + /// \brief Construct DecimalArray from ArrayData instance + explicit DecimalArray(const std::shared_ptr& data); std::string FormatValue(int64_t i) const; }; @@ -546,7 +553,7 @@ class ARROW_EXPORT StructArray : public Array { public: using TypeClass = StructType; - explicit StructArray(const std::shared_ptr& data); + explicit StructArray(const std::shared_ptr& data); StructArray(const std::shared_ptr& type, int64_t length, const std::vector>& children, @@ -570,7 +577,7 @@ class ARROW_EXPORT UnionArray : public Array { using TypeClass = UnionType; using type_id_t = uint8_t; - explicit UnionArray(const std::shared_ptr& data); + explicit UnionArray(const std::shared_ptr& data); UnionArray(const std::shared_ptr& type, int64_t length, const std::vector>& children, @@ -593,7 +600,7 @@ class ARROW_EXPORT UnionArray : public Array { std::shared_ptr child(int pos) const; protected: - void SetData(const std::shared_ptr& data); + void SetData(const std::shared_ptr& data); const type_id_t* raw_type_ids_; const int32_t* raw_value_offsets_; @@ -624,7 +631,7 @@ class ARROW_EXPORT DictionaryArray : public Array { public: using TypeClass = DictionaryType; - explicit DictionaryArray(const std::shared_ptr& data); + explicit DictionaryArray(const std::shared_ptr& data); DictionaryArray(const std::shared_ptr& type, const std::shared_ptr& indices); @@ -635,7 +642,7 @@ class ARROW_EXPORT DictionaryArray : public Array { const DictionaryType* dict_type() const { return dict_type_; } private: - void SetData(const std::shared_ptr& data); + void SetData(const std::shared_ptr& data); const DictionaryType* dict_type_; std::shared_ptr indices_; @@ -669,20 +676,26 @@ ARROW_EXTERN_TEMPLATE NumericArray; /// /// \param array an Array instance /// \return Status -Status ARROW_EXPORT ValidateArray(const Array& array); +ARROW_EXPORT +Status ValidateArray(const Array& array); + +#ifndef ARROW_NO_DEPRECATED_API +// \deprecated Since 0.7.0 /// Create new arrays for logical types that are backed by primitive arrays. -Status ARROW_EXPORT MakePrimitiveArray(const std::shared_ptr& type, - int64_t length, - const std::shared_ptr& data, - const std::shared_ptr& null_bitmap, - int64_t null_count, int64_t offset, - std::shared_ptr* out); - -Status ARROW_EXPORT -MakePrimitiveArray(const std::shared_ptr& type, - const std::vector>& buffers, int64_t length, - int64_t null_count, int64_t offset, std::shared_ptr* out); +ARROW_EXPORT +Status MakePrimitiveArray(const std::shared_ptr& type, int64_t length, + const std::shared_ptr& data, + const std::shared_ptr& null_bitmap, int64_t null_count, + int64_t offset, std::shared_ptr* out); + +ARROW_EXPORT +Status MakePrimitiveArray(const std::shared_ptr& type, + const std::vector>& buffers, + int64_t length, int64_t null_count, int64_t offset, + std::shared_ptr* out); + +#endif } // namespace arrow diff --git a/cpp/src/arrow/builder.cc b/cpp/src/arrow/builder.cc index 5945677e72b..a4a12d49017 100644 --- a/cpp/src/arrow/builder.cc +++ b/cpp/src/arrow/builder.cc @@ -41,7 +41,6 @@ namespace arrow { using internal::AdaptiveIntBuilderBase; -using internal::ArrayData; using internal::WrappedBinary; Status ArrayBuilder::AppendToBitmap(bool is_valid) { diff --git a/cpp/src/arrow/builder.h b/cpp/src/arrow/builder.h index bf7b317f68c..860b396230e 100644 --- a/cpp/src/arrow/builder.h +++ b/cpp/src/arrow/builder.h @@ -704,7 +704,7 @@ class ARROW_EXPORT BinaryBuilder : public ArrayBuilder { static constexpr int64_t kMaximumCapacity = std::numeric_limits::max() - 1; Status AppendNextOffset(); - Status FinishInternal(std::shared_ptr* out); + Status FinishInternal(std::shared_ptr* out); void Reset(); }; diff --git a/cpp/src/arrow/compute/cast.cc b/cpp/src/arrow/compute/cast.cc index c651244b3ce..5283bf0a4c2 100644 --- a/cpp/src/arrow/compute/cast.cc +++ b/cpp/src/arrow/compute/cast.cc @@ -706,7 +706,7 @@ Status Cast(FunctionContext* ctx, const Array& array, auto out_data = std::make_shared(out_type, array.length()); RETURN_NOT_OK(func->Call(ctx, array, out_data.get())); - return internal::MakeArray(out_data, out); + return MakeArray(out_data, out); } } // namespace compute diff --git a/cpp/src/arrow/compute/compute-test.cc b/cpp/src/arrow/compute/compute-test.cc index 5898aeebde4..9df4573deba 100644 --- a/cpp/src/arrow/compute/compute-test.cc +++ b/cpp/src/arrow/compute/compute-test.cc @@ -44,9 +44,6 @@ using std::vector; namespace arrow { - -using internal::ArrayData; - namespace compute { void AssertArraysEqual(const Array& left, const Array& right) { diff --git a/cpp/src/arrow/compute/kernel.h b/cpp/src/arrow/compute/kernel.h index 521421ef37b..4e072a7c143 100644 --- a/cpp/src/arrow/compute/kernel.h +++ b/cpp/src/arrow/compute/kernel.h @@ -21,9 +21,6 @@ #include "arrow/array.h" namespace arrow { - -using internal::ArrayData; - namespace compute { class FunctionContext; diff --git a/cpp/src/arrow/ipc/feather-test.cc b/cpp/src/arrow/ipc/feather-test.cc index e74a60dd489..6bd16462df9 100644 --- a/cpp/src/arrow/ipc/feather-test.cc +++ b/cpp/src/arrow/ipc/feather-test.cc @@ -368,11 +368,11 @@ TEST_F(TestTableWriter, TimeTypes) { std::vector> buffers = {prim_values.null_bitmap(), prim_values.values()}; - std::vector> arrays; + std::vector> arrays; arrays.push_back(date_array->data()); for (int i = 1; i < schema->num_fields(); ++i) { - arrays.emplace_back(std::make_shared( + arrays.emplace_back(std::make_shared( schema->field(i)->type(), values->length(), buffers, values->null_count(), 0)); } diff --git a/cpp/src/arrow/ipc/feather.cc b/cpp/src/arrow/ipc/feather.cc index 5c6e2520766..31dc0e73e0e 100644 --- a/cpp/src/arrow/ipc/feather.cc +++ b/cpp/src/arrow/ipc/feather.cc @@ -368,7 +368,10 @@ class TableReader::TableReaderImpl { } buffers.push_back(SliceBuffer(buffer, offset, buffer->size() - offset)); - return MakePrimitiveArray(type, buffers, meta->length(), meta->null_count(), 0, out); + + auto arr_data = + std::make_shared(type, meta->length(), buffers, meta->null_count()); + return MakeArray(arr_data, out); } bool HasDescription() const { return metadata_->HasDescription(); } diff --git a/cpp/src/arrow/ipc/reader.cc b/cpp/src/arrow/ipc/reader.cc index 2a0633f31c8..09def6ea6ed 100644 --- a/cpp/src/arrow/ipc/reader.cc +++ b/cpp/src/arrow/ipc/reader.cc @@ -74,7 +74,7 @@ class IpcComponentSource { } } - Status GetFieldMetadata(int field_index, internal::ArrayData* out) { + Status GetFieldMetadata(int field_index, ArrayData* out) { auto nodes = metadata_->nodes(); // pop off a field if (field_index >= static_cast(nodes->size())) { @@ -106,11 +106,11 @@ struct ArrayLoaderContext { }; static Status LoadArray(const std::shared_ptr& type, - ArrayLoaderContext* context, internal::ArrayData* out); + ArrayLoaderContext* context, ArrayData* out); class ArrayLoader { public: - ArrayLoader(const std::shared_ptr& type, internal::ArrayData* out, + ArrayLoader(const std::shared_ptr& type, ArrayData* out, ArrayLoaderContext* context) : type_(type), context_(context), out_(out) {} @@ -168,7 +168,7 @@ class ArrayLoader { return GetBuffer(context_->buffer_index++, &out_->buffers[2]); } - Status LoadChild(const Field& field, internal::ArrayData* out) { + Status LoadChild(const Field& field, ArrayData* out) { ArrayLoader loader(field.type(), out, context_); --context_->max_recursion_depth; RETURN_NOT_OK(loader.Load()); @@ -180,7 +180,7 @@ class ArrayLoader { out_->child_data.reserve(static_cast(child_fields.size())); for (const auto& child_field : child_fields) { - auto field_array = std::make_shared(); + auto field_array = std::make_shared(); RETURN_NOT_OK(LoadChild(*child_field.get(), field_array.get())); out_->child_data.emplace_back(field_array); } @@ -257,11 +257,11 @@ class ArrayLoader { ArrayLoaderContext* context_; // Used in visitor pattern - internal::ArrayData* out_; + ArrayData* out_; }; static Status LoadArray(const std::shared_ptr& type, - ArrayLoaderContext* context, internal::ArrayData* out) { + ArrayLoaderContext* context, ArrayData* out) { ArrayLoader loader(type, out, context); return loader.Load(); } @@ -291,9 +291,9 @@ static Status LoadRecordBatchFromSource(const std::shared_ptr& schema, context.buffer_index = 0; context.max_recursion_depth = max_recursion_depth; - std::vector> arrays(schema->num_fields()); + std::vector> arrays(schema->num_fields()); for (int i = 0; i < schema->num_fields(); ++i) { - auto arr = std::make_shared(); + auto arr = std::make_shared(); RETURN_NOT_OK(LoadArray(schema->field(i)->type(), &context, arr.get())); DCHECK_EQ(num_rows, arr->length) << "Array length did not match record batch length"; arrays[i] = std::move(arr); diff --git a/cpp/src/arrow/python/pandas_to_arrow.cc b/cpp/src/arrow/python/pandas_to_arrow.cc index 1f96f4ed9d6..9bc69d6cd32 100644 --- a/cpp/src/arrow/python/pandas_to_arrow.cc +++ b/cpp/src/arrow/python/pandas_to_arrow.cc @@ -57,10 +57,6 @@ #include "arrow/python/util/datetime.h" namespace arrow { - -using internal::ArrayData; -using internal::MakeArray; - namespace py { using internal::NumPyTypeSize; diff --git a/cpp/src/arrow/table.cc b/cpp/src/arrow/table.cc index 4a08dc540a4..3d3ecd2734e 100644 --- a/cpp/src/arrow/table.cc +++ b/cpp/src/arrow/table.cc @@ -30,8 +30,6 @@ namespace arrow { -using internal::ArrayData; - // ---------------------------------------------------------------------- // ChunkedArray and Column methods @@ -199,7 +197,7 @@ RecordBatch::RecordBatch(const std::shared_ptr& schema, int64_t num_rows std::shared_ptr RecordBatch::column(int i) const { if (!boxed_columns_[i]) { - DCHECK(internal::MakeArray(columns_[i], &boxed_columns_[i]).ok()); + DCHECK(MakeArray(columns_[i], &boxed_columns_[i]).ok()); } return boxed_columns_[i]; } diff --git a/cpp/src/arrow/table.h b/cpp/src/arrow/table.h index 90336e982c7..a66772e5a71 100644 --- a/cpp/src/arrow/table.h +++ b/cpp/src/arrow/table.h @@ -135,12 +135,12 @@ class ARROW_EXPORT RecordBatch { /// should be equal to the length of each field /// \param columns the data for the batch's columns RecordBatch(const std::shared_ptr& schema, int64_t num_rows, - std::vector>&& columns); + std::vector>&& columns); /// \brief Construct record batch by copying vector of array data /// \since 0.5.0 RecordBatch(const std::shared_ptr& schema, int64_t num_rows, - const std::vector>& columns); + const std::vector>& columns); /// \brief Determine if two record batches are exactly equal /// \return true if batches are equal @@ -158,7 +158,7 @@ class ARROW_EXPORT RecordBatch { /// \return an Array object std::shared_ptr column(int i) const; - std::shared_ptr column_data(int i) const { return columns_[i]; } + std::shared_ptr column_data(int i) const { return columns_[i]; } /// \brief Name in i-th column const std::string& column_name(int i) const; @@ -197,7 +197,7 @@ class ARROW_EXPORT RecordBatch { std::shared_ptr schema_; int64_t num_rows_; - std::vector> columns_; + std::vector> columns_; // Caching boxed array data mutable std::vector> boxed_columns_; From da7d9e9c6e5a1e70d7879ed3c992655e46449401 Mon Sep 17 00:00:00 2001 From: Wes McKinney Date: Mon, 11 Sep 2017 11:46:57 -0400 Subject: [PATCH 2/3] Add docstring for MakeArray Change-Id: I4e7c9de65e5ceb94008d0c2be85463376ef451ec --- cpp/src/arrow/array.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cpp/src/arrow/array.h b/cpp/src/arrow/array.h index 0fbb5797c0e..d2327589d63 100644 --- a/cpp/src/arrow/array.h +++ b/cpp/src/arrow/array.h @@ -144,6 +144,10 @@ struct ARROW_EXPORT ArrayData { std::vector> child_data; }; +/// \brief Create a strongly-typed Array instance from generic ArrayData +/// \param[in] data the array contents +/// \param[out] out the resulting Array instance +/// \return Status ARROW_EXPORT Status MakeArray(const std::shared_ptr& data, std::shared_ptr* out); From 67e29964f735a1123c34d1f6441ec433f2e571da Mon Sep 17 00:00:00 2001 From: Wes McKinney Date: Mon, 11 Sep 2017 11:54:35 -0400 Subject: [PATCH 3/3] Remove internal:: symbols for ArrayData, MakeArray --- cpp/src/arrow/array.cc | 1 + cpp/src/arrow/array.h | 10 ---------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/cpp/src/arrow/array.cc b/cpp/src/arrow/array.cc index 3b4496ac024..52b21d5beb2 100644 --- a/cpp/src/arrow/array.cc +++ b/cpp/src/arrow/array.cc @@ -598,6 +598,7 @@ class ArrayDataWrapper { } // namespace internal +// Remove enclosing namespace after 0.7.0 Status MakeArray(const std::shared_ptr& data, std::shared_ptr* out) { internal::ArrayDataWrapper wrapper_visitor(data, out); return VisitTypeInline(*data->type, &wrapper_visitor); diff --git a/cpp/src/arrow/array.h b/cpp/src/arrow/array.h index d2327589d63..e801b3586df 100644 --- a/cpp/src/arrow/array.h +++ b/cpp/src/arrow/array.h @@ -151,16 +151,6 @@ struct ARROW_EXPORT ArrayData { ARROW_EXPORT Status MakeArray(const std::shared_ptr& data, std::shared_ptr* out); -namespace internal { - -#ifndef ARROW_NO_DEPRECATED_API -// \deprecated since 0.7.0 -using ArrayData = ::arrow::ArrayData; -using MakeArray = ::arrow::MakeArray; -#endif - -} // namespace internal - // ---------------------------------------------------------------------- // User array accessor types