Skip to content

Commit 72551d4

Browse files
committed
Fix #8589 - PERCENT_RANK may return NaN instead of 0.
1 parent 303e8d4 commit 72551d4

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/dsql/WinNodes.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,13 @@ dsc* PercentRankWinNode::winPass(thread_db* /*tdbb*/, Request* request, SlidingW
258258
{
259259
impure_value_ex* impureTemp = request->getImpure<impure_value_ex>(tempImpure);
260260

261-
double partitionSize = window->getPartitionSize();
261+
const double partitionSize = window->getPartitionSize();
262+
const double divisor = (partitionSize - 1) * (impureTemp->vlux_count - 1);
263+
264+
impureTemp->vlu_misc.vlu_double = divisor == 0 ?
265+
0 :
266+
1 / divisor;
262267

263-
impureTemp->vlu_misc.vlu_double = 1 / (partitionSize - 1) * (impureTemp->vlux_count - 1);
264268
return &impureTemp->vlu_desc;
265269
}
266270

0 commit comments

Comments
 (0)