paleolimbot commented on code in PR #4031:
URL: https://github.com/apache/arrow-adbc/pull/4031#discussion_r2891131265


##########
c/include/arrow-adbc/adbc.h:
##########
@@ -1858,6 +1858,96 @@ AdbcStatusCode AdbcConnectionGetObjects(struct 
AdbcConnection* connection, int d
                                         struct ArrowArrayStream* out,
                                         struct AdbcError* error);
 
+/// \brief Get a hierarchical view of all functions and procedures.
+///
+/// The result is an Arrow dataset with the following schema:
+///
+/// | Field Name               | Field Type              |
+/// |--------------------------|-------------------------|
+/// | catalog_name             | utf8                    |
+/// | catalog_db_schemas       | list<DB_SCHEMA_SCHEMA>  |
+///
+/// DB_SCHEMA_SCHEMA is a Struct with fields:
+///
+/// | Field Name               | Field Type              |
+/// |--------------------------|-------------------------|
+/// | db_schema_name           | utf8                    |
+/// | db_schema_routines       | list<ROUTINE_SCHEMA>    |
+///
+/// ROUTINE_SCHEMA is a Struct with fields:
+///
+/// | Field Name               | Field Type              | Comments |
+/// |--------------------------|-------------------------|----------|
+/// | routine_name             | utf8 not null           |          |
+/// | routine_specific_name    | utf8 not null           | (1)      |
+/// | routine_type             | utf8 not null           | (2)      |
+/// | routine_remarks          | utf8                    | (3)      |
+/// | routine_parameters       | list<PARAMETER_SCHEMA>  | (4)      |
+/// | routine_result           | list<PARAMETER_SCHEMA>  | (4)      |
+/// | routine_parameter_schema | binary                  | (5)      |
+/// | routine_result_schema    | binary                  | (5)      |
+///
+/// 1. A name that uniquely identifies the routine, to disambiguate
+///    overloads.
+/// 2. 'FUNCTION', 'PROCEDURE', or a vendor-specific name (e.g. 'TABLE
+///    FUNCTION').
+/// 3. Vendor-specific description of the routine.
+/// 4. Metadata about the accepted parameters and return values as structured
+///    Arrow data.  Only populated if include_columns is set, otherwise null.
+/// 5. Metadata about the accepted parameters and return values as an Arrow
+///    schema, serialized as an IPC message containing a schema Flatbuffers
+///    structure.  Only populated if include_arrow_schema is set, otherwise
+///    null.

Review Comment:
   Yes, but it's not in the spec yet 🙂 
   
   I still think serializing function arguments and results as flatbuffers is 
pretty gross and potentially not even that useful (the actual output type 
sometimes depends on actual literal arguments). A driver-specific string or 
binary representation of a parameter data type and a function that converts 
that driver-specific string representation (no roundtrip needed) would solve 
both of those issues without flatbuffers.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to