xborder opened a new issue, #2434: URL: https://github.com/apache/arrow-adbc/issues/2434
### What would you like help with? Hi, I'm testing a connector that uses ADBC Go driver against a flight server. While I can obtain information about catalogs, schemas and tables, when it comes to the columns everything is empty. I believe the issue is with the GO driver and compliance with FlightSQL but I'd like to get some validation on my interpretation. FlightSQL specification states the following for `CommandGetTables` response: ``` .... The returned Arrow schema will be: < catalog_name: utf8, db_schema_name: utf8, table_name: utf8 not null, table_type: utf8 not null, [optional] table_schema: bytes not null (schema of the table as described in Schema.fbs::Schema, it is serialized as an IPC message.) > Fields on table_schema may contain the following metadata: - ARROW:FLIGHT:SQL:CATALOG_NAME - Table's catalog name - ARROW:FLIGHT:SQL:DB_SCHEMA_NAME - Database schema name - ARROW:FLIGHT:SQL:TABLE_NAME - Table name - ARROW:FLIGHT:SQL:TYPE_NAME - The data source-specific name for the data type of the column. - ARROW:FLIGHT:SQL:PRECISION - Column precision/size - ARROW:FLIGHT:SQL:SCALE - Column scale/decimal digits if applicable - ARROW:FLIGHT:SQL:IS_AUTO_INCREMENT - "1" indicates if the column is auto incremented, "0" otherwise. - ARROW:FLIGHT:SQL:IS_CASE_SENSITIVE - "1" indicates if the column is case-sensitive, "0" otherwise. - ARROW:FLIGHT:SQL:IS_READ_ONLY - "1" indicates if the column is read only, "0" otherwise. - ARROW:FLIGHT:SQL:IS_SEARCHABLE - "1" indicates if the column is searchable via WHERE clause, "0" otherwise. .... ``` - I can see this information being returned to the driver so the server I'm testing against is respecting the specification. - Regardless of the server returns, the result of GetObjects doesn't have type information about the existing columns - While debugging the driver I think the issue is in how the column information is being processed (in `[shared_utils.go](https://github.com/apache/arrow-adbc/blob/c3149c0746d09877709e7625b7199e102d6d9c94/go/adbc/driver/internal/shared_utils.go#L378)`) - If there's the columns contain metadata, there is no code looking for the metadata keys described in the specification - JAVA ADBC seems to have a different [implementation](https://github.com/apache/arrow-adbc/blob/c3149c0746d09877709e7625b7199e102d6d9c94/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql/GetObjectsMetadataReaders.java#L589C21-L589C22) where these metadata keys are used Questions: 1. Does this mean that GO driver currently is not respecting the FlightSQL spec? 2. If this is the case what should it look for in the metadata? The `ARROW:FLIGHT:SQL:` keys described in the spec or the `xdbc_` keys? Should it look for `ARROW:FLIGHT:SQL:` and fallback to `xdbc_`? 3. Where can I get more information about these `xdbc_` metadata fields? Thank you -- 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: issues-unsubscr...@arrow.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org