in exposed-core/src/main/kotlin/org/jetbrains/exposed/v1/core/Column.kt [76:95]
override fun createStatement(): List<String> {
@OptIn(InternalApi::class)
val alterTablePrefix = "ALTER TABLE ${currentTransaction().identity(table)} ADD"
val isH2withCustomPKConstraint = currentDialect is H2Dialect && isLastColumnInPK
val isOracle = currentDialect is OracleDialect
val columnDefinition = when {
isPrimaryConstraintWillBeDefined && isLastColumnInPK && !isH2withCustomPKConstraint && !isOracle ->
descriptionDdl(false) + ", ADD ${table.primaryKeyConstraint()}"
isH2withCustomPKConstraint -> descriptionDdl(true)
else -> descriptionDdl(false)
}
val addConstr = if (isH2withCustomPKConstraint || (isOracle && isPrimaryConstraintWillBeDefined)) {
"$alterTablePrefix ${table.primaryKeyConstraint()}"
} else {
null
}
return listOfNotNull("$alterTablePrefix $columnDefinition", addConstr)
}