From 1dd3ec2fe99e986dcb67335f0543b18f1904bc86 Mon Sep 17 00:00:00 2001 From: Rok Mihevc Date: Thu, 26 Sep 2024 13:31:53 +0200 Subject: [PATCH] Review feedback --- cpp/src/arrow/extension/json.cc | 8 ++++++-- cpp/src/arrow/extension/json.h | 2 ++ cpp/src/parquet/arrow/schema.cc | 10 ++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/cpp/src/arrow/extension/json.cc b/cpp/src/arrow/extension/json.cc index 6c924a47b841f..9dc1cfe6a3617 100644 --- a/cpp/src/arrow/extension/json.cc +++ b/cpp/src/arrow/extension/json.cc @@ -47,10 +47,14 @@ std::shared_ptr JsonExtensionType::MakeArray( return std::make_shared(data); } +bool JsonExtensionType::IsSupportedStorageType(Type::type type_id) { + return type_id == Type::STRING || type_id == Type::STRING_VIEW || + type_id == Type::LARGE_STRING; +} + Result> JsonExtensionType::Make( std::shared_ptr storage_type) { - if (storage_type->id() != Type::STRING && storage_type->id() != Type::STRING_VIEW && - storage_type->id() != Type::LARGE_STRING) { + if (!IsSupportedStorageType(storage_type->id())) { return Status::Invalid("Invalid storage type for JsonExtensionType: ", storage_type->ToString()); } diff --git a/cpp/src/arrow/extension/json.h b/cpp/src/arrow/extension/json.h index 85f9092d62b1a..89976c8073fac 100644 --- a/cpp/src/arrow/extension/json.h +++ b/cpp/src/arrow/extension/json.h @@ -47,6 +47,8 @@ class ARROW_EXPORT JsonExtensionType : public ExtensionType { static Result> Make(std::shared_ptr storage_type); + static bool IsSupportedStorageType(Type::type type_id); + private: std::shared_ptr storage_type_; }; diff --git a/cpp/src/parquet/arrow/schema.cc b/cpp/src/parquet/arrow/schema.cc index f33f4681512c0..c06d2c575c89f 100644 --- a/cpp/src/parquet/arrow/schema.cc +++ b/cpp/src/parquet/arrow/schema.cc @@ -997,9 +997,8 @@ Result ApplyOriginalMetadata(const Field& origin_field, SchemaField* infer const auto& ex_type = checked_cast(*origin_type); if (inferred_type->id() != ::arrow::Type::EXTENSION && ex_type.extension_name() == std::string("arrow.json") && - (inferred_type->id() == ::arrow::Type::STRING || - inferred_type->id() == ::arrow::Type::LARGE_STRING || - inferred_type->id() == ::arrow::Type::STRING_VIEW)) { + ::arrow::extension::JsonExtensionType::IsSupportedStorageType( + inferred_type->storage_id())) { // Schema mismatch. // // Arrow extensions are DISABLED in Parquet. @@ -1019,9 +1018,8 @@ Result ApplyOriginalMetadata(const Field& origin_field, SchemaField* infer // from the Parquet type if (ex_type.storage_type()->Equals(*inferred->field->type()) || ((ex_type.extension_name() == "arrow.json") && - (inferred->field->type()->storage_id() == ::arrow::Type::STRING || - inferred->field->type()->storage_id() == ::arrow::Type::LARGE_STRING || - inferred->field->type()->storage_id() == ::arrow::Type::STRING_VIEW))) { + ::arrow::extension::JsonExtensionType::IsSupportedStorageType( + inferred_type->storage_id()))) { inferred->field = inferred->field->WithType(origin_type); } }