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.
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 moreWhat 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.