in jdbc/src/main/scala/org/apache/pekko/projection/jdbc/internal/Dialect.scala [304:369]
def this(tableName: String, managementTableName: String) = this(None, tableName, managementTableName)
private val table = schema.map(s => s"$s.$tableName").getOrElse(tableName)
private val managementTable = schema.map(s => s"$s.$managementTableName").getOrElse(managementTableName)
override val createTableStatements =
immutable.Seq(
s"""CREATE TABLE IF NOT EXISTS $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 BOOLEAN NOT NULL,
| last_updated BIGINT NOT NULL,
| PRIMARY KEY(projection_name, projection_key)
|);""".stripMargin,
// create index
s"""CREATE INDEX projection_name_index ON $table (projection_name);""")
override val dropTableStatement: String =
Dialect.removeQuotes(DialectDefaults.dropTableStatement(table))
override val readOffsetQuery: String =
Dialect.removeQuotes(DialectDefaults.readOffsetQuery(table))
override val clearOffsetStatement: String =
Dialect.removeQuotes(DialectDefaults.clearOffsetStatement(table))
override def insertStatement(): String =
Dialect.removeQuotes(DialectDefaults.insertStatement(table))
override def updateStatement(): String =
Dialect.removeQuotes(DialectDefaults.updateStatement(table))
override val createManagementTableStatements =
immutable.Seq(s"""CREATE TABLE IF NOT EXISTS $managementTable (
| projection_name VARCHAR(255) NOT NULL,
| projection_key VARCHAR(255) NOT NULL,
| paused BOOLEAN NOT NULL,
| last_updated BIGINT NOT NULL,
| PRIMARY KEY(projection_name, projection_key)
|);""".stripMargin)
override val dropManagementTableStatement: String =
Dialect.removeQuotes(DialectDefaults.dropManagementTableStatement(managementTable))
override val readManagementStateQuery: String =
Dialect.removeQuotes(DialectDefaults.readManagementStateQuery(managementTable))
override def insertManagementStatement(): String =
Dialect.removeQuotes(DialectDefaults.insertManagementStatement(managementTable))
override def updateManagementStatement(): String =
Dialect.removeQuotes(DialectDefaults.updateManagementStatement(managementTable))
}
/**
* INTERNAL API
*/
@InternalApi
private[projection] case class MSSQLServerDialect(
schema: Option[String],
tableName: String,
managementTableName: String)
extends Dialect {