snowflakedb / snowpark-java-scala

Snowflake Snowpark Java & Scala API
Apache License 2.0
18 stars 20 forks source link

SNOW-1467213: Unsupported statement type 'SHOW PARAMETERS' for services in application #110

Closed s1ck closed 3 weeks ago

s1ck commented 2 months ago

Hi, I am using the SDK from within a container service in a native application. After successfully creating a session, I am creating a table object via session.table(tableName);. That call fails with the following stacktrace. This runs fine if the container service is not executed inside an application.

I am using a patched version of the snowpark-java SDK with scala 2.13 supprt based off this PR: https://github.com/snowflakedb/snowpark-java-scala/pull/90

Any suggestions would be highly appreciated.

2024-06-07 13:05:06.596+0000 INFO  [system/00000000] Session created: {
 "snowpark.version" : "1.14.0-SNAPSHOT",
 "client.language": "Java",
 "java.version" : "21.0.3",
 "scala.version" : "2.13.13",
 "jdbc.session.id" : "430879710667274",
 "os.name" : "Linux",
 "jdbc.version" : "3.16.0",
 "snowpark.library" : "/var/lib/neo4j/gds-session.jar",
 "scala.library" : "/var/lib/neo4j/gds-session.jar",
 "jdbc.library" : "/var/lib/neo4j/gds-session.jar"
}
2024-06-07 13:05:06.596+0000 INFO  [system/00000000] Starting node building
2024-06-07 13:05:06.766+0000 ERROR [system/00000000] Exception occurred
com.snowflake.snowpark.SnowparkClientException: Error Code: 0415, Error message: Failed to close this session. The error is: Unsupported statement type 'SHOW PARAMETERS' for services in application.
    at com.snowflake.snowpark.internal.ErrorMessage$.createException(ErrorMessage.scala:424) ~[gds-session.jar:2.7.0-alpha04]
    at com.snowflake.snowpark.internal.ErrorMessage$.MISC_FAILED_CLOSE_SESSION(ErrorMessage.scala:380) ~[gds-session.jar:2.7.0-alpha04]
    at com.snowflake.snowpark.Session.close(Session.scala:1254) ~[gds-session.jar:2.7.0-alpha04]
    at com.snowflake.snowpark_java.Session.close(Session.java:484) ~[gds-session.jar:2.7.0-alpha04]
    at com.neo4j.gds.snowflake.GraphCatalogHandlers.callWithSession(GraphCatalogHandlers.java:233) ~[gds-session.jar:2.7.0-alpha04]
s1ck commented 2 months ago

We figured that one out. The problem was that we did not set an appName when building the Session object. That app name is used as queryTag and if that tag is set, the connection does not lookup parameters via SHOW PARAMETERS. I have not found a hint towards that in the docs, some doc section on creating a session from within a container service in a native application could be helpful.