Skip to content

fix(go): UUID data type not handled in metadata paths (GetTableSchema / GetObjects) #164

Description

@prmoore77

What happened

Columns of Snowflake's UUID data type cannot be discovered through the driver's metadata paths, even though they query fine.

  • GetTableSchema (which runs DESC TABLEdescToField) returns a hard error:
    Not Implemented: Snowflake Data Type UUID not implemented
    
  • GetObjectstoArrowField matches no case for UUID, so the column's arrow.Field.Type is left nil and no XdbcDataType/XdbcSqlDataType is populated.

The data path itself is fine: SELECT * FROM <table> returns the UUID column as Arrow utf8 (Snowflake delivers UUID values as text over the wire).

This surfaces in the Power BI Snowflake connector (built on this ADBC driver) as a Navigator error when previewing/loading a table that has a UUID column:

Expression.Error: Unable to understand the type for column
Details:
    <UUID column name>

Reproduction

create table tester (uuid_id UUID, varchar_id VARCHAR);
insert into tester (uuid_id, varchar_id) select uuid_string(), uuid_string();

Then, against TESTER:

Path Result
GetTableSchema Not Implemented: Snowflake Data Type UUID not implemented
GetObjects (column depth) ⚠️ field type left nil
SELECT * result schema utf8

SHOW COLUMNS reports the type as {"type":"UUID","nullable":true}; DESC TABLE reports it as UUID.

Expected

The metadata paths should agree with the data path and report a UUID column as Arrow utf8, consistent with how VARIANT/OBJECT/ARRAY are surfaced.

Environment

  • go/ driver, github.com/snowflakedb/gosnowflake/v2 v2.1.0

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions