in core/src/main/scala/org/apache/pekko/persistence/cassandra/Extractors.scala [219:238]
private def extractTags(row: Row, columnDefinitionCache: ColumnDefinitionCache): Set[String] = {
// TODO can be removed in 1.0, this is only used during migration from the old version on initial recovery
// Unless we allow migration from pre 0.80 versions to 1.0?
val oldTags: Set[String] =
if (columnDefinitionCache.hasOldTagsColumns(row)) {
(1 to 3).foldLeft(Set.empty[String]) {
case (acc, i) =>
val tag = row.getString(s"tag$i")
if (tag != null) acc + tag
else acc
}
} else Set.empty
val newTags: Set[String] =
if (columnDefinitionCache.hasTagsColumn(row))
row.getSet("tags", classOf[String]).asScala.toSet
else Set.empty
oldTags.union(newTags)
}