override fun columns()

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
    }