private def extractTags()

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)
  }