format: expose functions/procedures in catalog metadata
- 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
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