apache / apache/arrow-adbc

c/driver/postgresql: implement hybrid/auto type resolution

Open
#4,782 0 comments 0 reactions 0 assignees View on GitHub
Type: enhancement
Dominant language
C#
Stars
627
Forks
217
Avg merge
17h
Merged PRs (30d)
57

Description

### What feature or improvement would you like to see?

Follow-on to https://github.com/apache/arrow-adbc/issues/1755.

PostgreSQL tells us type OIDs when what we need is typrecv/typsend. We have to resolve OIDs to their "type shape"; currently we do this by querying system tables on first connection to build a cache, but this is expensive for various reasons. After #1755 we have the option of using a hardcoded list, but this does not handle composite types and user-defined types. We should implement a third option which starts with the hardcoded list, but queries system tables on-demand to resolve and cache type information for unknown types.

Contributor guide

Open the contributing guide

Research direction

Start in c/driver/postgresql and read the linked #1755 for the hardcoded type-list behavior. Trace the existing first-connection system-table lookup and cache, then identify the entry point for resolving unknown OIDs. Done means known types use the hardcoded list while unknown, composite, and user-defined types are queried on demand and cached.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, postgresql
Domain
databases
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.