in slick/src/main/scala/org/apache/pekko/projection/slick/internal/SlickOffsetStore.scala [50:82]
def this(system: ActorSystem[_], databaseConfig: DatabaseConfig[P], slickSettings: SlickSettings) =
this(system, databaseConfig, slickSettings, Clock.systemUTC())
private[projection] val profile: P = databaseConfig.profile
import profile.api._
import OffsetSerialization.MultipleOffsets
import OffsetSerialization.SingleOffset
val (dialect, useLowerCase): (Dialect, Boolean) = {
val useLowerCase = slickSettings.useLowerCase
profile match {
case _: slick.jdbc.H2Profile =>
(
H2Dialect(slickSettings.schema, slickSettings.table, slickSettings.managementTable, useLowerCase),
useLowerCase)
case _: slick.jdbc.PostgresProfile =>
(
PostgresDialect(slickSettings.schema, slickSettings.table, slickSettings.managementTable, useLowerCase),
useLowerCase)
// mysql and Sql server are case insensitive, we favor lower case
case _: slick.jdbc.SQLServerProfile =>
(MSSQLServerDialect(slickSettings.schema, slickSettings.table, slickSettings.managementTable), true)
case _: slick.jdbc.MySQLProfile =>
(MySQLDialect(slickSettings.schema, slickSettings.table, slickSettings.managementTable), true)
// oracle must always use quoted + uppercase
case _: slick.jdbc.OracleProfile =>
(OracleDialect(slickSettings.schema, slickSettings.table, slickSettings.managementTable), false)
}
}