def this()

in jdbc/src/main/scala/org/apache/pekko/projection/jdbc/internal/Dialect.scala [371:433]


  def this(tableName: String, managementTableName: String) = this(None, tableName, managementTableName)

  private val table = schema.map(s => s"""$s.$tableName""").getOrElse(s"""$tableName""")

  private val managementTable = schema.map(s => s"""$s.$managementTableName""").getOrElse(s"""$managementTableName""")

  override val createTableStatements =
    immutable.Seq(
      s"""IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'$table') AND type in (N'U'))
         |begin
         |  create table $table (
         |    projection_name VARCHAR(255) NOT NULL,
         |    projection_key VARCHAR(255) NOT NULL,
         |    current_offset VARCHAR(255) NOT NULL,
         |    manifest VARCHAR(4) NOT NULL,
         |    mergeable BIT NOT NULL,
         |    last_updated BIGINT NOT NULL
         |  )
         |
         |  alter table $table add constraint pk_projection_id primary key(projection_name, projection_key)
         |
         |  create index projection_name_index on $table (projection_name)
         |end""".stripMargin)

  override val dropTableStatement: String = DialectDefaults.dropTableStatement(table)

  override val readOffsetQuery: String = DialectDefaults.readOffsetQuery(table)

  override val clearOffsetStatement: String = DialectDefaults.clearOffsetStatement(table)

  override def insertStatement(): String = DialectDefaults.insertStatement(table)

  override def updateStatement(): String = DialectDefaults.updateStatement(table)

  override val createManagementTableStatements =
    immutable.Seq(
      s"""IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'$managementTable') AND type in (N'U'))
         |begin
         |  create table $managementTable (
         |    projection_name VARCHAR(255) NOT NULL,
         |    projection_key VARCHAR(255) NOT NULL,
         |    paused BIT NOT NULL,
         |    last_updated BIGINT NOT NULL
         |  )
         |
         |  alter table $managementTable add constraint pk_projection_management_id primary key(projection_name, projection_key)
         |end""".stripMargin)

  override val dropManagementTableStatement: String = DialectDefaults.dropManagementTableStatement(managementTable)

  override val readManagementStateQuery: String = DialectDefaults.readManagementStateQuery(managementTable)

  override def insertManagementStatement(): String = DialectDefaults.insertManagementStatement(managementTable)

  override def updateManagementStatement(): String = DialectDefaults.updateManagementStatement(managementTable)
}

/**
 * INTERNAL API
 */
@InternalApi
private[projection] case class OracleDialect(_schema: Option[String], _tableName: String, _managementTableName: String)
    extends Dialect {