public SqliteSnapshotQueryExecutor(QueryConfiguration configuration, Akka.Serialization.Serialization serialization) : base(configuration, serialization) { CreateSnapshotTableSql = $@" CREATE TABLE IF NOT EXISTS {configuration.FullSnapshotTableName} ( {configuration.PersistenceIdColumnName} VARCHAR(255) NOT NULL, {configuration.SequenceNrColumnName} INTEGER(8) NOT NULL, {configuration.TimestampColumnName} INTEGER(8) NOT NULL, {configuration.ManifestColumnName} VARCHAR(255) NOT NULL, {configuration.PayloadColumnName} BLOB NOT NULL, PRIMARY KEY ({configuration.PersistenceIdColumnName}, {configuration.SequenceNrColumnName}) );"; InsertSnapshotSql = $@" UPDATE {configuration.FullSnapshotTableName} SET {configuration.TimestampColumnName} = @Timestamp, {configuration.ManifestColumnName} = @Manifest, {configuration.PayloadColumnName} = @Payload WHERE {configuration.PersistenceIdColumnName} = @PersistenceId AND {configuration.SequenceNrColumnName} = @SequenceNr; INSERT OR IGNORE INTO {configuration.FullSnapshotTableName} ({configuration.PersistenceIdColumnName}, {configuration.SequenceNrColumnName}, {configuration.TimestampColumnName}, {configuration.ManifestColumnName}, {configuration.PayloadColumnName}) VALUES (@PersistenceId, @SequenceNr, @Timestamp, @Manifest, @Payload)"; }
protected AbstractQueryExecutor(QueryConfiguration configuration, Akka.Serialization.Serialization serialization) { Configuration = configuration; Serialization = serialization; SelectSnapshotSql = $@" SELECT {Configuration.PersistenceIdColumnName}, {Configuration.SequenceNrColumnName}, {Configuration.TimestampColumnName}, {Configuration.ManifestColumnName}, {Configuration.PayloadColumnName} FROM {Configuration.FullSnapshotTableName} WHERE {Configuration.PersistenceIdColumnName} = @PersistenceId AND {Configuration.SequenceNrColumnName} <= @SequenceNr AND {Configuration.TimestampColumnName} <= @Timestamp ORDER BY {Configuration.SequenceNrColumnName} DESC"; DeleteSnapshotSql = $@" DELETE FROM {Configuration.FullSnapshotTableName} WHERE {Configuration.PersistenceIdColumnName} = @PersistenceId AND {Configuration.SequenceNrColumnName} = @SequenceNr"; DeleteSnapshotRangeSql = $@" DELETE FROM {Configuration.FullSnapshotTableName} WHERE {Configuration.PersistenceIdColumnName} = @PersistenceId AND {Configuration.SequenceNrColumnName} <= @SequenceNr AND {Configuration.TimestampColumnName} <= @Timestamp"; InsertSnapshotSql = $@" INSERT INTO {Configuration.FullSnapshotTableName} ( {Configuration.PersistenceIdColumnName}, {Configuration.SequenceNrColumnName}, {Configuration.TimestampColumnName}, {Configuration.ManifestColumnName}, {Configuration.PayloadColumnName}) VALUES (@PersistenceId, @SequenceNr, @Timestamp, @Manifest, @Payload)"; }