in exposed-jdbc/src/main/kotlin/org/jetbrains/exposed/v1/jdbc/statements/jdbc/JdbcDatabaseMetadataImpl.kt [205:224]
override fun columns(vararg tables: Table): Map<Table, List<ColumnMetadata>> {
val result = mutableMapOf<Table, List<ColumnMetadata>>()
val useSchemaInsteadOfDatabase = currentDialect is MysqlDialect
val tablesBySchema = tables.groupBy { identifierManager.inProperCase(it.schemaName ?: currentSchema!!) }
for ((schema, schemaTables) in tablesBySchema.entries) {
for (table in schemaTables) {
val catalog = if (!useSchemaInsteadOfDatabase || schema == currentSchema!!) databaseName else schema
val rs = JdbcResult(
metadata.getColumns(catalog, schema, table.nameInDatabaseCaseUnquoted(), "%")
)
val columns = rs.extractColumns(tableName = table.nameInDatabaseCase())
check(columns.isNotEmpty())
result[table] = columns
rs.result.close()
}
}
return result
}