in exposed-core/src/main/kotlin/org/jetbrains/exposed/v1/core/statements/api/IdentifierManagerApi.kt [125:145]
fun inProperCase(identity: String): String {
// When preserveIdentifierCasing is enabled, bypass cache and preserve original case
if (shouldPreserveIdentifierCasing) {
return identity
}
return identifiersInProperCaseCache.getOrPut(identity) {
val alreadyQuoted = identity.isAlreadyQuoted()
when {
alreadyQuoted && supportsMixedQuotedIdentifiers -> identity
alreadyQuoted && isUpperCaseQuotedIdentifiers -> identity.uppercase()
alreadyQuoted && isLowerCaseQuotedIdentifiers -> identity.lowercase()
supportsMixedIdentifiers -> identity
identity.isAKeyword() && shouldPreserveKeywordCasing -> identity
oracleVersion != OracleVersion.NonOracle -> identity.uppercase()
isUpperCaseIdentifiers -> identity.uppercase()
isLowerCaseIdentifiers -> identity.lowercase()
else -> identity
}
}
}