Skip to content

Commit

Permalink
fix(query) next on empty iterator to check if the iterator has a valu…
Browse files Browse the repository at this point in the history
…e before calling next (#1765)
  • Loading branch information
amolnayak311 committed May 13, 2024
1 parent 629aaf7 commit 64c49a3
Showing 1 changed file with 15 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -130,22 +130,22 @@ class TopBottomKRowAggregator(k: Int, bottomK: Boolean) extends RowAggregator wi
.takeWhile(_ <= (rangeParams.endSecs - rangeParams.startSecs)).map { t =>
val timestamp = t + rangeParams.startSecs
val rvkSeen = new ListBuffer[RangeVectorKey]
val row = rows.next()
var i = 1
while (row.notNull(i)) {
if (row.filoUTF8String(i) != CustomRangeVectorKey.emptyAsZcUtf8) {
val key = row.filoUTF8String(i)
logger.debug(s"TopkPresent before decoding key=$key")
val rvk = CustomRangeVectorKey.fromZcUtf8(key)
logger.debug(s"TopkPresent after decoding key=${rvk.labelValues.mkString(",")}")
rvkSeen += rvk
val builder = resRvs.getOrElseUpdate(rvk, createBuilder(rangeParams, timestamp))
addRecordToBuilder(builder, TimeUnit.SECONDS.toMillis(timestamp), row.getDouble(i + 1))
if (rows.hasNext) {
val row = rows.next()
var i = 1
while (row.notNull(i)) {
if (row.filoUTF8String(i) != CustomRangeVectorKey.emptyAsZcUtf8) {
val key = row.filoUTF8String(i)
val rvk = CustomRangeVectorKey.fromZcUtf8(key)
rvkSeen += rvk
val builder = resRvs.getOrElseUpdate(rvk, createBuilder(rangeParams, timestamp))
addRecordToBuilder(builder, TimeUnit.SECONDS.toMillis(timestamp), row.getDouble(i + 1))
}
i += 2
}
resRvs.keySet.foreach { rvs =>
if (!rvkSeen.contains(rvs)) addRecordToBuilder(resRvs(rvs), timestamp * 1000, Double.NaN)
}
i += 2
}
resRvs.keySet.foreach { rvs =>
if (!rvkSeen.contains(rvs)) addRecordToBuilder(resRvs(rvs), timestamp * 1000, Double.NaN)
}
}
// address step == 0 case
Expand Down

0 comments on commit 64c49a3

Please sign in to comment.