override fun createStatement()

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)
    }