diff --git a/rabbit-core/src/main/java/org/ohdsi/databases/SnowflakeHandler.java b/rabbit-core/src/main/java/org/ohdsi/databases/SnowflakeHandler.java index e226940a..99b5bc05 100644 --- a/rabbit-core/src/main/java/org/ohdsi/databases/SnowflakeHandler.java +++ b/rabbit-core/src/main/java/org/ohdsi/databases/SnowflakeHandler.java @@ -118,7 +118,7 @@ private String resolveTableName(String tableName) { } @Override - public ResultSet getFieldNamesInfo(String tableName) { + public ResultSet getFieldsInformation(String tableName) { try { String database = this.getDatabase(); String schema = this.getSchema(); @@ -127,8 +127,14 @@ public ResultSet getFieldNamesInfo(String tableName) { database = database.toUpperCase(); schema = schema.toUpperCase(); tableName = tableName.toUpperCase(); + } else if (metadata.storesLowerCaseIdentifiers()) { + database = database.toLowerCase(); + schema = schema.toLowerCase(); + tableName = tableName.toLowerCase(); } + logger.warn("Obtaining columnn information from JDBC metadata: metadata.getColumns({}, {}, {}, null)", + database, schema, tableName); return metadata.getColumns(database, schema, tableName, null); } catch (SQLException e) { throw new RuntimeException(e.getMessage()); diff --git a/rabbit-core/src/main/java/org/ohdsi/databases/StorageHandler.java b/rabbit-core/src/main/java/org/ohdsi/databases/StorageHandler.java index ab85d5d1..86860d8d 100644 --- a/rabbit-core/src/main/java/org/ohdsi/databases/StorageHandler.java +++ b/rabbit-core/src/main/java/org/ohdsi/databases/StorageHandler.java @@ -157,7 +157,7 @@ default List fetchTableStructure(String table, ScanParameters scanPar List fieldInfos = new ArrayList<>(); String fieldInfoQuery = getFieldsInformationQuery(table); if (fieldInfoQuery != null) { - logger.warn("Obtaining field metadata through SQL"); + logger.warn("Obtaining field metadata through SQL query: {}", fieldInfoQuery); QueryResult queryResult = getDBConnection().query(fieldInfoQuery); for (Row row : queryResult) { FieldInfo fieldInfo = new FieldInfo(scanParameters, row.getCells().get(0)); @@ -167,7 +167,7 @@ default List fetchTableStructure(String table, ScanParameters scanPar } } else { logger.warn("Obtaining field metadata through JDBC"); - ResultSet rs = getFieldNamesInfo(table); + ResultSet rs = getFieldsInformation(table); try { while (rs.next()) { FieldInfo fieldInfo = new FieldInfo(scanParameters, rs.getString("COLUMN_NAME")); @@ -196,7 +196,7 @@ default String getFieldsInformationQuery(String table) { * @param table name of the table to get the column names for * @return java.sql.ResultSet */ - default ResultSet getFieldNamesInfo(String table) { + default ResultSet getFieldsInformation(String table) { try { DatabaseMetaData metadata = getDBConnection().getMetaData(); return metadata.getColumns(null, null, table, null);