Skip to content

Commit 475c710

Browse files
committed
Never execute SQL if message is empty
#10
1 parent fda57d6 commit 475c710

1 file changed

Lines changed: 20 additions & 15 deletions

File tree

core/src/main/scala/akka/persistence/journal/sqlasync/ScalikeJDBCWriteJournal.scala

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ package akka.persistence.journal.sqlasync
33
import akka.persistence.common.StoragePlugin
44
import akka.persistence.journal.AsyncWriteJournal
55
import akka.persistence.{AtomicWrite, PersistentRepr}
6+
import scalikejdbc._
7+
import scalikejdbc.async._
8+
69
import scala.collection.immutable
710
import scala.concurrent.Future
811
import scala.util.{Success, Try}
9-
import scalikejdbc._
10-
import scalikejdbc.async._
1112

1213
private[sqlasync] trait ScalikeJDBCWriteJournal extends AsyncWriteJournal with StoragePlugin {
1314
private[this] lazy val journalTable = {
@@ -35,20 +36,24 @@ private[sqlasync] trait ScalikeJDBCWriteJournal extends AsyncWriteJournal with S
3536
}
3637

3738
log.debug("Write messages, {}", messages)
38-
sessionProvider.localTx { implicit session =>
39-
val persistenceIds = messages.map(_.persistenceId).toSet
39+
if (messages.isEmpty) {
40+
Future.successful(Nil)
41+
} else {
42+
sessionProvider.localTx { implicit session =>
43+
val persistenceIds = messages.map(_.persistenceId).toSet
4044

41-
for {
42-
keys <- persistenceIds.foldLeft(Future.successful(Map.empty[String, Long])) { (acc, id) =>
43-
for {
44-
map <- acc
45-
persistenceKey <- surrogateKeyOf(id)
46-
} yield map.updated(id, persistenceKey)
47-
}
48-
(batch, result) = serialize(keys)
49-
sql = sql"INSERT INTO $journalTable (persistence_key, sequence_nr, message) VALUES $batch"
50-
_ <- logging(sql).update().future()
51-
} yield result
45+
for {
46+
keys <- persistenceIds.foldLeft(Future.successful(Map.empty[String, Long])) { (acc, id) =>
47+
for {
48+
map <- acc
49+
persistenceKey <- surrogateKeyOf(id)
50+
} yield map.updated(id, persistenceKey)
51+
}
52+
(batch, result) = serialize(keys)
53+
sql = sql"INSERT INTO $journalTable (persistence_key, sequence_nr, message) VALUES $batch"
54+
_ <- logging(sql).update().future()
55+
} yield result
56+
}
5257
}
5358
}
5459

0 commit comments

Comments
 (0)