snowflakedb/snowflake-jdbc

SNOW-981505: SNOW-766845 getColumns with table name doesn't return columns for dynamic tables

Closed this issue · 1 comments

Please answer these questions before submitting your issue.
In order to accurately debug the issue this information is required. Thanks!

  1. What version of JDBC driver are you using?
    3.14.3

  2. What operating system and processor architecture are you using?
    Locally? Mac M1 (ARM)

  3. What version of Java are you using?
    11

  4. What did you do?
    I'm using the getColumns method, and when I provide it with catalog, schemaPattern, tablenamePattern and nil for columnNamePattern, where tablenamePattern is the name of a dynamic table.

  5. What did you expect to see?

I expected the method to return me a list of columns for the dynamic table, but instead I got nothing.
Note that I tried calling without the tablenamePattern and the result contains the columns of dynamic table

  1. Can you set logging to DEBUG and collect the logs?

snowlflake.txt

  1. What is your Snowflake account identifier, if any? (Optional)

thanks for raising this issue and apologies for not getting back faster, we're trying to get better going forward.

So the API call to

getColumns(String catalog=<dbname>, String schemaPattern=<schemaname>, String tableNamePattern=<tablename>, String columnNamePattern=null, boolean extendedSet=false

translates to Snowflake SQL query in JDBC driver

2023-11-30 09:32:27.152 n.s.c.core.SFStatement FINE execute:767 - execute: show /* JDBC:DatabaseMetaData.getColumns() */ columns in table "<dbname>"."<schemaname>"."<tablename>"

and it turned out, we had a gap on the backend where the columns for dynamic tables really weren't properly showed when a SHOW COLUMNS was issued on them. This was fixed with Snowflake 8.1 a couple months back.

Marking this one as closed for now, but if it still doesn't work for you, do comment please and I can reopen.