@@ -51,9 +51,8 @@ PartitionSpec::PartitionSpec(int32_t spec_id, std::vector<PartitionField> fields
5151}
5252
5353const std::shared_ptr<PartitionSpec>& PartitionSpec::Unpartitioned () {
54- static const std::shared_ptr<PartitionSpec> unpartitioned =
55- std::make_shared<PartitionSpec>(kInitialSpecId , std::vector<PartitionField>{},
56- kLegacyPartitionDataIdStart - 1 );
54+ static const std::shared_ptr<PartitionSpec> unpartitioned (new PartitionSpec (
55+ kInitialSpecId , std::vector<PartitionField>{}, kLegacyPartitionDataIdStart - 1 ));
5756 return unpartitioned;
5857}
5958
@@ -108,16 +107,16 @@ bool PartitionSpec::Equals(const PartitionSpec& other) const {
108107 return spec_id_ == other.spec_id_ && fields_ == other.fields_ ;
109108}
110109
111- Status PartitionSpec::Validate (const Schema& schema, bool allowMissingFields ) const {
110+ Status PartitionSpec::Validate (const Schema& schema, bool allow_missing_fields ) const {
112111 std::unordered_map<int32_t , int32_t > parents = indexParents (schema);
113112 for (const auto & partition_field : fields_) {
114113 ICEBERG_ASSIGN_OR_RAISE (auto source_field,
115114 schema.FindFieldById (partition_field.source_id ()));
116115 // In the case the underlying field is dropped, we cannot check if they are compatible
117- if (allowMissingFields && !source_field.has_value ()) {
116+ if (allow_missing_fields && !source_field.has_value ()) {
118117 continue ;
119118 }
120- auto field_transform = partition_field.transform ();
119+ const auto & field_transform = partition_field.transform ();
121120
122121 // In the case of a Version 1 partition-spec field gets deleted, it is replaced with a
123122 // void transform, see: https://iceberg.apache.org/spec/#partition-transforms. We
@@ -129,10 +128,9 @@ Status PartitionSpec::Validate(const Schema& schema, bool allowMissingFields) co
129128 partition_field);
130129 }
131130 const auto & source_type = source_field.value ().get ().type ();
132- if (!partition_field. transform () ->CanTransform (*source_type)) {
131+ if (!field_transform ->CanTransform (*source_type)) {
133132 return InvalidArgument (" Invalid source type {} for transform {}" ,
134- source_type->ToString (),
135- partition_field.transform ()->ToString ());
133+ source_type->ToString (), field_transform->ToString ());
136134 }
137135
138136 // The only valid parent types for a PartitionField are StructTypes. This must be
@@ -158,18 +156,18 @@ Status PartitionSpec::Validate(const Schema& schema, bool allowMissingFields) co
158156
159157Result<std::unique_ptr<PartitionSpec>> PartitionSpec::Make (
160158 const Schema& schema, int32_t spec_id, std::vector<PartitionField> fields,
161- std::optional<int32_t > last_assigned_field_id, bool allowMissingFields ) {
162- auto partition_spec =
163- std::make_unique< PartitionSpec> (spec_id, std::move (fields), last_assigned_field_id);
164- ICEBERG_RETURN_UNEXPECTED (partition_spec->Validate (schema, allowMissingFields ));
159+ bool allow_missing_fields, std::optional<int32_t > last_assigned_field_id) {
160+ auto partition_spec = std::unique_ptr<PartitionSpec>(
161+ new PartitionSpec (spec_id, std::move (fields), last_assigned_field_id) );
162+ ICEBERG_RETURN_UNEXPECTED (partition_spec->Validate (schema, allow_missing_fields ));
165163 return partition_spec;
166164}
167165
168166Result<std::unique_ptr<PartitionSpec>> PartitionSpec::Make (
169167 int32_t spec_id, std::vector<PartitionField> fields,
170168 std::optional<int32_t > last_assigned_field_id) {
171- return std::make_unique <PartitionSpec>(spec_id, std::move (fields),
172- last_assigned_field_id);
169+ return std::unique_ptr <PartitionSpec>(
170+ new PartitionSpec (spec_id, std::move (fields), last_assigned_field_id) );
173171}
174172
175173} // namespace iceberg
0 commit comments