@@ -491,7 +491,7 @@ class PostgresTypeResolver {
491491 // Resolve the oid for a given type_id. Returns 0 if the oid cannot be
492492 // resolved.
493493 uint32_t GetOID (PostgresTypeId type_id) const {
494- auto result = reverse_mapping_.find (static_cast < int32_t >( type_id) );
494+ auto result = reverse_mapping_.find (type_id);
495495 if (result == reverse_mapping_.end ()) {
496496 return 0 ;
497497 } else {
@@ -524,7 +524,7 @@ class PostgresTypeResolver {
524524 PostgresType child;
525525 NANOARROW_RETURN_NOT_OK (Find (item.child_oid , &child, error));
526526 mapping_.insert ({item.oid , child.Array (item.oid , item.typname )});
527- reverse_mapping_.insert ({static_cast < int32_t >( base.type_id () ), item.oid });
527+ reverse_mapping_.insert ({base.type_id (), item.oid });
528528 array_mapping_.insert ({child.oid (), item.oid });
529529 break ;
530530 }
@@ -541,29 +541,29 @@ class PostgresTypeResolver {
541541 }
542542
543543 mapping_.insert ({item.oid , out.WithPgTypeInfo (item.oid , item.typname )});
544- reverse_mapping_.insert ({static_cast < int32_t >( base.type_id () ), item.oid });
544+ reverse_mapping_.insert ({base.type_id (), item.oid });
545545 break ;
546546 }
547547
548548 case PostgresTypeId::kDomain : {
549549 PostgresType base_type;
550550 NANOARROW_RETURN_NOT_OK (Find (item.base_oid , &base_type, error));
551551 mapping_.insert ({item.oid , base_type.Domain (item.oid , item.typname )});
552- reverse_mapping_.insert ({static_cast < int32_t >( base.type_id () ), item.oid });
552+ reverse_mapping_.insert ({base.type_id (), item.oid });
553553 break ;
554554 }
555555
556556 case PostgresTypeId::kRange : {
557557 PostgresType base_type;
558558 NANOARROW_RETURN_NOT_OK (Find (item.base_oid , &base_type, error));
559559 mapping_.insert ({item.oid , base_type.Range (item.oid , item.typname )});
560- reverse_mapping_.insert ({static_cast < int32_t >( base.type_id () ), item.oid });
560+ reverse_mapping_.insert ({base.type_id (), item.oid });
561561 break ;
562562 }
563563
564564 default :
565565 mapping_.insert ({item.oid , type});
566- reverse_mapping_.insert ({static_cast < int32_t >( base.type_id () ), item.oid });
566+ reverse_mapping_.insert ({base.type_id (), item.oid });
567567 break ;
568568 }
569569
@@ -586,9 +586,7 @@ class PostgresTypeResolver {
586586
587587 private:
588588 std::unordered_map<uint32_t , PostgresType> mapping_;
589- // We can't use PostgresTypeId as an unordered map key because there is no
590- // built-in hasher for an enum on gcc 4.8 (i.e., R 3.6 on Windows).
591- std::unordered_map<int32_t , uint32_t > reverse_mapping_;
589+ std::unordered_map<PostgresTypeId, uint32_t > reverse_mapping_;
592590 std::unordered_map<uint32_t , uint32_t > array_mapping_;
593591 std::unordered_map<uint32_t , std::vector<std::pair<std::string, uint32_t >>> classes_;
594592 std::unordered_map<std::string, PostgresType> base_;
0 commit comments