@@ -46,7 +46,8 @@ class IdToFieldVisitor {
4646class NameToIdVisitor {
4747 public:
4848 explicit NameToIdVisitor (
49- std::unordered_map<std::string, int32_t >& name_to_id, bool case_sensitive = true ,
49+ std::unordered_map<std::string, int32_t , string_hash, std::equal_to<>>& name_to_id,
50+ bool case_sensitive = true ,
5051 std::function<std::string(std::string_view)> quoting_func = {});
5152 Status Visit (const ListType& type, const std::string& path,
5253 const std::string& short_path);
@@ -64,8 +65,9 @@ class NameToIdVisitor {
6465
6566 private:
6667 bool case_sensitive_;
67- std::unordered_map<std::string, int32_t >& name_to_id_;
68- std::unordered_map<std::string, int32_t > short_name_to_id_;
68+ std::unordered_map<std::string, int32_t , string_hash, std::equal_to<>>& name_to_id_;
69+ std::unordered_map<std::string, int32_t , string_hash, std::equal_to<>>
70+ short_name_to_id_;
6971 std::function<std::string(std::string_view)> quoting_func_;
7072};
7173
@@ -91,7 +93,7 @@ Result<std::optional<std::reference_wrapper<const SchemaField>>> Schema::FindFie
9193 std::string_view name, bool case_sensitive) const {
9294 if (case_sensitive) {
9395 ICEBERG_RETURN_UNEXPECTED (InitNameToIdMap ());
94- auto it = name_to_id_.find (std::string ( name) );
96+ auto it = name_to_id_.find (name);
9597 if (it == name_to_id_.end ()) return std::nullopt ;
9698 return FindFieldById (it->second );
9799 }
@@ -167,8 +169,8 @@ Status IdToFieldVisitor::VisitNestedType(const Type& type) {
167169}
168170
169171NameToIdVisitor::NameToIdVisitor (
170- std::unordered_map<std::string, int32_t >& name_to_id, bool case_sensitive ,
171- std::function<std::string(std::string_view)> quoting_func)
172+ std::unordered_map<std::string, int32_t , string_hash, std::equal_to<>>& name_to_id ,
173+ bool case_sensitive, std::function<std::string(std::string_view)> quoting_func)
172174 : name_to_id_(name_to_id),
173175 case_sensitive_(case_sensitive),
174176 quoting_func_(std::move(quoting_func)) {}
0 commit comments