in exposed-core/src/main/kotlin/org/jetbrains/exposed/v1/core/Table.kt [506:530]
fun checkConstraints(): List<CheckConstraint> {
val filteredChecks = checkConstraints.filterNot { (name, _) ->
when (val dialect = currentDialect) {
is MysqlDialect -> name.startsWith(generatedUnsignedCheckPrefix) || name.startsWith(generatedSignedCheckPrefix)
is SQLServerDialect -> name.startsWith("${generatedUnsignedCheckPrefix}byte") ||
name.startsWith("${generatedSignedCheckPrefix}short")
is PostgreSQLDialect -> name.startsWith("${generatedSignedCheckPrefix}short")
is H2Dialect -> when (dialect.h2Mode) {
H2Dialect.H2CompatibilityMode.PostgreSQL -> name.startsWith("${generatedSignedCheckPrefix}short")
else -> name.startsWith(generatedSignedCheckPrefix)
}
else -> false
}
}.toMutableList().apply {
val isNotSQLiteOrOracle = currentDialect !is SQLiteDialect && currentDialect !is OracleDialect
val isNotOracle = currentDialect !is OracleDialect
if (isNotSQLiteOrOracle) removeAll { (name, _) -> name.startsWith("${generatedSignedCheckPrefix}integer") }
if (isNotOracle) removeAll { (name, _) -> name.startsWith("${generatedSignedCheckPrefix}long") }
}
return filteredChecks.mapIndexed { index, (name, op) ->
val resolvedName = name.ifBlank { "check_${tableNameWithSchemaSanitized}_$index" }
CheckConstraint.from(this@Table, resolvedName, op)
}
}