Skip to content

Commit 944c2c3

Browse files
committed
Fixed review
1 parent 19b71ff commit 944c2c3

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

dataframe-jdbc/api/dataframe-jdbc.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ public abstract class org/jetbrains/kotlinx/dataframe/io/db/DbType {
109109
public fun getDefaultFetchSize ()I
110110
public fun getDefaultQueryTimeout ()Ljava/lang/Integer;
111111
public abstract fun getDriverClassName ()Ljava/lang/String;
112+
public fun getTableColumnsMetadata (Ljava/sql/ResultSet;)Ljava/util/List;
112113
public fun getTableTypes ()Ljava/util/List;
113114
public abstract fun isSystemTable (Lorg/jetbrains/kotlinx/dataframe/io/db/TableMetadata;)Z
114115
public fun makeCommonSqlToKTypeMapping (Lorg/jetbrains/kotlinx/dataframe/io/db/TableColumnMetadata;)Lkotlin/reflect/KType;

dataframe-jdbc/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/db/DbType.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -412,9 +412,9 @@ public abstract class DbType(public val dbTypeInJdbcUrl: String) {
412412
* where `DatabaseMetaData.getColumns` is known to be slow).
413413
*
414414
* @param resultSet The [ResultSet] containing query results.
415-
* @return A mutable list of [TableColumnMetadata] objects.
415+
* @return A list of [TableColumnMetadata] objects.
416416
*/
417-
public open fun getTableColumnsMetadata(resultSet: ResultSet): MutableList<TableColumnMetadata> {
417+
public open fun getTableColumnsMetadata(resultSet: ResultSet): List<TableColumnMetadata> {
418418
val rsMetaData = resultSet.metaData
419419
val connection = resultSet.statement.connection
420420
val dbMetaData = connection.metaData
@@ -446,8 +446,9 @@ public abstract class DbType(public val dbTypeInJdbcUrl: String) {
446446
} catch (_: Exception) {
447447
// Some drivers may throw for unsupported features
448448
// In that case, fallback to DatabaseMetaData
449-
val cols = dbMetaData.getColumns(catalog, schema, tableName, columnName)
450-
if (cols.next()) cols.getString("IS_NULLABLE") == "YES" else true
449+
dbMetaData.getColumns(catalog, schema, tableName, columnName).use { cols ->
450+
if (cols.next()) !cols.getString("IS_NULLABLE").equals("NO", ignoreCase = true) else true
451+
}
451452
}
452453

453454
val columnType = rsMetaData.getColumnTypeName(index)

dataframe-jdbc/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/readJdbc.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -852,7 +852,7 @@ private fun readTableAsDataFrame(
852852
}
853853

854854
internal fun getTableColumnsMetadata(resultSet: ResultSet, dbType: DbType): MutableList<TableColumnMetadata> =
855-
dbType.getTableColumnsMetadata(resultSet)
855+
dbType.getTableColumnsMetadata(resultSet).toMutableList()
856856

857857
/**
858858
* Fetches and converts data from a ResultSet into a mutable map.

0 commit comments

Comments
 (0)