This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new ee13bfb51 refactor(c/driver/postgresql): remove workaround for GCC 4.8 
(#4790)
ee13bfb51 is described below

commit ee13bfb51bab5d6a7282c7f93d55d46eed11152d
Author: David Li <[email protected]>
AuthorDate: Fri Sep 18 08:00:44 2026 +0900

    refactor(c/driver/postgresql): remove workaround for GCC 4.8 (#4790)
---
 c/driver/postgresql/postgres_type.h | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/c/driver/postgresql/postgres_type.h 
b/c/driver/postgresql/postgres_type.h
index 68c4aef1d..825d9bbf9 100644
--- a/c/driver/postgresql/postgres_type.h
+++ b/c/driver/postgresql/postgres_type.h
@@ -491,7 +491,7 @@ class PostgresTypeResolver {
   // Resolve the oid for a given type_id. Returns 0 if the oid cannot be
   // resolved.
   uint32_t GetOID(PostgresTypeId type_id) const {
-    auto result = reverse_mapping_.find(static_cast<int32_t>(type_id));
+    auto result = reverse_mapping_.find(type_id);
     if (result == reverse_mapping_.end()) {
       return 0;
     } else {
@@ -524,7 +524,7 @@ class PostgresTypeResolver {
         PostgresType child;
         NANOARROW_RETURN_NOT_OK(Find(item.child_oid, &child, error));
         mapping_.insert({item.oid, child.Array(item.oid, item.typname)});
-        reverse_mapping_.insert({static_cast<int32_t>(base.type_id()), 
item.oid});
+        reverse_mapping_.insert({base.type_id(), item.oid});
         array_mapping_.insert({child.oid(), item.oid});
         break;
       }
@@ -541,7 +541,7 @@ class PostgresTypeResolver {
         }
 
         mapping_.insert({item.oid, out.WithPgTypeInfo(item.oid, 
item.typname)});
-        reverse_mapping_.insert({static_cast<int32_t>(base.type_id()), 
item.oid});
+        reverse_mapping_.insert({base.type_id(), item.oid});
         break;
       }
 
@@ -549,7 +549,7 @@ class PostgresTypeResolver {
         PostgresType base_type;
         NANOARROW_RETURN_NOT_OK(Find(item.base_oid, &base_type, error));
         mapping_.insert({item.oid, base_type.Domain(item.oid, item.typname)});
-        reverse_mapping_.insert({static_cast<int32_t>(base.type_id()), 
item.oid});
+        reverse_mapping_.insert({base.type_id(), item.oid});
         break;
       }
 
@@ -557,13 +557,13 @@ class PostgresTypeResolver {
         PostgresType base_type;
         NANOARROW_RETURN_NOT_OK(Find(item.base_oid, &base_type, error));
         mapping_.insert({item.oid, base_type.Range(item.oid, item.typname)});
-        reverse_mapping_.insert({static_cast<int32_t>(base.type_id()), 
item.oid});
+        reverse_mapping_.insert({base.type_id(), item.oid});
         break;
       }
 
       default:
         mapping_.insert({item.oid, type});
-        reverse_mapping_.insert({static_cast<int32_t>(base.type_id()), 
item.oid});
+        reverse_mapping_.insert({base.type_id(), item.oid});
         break;
     }
 
@@ -586,9 +586,7 @@ class PostgresTypeResolver {
 
  private:
   std::unordered_map<uint32_t, PostgresType> mapping_;
-  // We can't use PostgresTypeId as an unordered map key because there is no
-  // built-in hasher for an enum on gcc 4.8 (i.e., R 3.6 on Windows).
-  std::unordered_map<int32_t, uint32_t> reverse_mapping_;
+  std::unordered_map<PostgresTypeId, uint32_t> reverse_mapping_;
   std::unordered_map<uint32_t, uint32_t> array_mapping_;
   std::unordered_map<uint32_t, std::vector<std::pair<std::string, uint32_t>>> 
classes_;
   std::unordered_map<std::string, PostgresType> base_;

Reply via email to