Skip to content

Commit ee13bfb

Browse files
authored
refactor(c/driver/postgresql): remove workaround for GCC 4.8 (#4790)
1 parent f672114 commit ee13bfb

1 file changed

Lines changed: 7 additions & 9 deletions

File tree

c/driver/postgresql/postgres_type.h

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)