Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cpp/src/arrow/array.cc
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ Decimal128Array::Decimal128Array(const std::shared_ptr<ArrayData>& data)
}

std::string Decimal128Array::FormatValue(int64_t i) const {
const auto& type_ = static_cast<const DecimalType&>(*type());
const auto& type_ = static_cast<const Decimal128Type&>(*type());
const Decimal128 value(GetValue(i));
return value.ToString(type_.scale());
}
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/arrow/array.h
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,7 @@ class ARROW_EXPORT FixedSizeBinaryArray : public PrimitiveArray {
// Decimal128Array
class ARROW_EXPORT Decimal128Array : public FixedSizeBinaryArray {
public:
using TypeClass = DecimalType;
using TypeClass = Decimal128Type;

using FixedSizeBinaryArray::FixedSizeBinaryArray;

Expand Down
9 changes: 5 additions & 4 deletions cpp/src/arrow/builder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1147,17 +1147,18 @@ template class DictionaryBuilder<BinaryType>;
template class DictionaryBuilder<StringType>;

// ----------------------------------------------------------------------
// DecimalBuilder
// Decimal128Builder

DecimalBuilder::DecimalBuilder(const std::shared_ptr<DataType>& type, MemoryPool* pool)
Decimal128Builder::Decimal128Builder(const std::shared_ptr<DataType>& type,
MemoryPool* pool)
: FixedSizeBinaryBuilder(type, pool) {}

Status DecimalBuilder::Append(const Decimal128& value) {
Status Decimal128Builder::Append(const Decimal128& value) {
RETURN_NOT_OK(FixedSizeBinaryBuilder::Reserve(1));
return FixedSizeBinaryBuilder::Append(value.ToBytes());
}

Status DecimalBuilder::FinishInternal(std::shared_ptr<ArrayData>* out) {
Status Decimal128Builder::FinishInternal(std::shared_ptr<ArrayData>* out) {
std::shared_ptr<Buffer> data;
RETURN_NOT_OK(byte_builder_.Finish(&data));

Expand Down
8 changes: 5 additions & 3 deletions cpp/src/arrow/builder.h
Original file line number Diff line number Diff line change
Expand Up @@ -753,10 +753,10 @@ class ARROW_EXPORT FixedSizeBinaryBuilder : public ArrayBuilder {
BufferBuilder byte_builder_;
};

class ARROW_EXPORT DecimalBuilder : public FixedSizeBinaryBuilder {
class ARROW_EXPORT Decimal128Builder : public FixedSizeBinaryBuilder {
public:
explicit DecimalBuilder(const std::shared_ptr<DataType>& type,
MemoryPool* pool ARROW_MEMORY_POOL_DEFAULT);
explicit Decimal128Builder(const std::shared_ptr<DataType>& type,
MemoryPool* pool ARROW_MEMORY_POOL_DEFAULT);

using FixedSizeBinaryBuilder::Append;

Expand All @@ -765,6 +765,8 @@ class ARROW_EXPORT DecimalBuilder : public FixedSizeBinaryBuilder {
Status FinishInternal(std::shared_ptr<ArrayData>* out) override;
};

using DecimalBuilder = Decimal128Builder;

// ----------------------------------------------------------------------
// Struct

Expand Down
4 changes: 2 additions & 2 deletions cpp/src/arrow/compare.cc
Original file line number Diff line number Diff line change
Expand Up @@ -615,8 +615,8 @@ class TypeEqualsVisitor {
return Status::OK();
}

Status Visit(const DecimalType& left) {
const auto& right = static_cast<const DecimalType&>(right_);
Status Visit(const Decimal128Type& left) {
const auto& right = static_cast<const Decimal128Type&>(right_);
result_ = left.precision() == right.precision() && left.scale() == right.scale();
return Status::OK();
}
Expand Down
8 changes: 4 additions & 4 deletions cpp/src/arrow/ipc/json-internal.cc
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ class SchemaWriter {
writer_->Int(type.byte_width());
}

void WriteTypeMetadata(const DecimalType& type) {
void WriteTypeMetadata(const Decimal128Type& type) {
writer_->Key("precision");
writer_->Int(type.precision());
writer_->Key("scale");
Expand Down Expand Up @@ -347,7 +347,7 @@ class SchemaWriter {
return WritePrimitive("fixedsizebinary", type);
}

Status Visit(const DecimalType& type) { return WritePrimitive("decimal", type); }
Status Visit(const Decimal128Type& type) { return WritePrimitive("decimal", type); }
Status Visit(const TimestampType& type) { return WritePrimitive("timestamp", type); }
Status Visit(const IntervalType& type) { return WritePrimitive("interval", type); }

Expand Down Expand Up @@ -1063,7 +1063,7 @@ class ArrayReader {

template <typename T>
typename std::enable_if<std::is_base_of<FixedSizeBinaryType, T>::value &&
!std::is_base_of<DecimalType, T>::value,
!std::is_base_of<Decimal128Type, T>::value,
Status>::type
Visit(const T& type) {
typename TypeTraits<T>::BuilderType builder(type_, pool_);
Expand Down Expand Up @@ -1105,7 +1105,7 @@ class ArrayReader {
}

template <typename T>
typename std::enable_if<std::is_base_of<DecimalType, T>::value, Status>::type Visit(
typename std::enable_if<std::is_base_of<Decimal128Type, T>::value, Status>::type Visit(
const T& type) {
typename TypeTraits<T>::BuilderType builder(type_, pool_);

Expand Down
2 changes: 1 addition & 1 deletion cpp/src/arrow/ipc/metadata-internal.cc
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@ static Status TypeToFlatbuffer(FBB& fbb, const DataType& type,
*offset = flatbuf::CreateTimestamp(fbb, fb_unit, fb_timezone).Union();
} break;
case Type::DECIMAL: {
const auto& dec_type = static_cast<const DecimalType&>(*value_type);
const auto& dec_type = static_cast<const Decimal128Type&>(*value_type);
*out_type = flatbuf::Type_Decimal;
*offset =
flatbuf::CreateDecimal(fbb, dec_type.precision(), dec_type.scale()).Union();
Expand Down
4 changes: 2 additions & 2 deletions cpp/src/arrow/python/arrow_to_pandas.cc
Original file line number Diff line number Diff line change
Expand Up @@ -634,7 +634,7 @@ static Status ConvertDecimals(PandasOptions options, const ChunkedArray& data,

for (int c = 0; c < data.num_chunks(); c++) {
auto* arr(static_cast<arrow::Decimal128Array*>(data.chunk(c).get()));
auto type(std::dynamic_pointer_cast<arrow::DecimalType>(arr->type()));
auto type(std::dynamic_pointer_cast<arrow::Decimal128Type>(arr->type()));
const int scale = type->scale();

for (int64_t i = 0; i < arr->length(); ++i) {
Expand Down Expand Up @@ -1600,7 +1600,7 @@ class ArrowDeserializer {
return VisitObjects(ConvertFixedSizeBinary);
}

Status Visit(const DecimalType& type) { return VisitObjects(ConvertDecimals); }
Status Visit(const Decimal128Type& type) { return VisitObjects(ConvertDecimals); }

Status Visit(const Time32Type& type) { return VisitObjects(ConvertTimes<Time32Type>); }

Expand Down
2 changes: 1 addition & 1 deletion cpp/src/arrow/python/builtin_convert.cc
Original file line number Diff line number Diff line change
Expand Up @@ -700,7 +700,7 @@ class ListConverter : public TypedConverterVisitor<ListBuilder, ListConverter> {
};

class DecimalConverter
: public TypedConverterVisitor<arrow::DecimalBuilder, DecimalConverter> {
: public TypedConverterVisitor<arrow::Decimal128Builder, DecimalConverter> {
public:
inline Status AppendItem(const OwnedRef& item) {
/// TODO(phillipc): Check for nan?
Expand Down
6 changes: 3 additions & 3 deletions cpp/src/arrow/python/numpy_to_arrow.cc
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ class NumPyConverter {
return TypeNotImplemented(type.ToString());
}

Status Visit(const DecimalType& type) { return TypeNotImplemented(type.ToString()); }
Status Visit(const Decimal128Type& type) { return TypeNotImplemented(type.ToString()); }

Status Visit(const DictionaryType& type) { return TypeNotImplemented(type.ToString()); }

Expand Down Expand Up @@ -669,9 +669,9 @@ Status NumPyConverter::ConvertDecimals() {

RETURN_NOT_OK(internal::InferDecimalPrecisionAndScale(object, &precision, &scale));

type_ = std::make_shared<DecimalType>(precision, scale);
type_ = std::make_shared<Decimal128Type>(precision, scale);

DecimalBuilder builder(type_, pool_);
Decimal128Builder builder(type_, pool_);
RETURN_NOT_OK(builder.Resize(length_));

for (int64_t i = 0; i < length_; ++i) {
Expand Down
6 changes: 3 additions & 3 deletions cpp/src/arrow/type.cc
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ ACCEPT_VISITOR(FixedSizeBinaryType);
ACCEPT_VISITOR(StringType);
ACCEPT_VISITOR(ListType);
ACCEPT_VISITOR(StructType);
ACCEPT_VISITOR(DecimalType);
ACCEPT_VISITOR(Decimal128Type);
ACCEPT_VISITOR(UnionType);
ACCEPT_VISITOR(Date32Type);
ACCEPT_VISITOR(Date64Type);
Expand Down Expand Up @@ -471,7 +471,7 @@ std::shared_ptr<Field> field(const std::string& name,
}

std::shared_ptr<DataType> decimal(int32_t precision, int32_t scale) {
return std::make_shared<DecimalType>(precision, scale);
return std::make_shared<Decimal128Type>(precision, scale);
}

static const BufferDescr kValidityBuffer(BufferType::VALIDITY, 1);
Expand Down Expand Up @@ -511,7 +511,7 @@ std::vector<BufferDescr> UnionType::GetBufferLayout() const {
}
}

std::string DecimalType::ToString() const {
std::string Decimal128Type::ToString() const {
std::stringstream s;
s << "decimal(" << precision_ << ", " << scale_ << ")";
return s.str();
Expand Down
6 changes: 4 additions & 2 deletions cpp/src/arrow/type.h
Original file line number Diff line number Diff line change
Expand Up @@ -498,11 +498,11 @@ class ARROW_EXPORT StructType : public NestedType {
std::vector<BufferDescr> GetBufferLayout() const override;
};

class ARROW_EXPORT DecimalType : public FixedSizeBinaryType {
class ARROW_EXPORT Decimal128Type : public FixedSizeBinaryType {
public:
static constexpr Type::type type_id = Type::DECIMAL;

explicit DecimalType(int32_t precision, int32_t scale)
explicit Decimal128Type(int32_t precision, int32_t scale)
: FixedSizeBinaryType(16, Type::DECIMAL), precision_(precision), scale_(scale) {}

Status Accept(TypeVisitor* visitor) const override;
Expand All @@ -517,6 +517,8 @@ class ARROW_EXPORT DecimalType : public FixedSizeBinaryType {
int32_t scale_;
};

using DecimalType = Decimal128Type;

struct UnionMode {
enum type { SPARSE, DENSE };
};
Expand Down
4 changes: 2 additions & 2 deletions cpp/src/arrow/type_fwd.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ class StructType;
class StructArray;
class StructBuilder;

class DecimalType;
class Decimal128Type;
class Decimal128Array;
class DecimalBuilder;
class Decimal128Builder;

class UnionType;
class UnionArray;
Expand Down
4 changes: 2 additions & 2 deletions cpp/src/arrow/type_traits.h
Original file line number Diff line number Diff line change
Expand Up @@ -230,9 +230,9 @@ struct TypeTraits<DoubleType> {
};

template <>
struct TypeTraits<DecimalType> {
struct TypeTraits<Decimal128Type> {
using ArrayType = Decimal128Array;
using BuilderType = DecimalBuilder;
using BuilderType = Decimal128Builder;
constexpr static bool is_parameter_free = false;
};

Expand Down
2 changes: 1 addition & 1 deletion cpp/src/arrow/visitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ class ARROW_EXPORT TypeVisitor {
virtual Status Visit(const Time64Type& type);
virtual Status Visit(const TimestampType& type);
virtual Status Visit(const IntervalType& type);
virtual Status Visit(const DecimalType& type);
virtual Status Visit(const Decimal128Type& type);
virtual Status Visit(const ListType& type);
virtual Status Visit(const StructType& type);
virtual Status Visit(const UnionType& type);
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/arrow/visitor_inline.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ inline Status VisitTypeInline(const DataType& type, VISITOR* visitor) {
TYPE_VISIT_INLINE(TimestampType);
TYPE_VISIT_INLINE(Time32Type);
TYPE_VISIT_INLINE(Time64Type);
TYPE_VISIT_INLINE(DecimalType);
TYPE_VISIT_INLINE(Decimal128Type);
TYPE_VISIT_INLINE(ListType);
TYPE_VISIT_INLINE(StructType);
TYPE_VISIT_INLINE(UnionType);
Expand Down