Skip to content

Commit 7ccac89

Browse files
committed
Do not use extern template class with NumericArray<T>
Change-Id: I06f0219754a01b24a8d89da0dcaafe0c4a9d9381
1 parent 250dc8b commit 7ccac89

File tree

2 files changed

+2
-49
lines changed

2 files changed

+2
-49
lines changed

cpp/src/arrow/array.cc

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -165,12 +165,6 @@ PrimitiveArray::PrimitiveArray(const std::shared_ptr<DataType>& type, int64_t le
165165
SetData(ArrayData::Make(type, length, {null_bitmap, data}, null_count, offset));
166166
}
167167

168-
template <typename T>
169-
NumericArray<T>::NumericArray(const std::shared_ptr<ArrayData>& data)
170-
: PrimitiveArray(data) {
171-
DCHECK_EQ(data->type->id(), T::type_id);
172-
}
173-
174168
// ----------------------------------------------------------------------
175169
// BooleanArray
176170

@@ -987,24 +981,4 @@ std::vector<ArrayVector> RechunkArraysConsistently(
987981

988982
} // namespace internal
989983

990-
// ----------------------------------------------------------------------
991-
// Instantiate templates
992-
993-
template class ARROW_TEMPLATE_EXPORT NumericArray<UInt8Type>;
994-
template class ARROW_TEMPLATE_EXPORT NumericArray<UInt16Type>;
995-
template class ARROW_TEMPLATE_EXPORT NumericArray<UInt32Type>;
996-
template class ARROW_TEMPLATE_EXPORT NumericArray<UInt64Type>;
997-
template class ARROW_TEMPLATE_EXPORT NumericArray<Int8Type>;
998-
template class ARROW_TEMPLATE_EXPORT NumericArray<Int16Type>;
999-
template class ARROW_TEMPLATE_EXPORT NumericArray<Int32Type>;
1000-
template class ARROW_TEMPLATE_EXPORT NumericArray<Int64Type>;
1001-
template class ARROW_TEMPLATE_EXPORT NumericArray<TimestampType>;
1002-
template class ARROW_TEMPLATE_EXPORT NumericArray<Date32Type>;
1003-
template class ARROW_TEMPLATE_EXPORT NumericArray<Date64Type>;
1004-
template class ARROW_TEMPLATE_EXPORT NumericArray<Time32Type>;
1005-
template class ARROW_TEMPLATE_EXPORT NumericArray<Time64Type>;
1006-
template class ARROW_TEMPLATE_EXPORT NumericArray<HalfFloatType>;
1007-
template class ARROW_TEMPLATE_EXPORT NumericArray<FloatType>;
1008-
template class ARROW_TEMPLATE_EXPORT NumericArray<DoubleType>;
1009-
1010984
} // namespace arrow

cpp/src/arrow/array.h

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -398,12 +398,12 @@ class ARROW_EXPORT PrimitiveArray : public FlatArray {
398398

399399
/// Concrete Array class for numeric data.
400400
template <typename TYPE>
401-
class ARROW_EXPORT NumericArray : public PrimitiveArray {
401+
class NumericArray : public PrimitiveArray {
402402
public:
403403
using TypeClass = TYPE;
404404
using value_type = typename TypeClass::c_type;
405405

406-
explicit NumericArray(const std::shared_ptr<ArrayData>& data);
406+
explicit NumericArray(const std::shared_ptr<ArrayData>& data) : PrimitiveArray(data) {}
407407

408408
// Only enable this constructor without a type argument for types without additional
409409
// metadata
@@ -844,27 +844,6 @@ class ARROW_EXPORT DictionaryArray : public Array {
844844
std::shared_ptr<Array> indices_;
845845
};
846846

847-
// ----------------------------------------------------------------------
848-
// extern templates and other details
849-
850-
// Only instantiate these templates once
851-
ARROW_EXTERN_TEMPLATE NumericArray<Int8Type>;
852-
ARROW_EXTERN_TEMPLATE NumericArray<UInt8Type>;
853-
ARROW_EXTERN_TEMPLATE NumericArray<Int16Type>;
854-
ARROW_EXTERN_TEMPLATE NumericArray<UInt16Type>;
855-
ARROW_EXTERN_TEMPLATE NumericArray<Int32Type>;
856-
ARROW_EXTERN_TEMPLATE NumericArray<UInt32Type>;
857-
ARROW_EXTERN_TEMPLATE NumericArray<Int64Type>;
858-
ARROW_EXTERN_TEMPLATE NumericArray<UInt64Type>;
859-
ARROW_EXTERN_TEMPLATE NumericArray<HalfFloatType>;
860-
ARROW_EXTERN_TEMPLATE NumericArray<FloatType>;
861-
ARROW_EXTERN_TEMPLATE NumericArray<DoubleType>;
862-
ARROW_EXTERN_TEMPLATE NumericArray<Date32Type>;
863-
ARROW_EXTERN_TEMPLATE NumericArray<Date64Type>;
864-
ARROW_EXTERN_TEMPLATE NumericArray<Time32Type>;
865-
ARROW_EXTERN_TEMPLATE NumericArray<Time64Type>;
866-
ARROW_EXTERN_TEMPLATE NumericArray<TimestampType>;
867-
868847
/// \brief Perform any validation checks to determine obvious inconsistencies
869848
/// with the array's internal data
870849
///

0 commit comments

Comments
 (0)