apache / apache/arrow-adbc

format: expose functions/procedures in catalog metadata

Open
#3,983 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?

Add a `GetObjectsFunctions` and related functions to show user-defined and system functions, aggregate functions, table-valued functions, and stored procedures.

## Prior Art

- [JDBC: getSystemFunctions](https://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#getSystemFunctions--)
- [JDBC: getFunctions](https://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#getFunctions-java.lang.String-java.lang.String-java.lang.String-)
- [JDBC: getFunctionColumns](https://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#getFunctionColumns-java.lang.String-java.lang.String-java.lang.String-java.lang.String-)
- [JDBC: getProcedures](https://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#getProcedures-java.lang.String-java.lang.String-java.lang.String-)
- [JDBC: getProcedureColumns](https://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#getProcedureColumns-java.lang.String-java.lang.String-java.lang.String-java.lang.String-)
- [ODBC: SQLProcedures](https://learn.microsoft.com/en-us/sql/odbc/reference/syntax/sqlprocedures-function)
- [ODBC: SQLProcedureColumns()](https://learn.microsoft.com/en-us/sql/odbc/reference/syntax/sqlprocedurecolumns-function)
- BigQuery: https://github.com/adbc-drivers/bigquery/issues/118
- Databricks: https://github.com/adbc-drivers/databricks/issues/236
- PostgreSQL: https://github.com/apache/arrow-adbc/issues/3971
- Snowflake: https://github.com/adbc-drivers/snowflake/issues/77
- Trino: https://github.com/adbc-drivers/trino/issues/60

## Design Issues
- Do we expose system functions, etc. in the same function?
- Do we expose procedures in the same function?
- How do we expose signatures?
- How do we expose overloads?
- How do we provide Arrow-equivalent signatures?
- How do we handle database-specific properties?

## Proposal

TBD

Contributor guide

Open the contributing guide

Research direction

Start by comparing the JDBC and ODBC metadata APIs listed in Prior Art, then review the design questions about system functions, procedures, signatures, overloads, and database-specific properties. There are no implementation files or tests named, and the proposal is TBD; done requires an agreed catalog-metadata API and its scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, sql
Domain
api, backend-api-design, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.