def this()

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)

    }
  }