akka / akka-persistence-jdbc

Asynchronously writes journal and snapshot entries to configured JDBC databases so that Akka Actors can recover state

Home Page:https://doc.akka.io/docs/akka-persistence-jdbc/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Delete does not adhere to Eventsourced API

nvollmar opened this issue · comments

Versions used

akka-persistence-jdbc version: 5.0.1

Expected Behavior

Scala doc of deleteMessages specifies

Permanently deletes all persistent messages with sequence numbers less than or equal toSequenceNr.

Actual Behavior

Events less than the specified toSequenceNr are deleted only - query still returns last event that should also have been deleted.

Reproducible Test Case

See DeleteTest in #550

I did some investigation, and adding

.filter(!_.deleted)

to

private def _messagesQuery(
persistenceId: Rep[String],
fromSequenceNr: Rep[Long],
toSequenceNr: Rep[Long],
max: ConstColumn[Long]) =
baseTableQuery()
.filter(_.persistenceId === persistenceId)
.filter(_.sequenceNumber >= fromSequenceNr)
.filter(_.sequenceNumber <= toSequenceNr)
.sortBy(_.sequenceNumber.asc)
.take(max)

would fix the test