Skip to content

SNOW-3323032: SNOW-3289666: Support for the UUID type in the jdbc driver #2567

Description

@Syed-SnapLogic

My customers want to read/write data from/into the snowflake tables having certain columns of the type UUID.

But our applications (that are jdbc based leveraging the 3.24.2 version of the snowflake's jdbc driver) are failing.

What is the current behavior?

Failing with below error:
com.snaplogic.snap.api.SnapDataException: No enum constant net.snowflake.client.jdbc.SnowflakeType.UUID at com.snaplogic.snaps.sql.SimpleSqlSnap.process(SimpleSqlSnap.java:515) at com.snaplogic.snaps.snowflake.BulkLoad.execute(BulkLoad.java:630) at com.snaplogic.cc.snap.common.SnapRunnableImpl.executeSnap(SnapRunnableImpl.java:821) at com.snaplogic.cc.snap.common.SnapRunnableImpl.execute(SnapRunnableImpl.java:594) at com.snaplogic.cc.snap.common.SnapRunnableImpl.doRun(SnapRunnableImpl.java:886) at com.snaplogic.cc.snap.common.SnapRunnableImpl.call(SnapRunnableImpl.java:444) at com.snaplogic.cc.snap.common.SnapRunnableImpl.call(SnapRunnableImpl.java:118) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException: No enum constant net.snowflake.client.jdbc.SnowflakeType.UUID at java.base/java.lang.Enum.valueOf(Unknown Source) at net.snowflake.client.jdbc.SnowflakeType.valueOf(SnowflakeType.java:19) at net.snowflake.client.jdbc.SnowflakeType.fromString(SnowflakeType.java:50) at net.snowflake.client.jdbc.SnowflakeUtil.getSnowflakeType(SnowflakeUtil.java:198) at net.snowflake.client.jdbc.SnowflakeColumnMetadata.<init>(SnowflakeColumnMetadata.java:147) at net.snowflake.client.jdbc.SnowflakeDatabaseMetaData$4.next(SnowflakeDatabaseMetaData.java:1838) at com.zaxxer.hikari.pool.HikariProxyResultSet.next(HikariProxyResultSet.java) at com.snaplogic.snap.api.sql.metadata.SnowflakeMetadataProvider.createTableMetadataFor(SnowflakeMetadataProvider.java:148) at com.snaplogic.snap.api.sql.metadata.SnowflakeMetadataProvider.provideTableMetadataFor(SnowflakeMetadataProvider.java:110) at com.snaplogic.snap.api.sql.operations.JdbcOperationsImpl.getTableMetaData(JdbcOperationsImpl.java:2627) at com.snaplogic.snaps.snowflake.BulkLoad.storeInputDocument(BulkLoad.java:771) at com.snaplogic.snaps.snowflake.BulkLoad.processDocument(BulkLoad.java:709) at com.snaplogic.snaps.sql.SimpleSqlSnap.process(SimpleSqlSnap.java:494) ... 12 more

What is the desired behavior?

Applications should be able to work with the UUID type columns too.

How would this improve snowflake-jdbc?

Easy adoption for the users of snowflake to use our applications to be be able to work with the tables having the UUID type.

References, Other Background

I even saw the latest source code for the supported types. https://github.com/snowflakedb/snowflake-jdbc/blob/v4.0.2/src/main/java/net/snowflake/client/api/resultset/SnowflakeType.java

I don't see any reference for the UUID type.

So, I am asking if there is an upcoming future plan to support this type or not. And, is there is any official documentation from the snowflake side about their jdbc driver not supporting the UUID type directly.

Note: Customers are able to work with tables when the columns are of type VARCHAR but they want support directly for UUID type thru the JDBC driver I believe.

Metadata

Metadata

Labels

featurestatus-triage_doneInitial triage done, will be further handled by the driver team

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