in exposed-jdbc/src/main/kotlin/org/jetbrains/exposed/v1/jdbc/statements/jdbc/JdbcDatabaseMetadataImpl.kt [295:323]
override fun existingCheckConstraints(vararg tables: Table): Map<Table, List<CheckConstraint>> {
val result = mutableMapOf<Table, List<CheckConstraint>>()
tables.forEach { table ->
val transaction = TransactionManager.current()
val checkConstraints = mutableListOf<CheckConstraint>()
metadata.connection.executeSQL(
"""
SELECT tc.CONSTRAINT_NAME, cc.CHECK_CLAUSE
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
JOIN INFORMATION_SCHEMA.CHECK_CONSTRAINTS cc
ON tc.CONSTRAINT_NAME = cc.CONSTRAINT_NAME
WHERE tc.CONSTRAINT_TYPE = 'CHECK'
AND tc.TABLE_NAME = '${table.nameInDatabaseCaseUnquoted()}';
""".trimIndent()
) { rs ->
while (rs.next()) {
checkConstraints.add(
CheckConstraint(
tableName = transaction.identity(table),
checkName = rs.getString(1),
checkOp = rs.getString(2)
)
)
}
}
result[table] = checkConstraints
}
return result
}