in slick/src/main/scala/org/apache/pekko/projection/slick/internal/SlickOffsetStore.scala [88:103]
def readOffset[Offset](projectionId: ProjectionId)(implicit ec: ExecutionContext): Future[Option[Offset]] = {
val action = offsetTable.filter(_.projectionName === projectionId.name).result.map { maybeRow =>
maybeRow.map(row =>
SingleOffset(ProjectionId(projectionId.name, row.projectionKey), row.manifest, row.offsetStr, row.mergeable))
}
val results = databaseConfig.db.run(action)
results.map {
case Nil => None
case reps if reps.forall(_.mergeable) =>
Some(fromStorageRepresentation[MergeableOffset[_], Offset](MultipleOffsets(reps.toList)).asInstanceOf[Offset])
case reps =>
reps.find(_.id == projectionId).map(fromStorageRepresentation[Offset, Offset])
}
}