28
28
#include < optional>
29
29
#include < ranges>
30
30
#include < string_view>
31
+
31
32
#include < iceberg/schema_field.h>
32
33
33
34
#include " iceberg/exception.h"
@@ -82,8 +83,8 @@ std::optional<std::reference_wrapper<const SchemaField>> StructType::GetFieldByN
82
83
if (it == field_name_to_index_.end ()) return std::nullopt;
83
84
return fields_[it->second ];
84
85
}
85
- std::optional<std::reference_wrapper<const SchemaField>> StructType::GetFieldByNameCaseInsensitive (
86
- std::string_view name) const {
86
+ std::optional<std::reference_wrapper<const SchemaField>>
87
+ StructType::GetFieldByNameCaseInsensitive ( std::string_view name) const {
87
88
InitNameToIdMapCaseInsensitive ();
88
89
std::string lower_name (name);
89
90
std::ranges::transform (lower_name, lower_name.begin (), ::tolower);
@@ -102,16 +103,16 @@ void StructType::InitNameToIdMap() const {
102
103
if (!field_name_to_index_.empty ()) {
103
104
return ;
104
105
}
105
-
106
+
106
107
for (int i = 0 ; i < fields_.size (); i++) {
107
- field_name_to_index_[std::string (fields_[i].name ())] = i;
108
+ field_name_to_index_[std::string (fields_[i].name ())] = i;
108
109
}
109
110
}
110
111
void StructType::InitNameToIdMapCaseInsensitive () const {
111
112
if (!caseinsensitive_field_name_to_index_.empty ()) {
112
113
return ;
113
114
}
114
-
115
+
115
116
for (int i = 0 ; i < fields_.size (); i++) {
116
117
std::string lowercase_name (fields_[i].name ());
117
118
std::ranges::transform (lowercase_name, lowercase_name.begin (), ::tolower);
@@ -160,13 +161,13 @@ std::optional<std::reference_wrapper<const SchemaField>> ListType::GetFieldByNam
160
161
}
161
162
return std::nullopt;
162
163
}
163
- std::optional<std::reference_wrapper<const SchemaField>> ListType::GetFieldByNameCaseInsensitive (
164
- std::string_view name) const {
164
+ std::optional<std::reference_wrapper<const SchemaField>>
165
+ ListType::GetFieldByNameCaseInsensitive ( std::string_view name) const {
165
166
auto lower_name_view = name | std::views::transform (::tolower);
166
167
auto lower_field_name = element_.name () | std::views::transform (::tolower);
167
168
if (std::ranges::equal (lower_field_name, lower_name_view)) {
168
169
return std::cref (element_);
169
- }
170
+ }
170
171
return std::nullopt;
171
172
}
172
173
bool ListType::Equals (const Type& other) const {
@@ -229,11 +230,11 @@ std::optional<std::reference_wrapper<const SchemaField>> MapType::GetFieldByName
229
230
}
230
231
return std::nullopt;
231
232
}
232
- std::optional<std::reference_wrapper<const SchemaField>> MapType::GetFieldByNameCaseInsensitive (
233
- std::string_view name) const {
234
- auto lower_name_view = name | std::views::transform (::tolower);
235
- auto lower_key_view = kKeyName | std::views::transform (tolower);
236
- auto lower_value_view = kValueName | std::views::transform (tolower);
233
+ std::optional<std::reference_wrapper<const SchemaField>>
234
+ MapType::GetFieldByNameCaseInsensitive ( std::string_view name) const {
235
+ auto lower_name_view = name | std::views::transform (::tolower);
236
+ auto lower_key_view = kKeyName | std::views::transform (:: tolower);
237
+ auto lower_value_view = kValueName | std::views::transform (:: tolower);
237
238
if (std::ranges::equal (lower_key_view, lower_name_view)) {
238
239
return key ();
239
240
} else if (std::ranges::equal (lower_value_view, lower_name_view)) {
0 commit comments