Skip to content

Commit 745b73a

Browse files
committed
fixup
1 parent d533ff4 commit 745b73a

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

sql/core/src/main/scala/org/apache/spark/sql/execution/joins/HashedRelation.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -816,17 +816,19 @@ private[execution] final class LongToUnsafeRowMap(
816816

817817
private def grow(inputRowSize: Int): Unit = {
818818
// There is 8 bytes for the pointer to next value
819-
val neededNumWords = (cursor - page.getBaseOffset + 8 + inputRowSize + 7) / 8
819+
val usedBytes = cursor - page.getBaseOffset
820+
val neededNumWords = (usedBytes + 8 + inputRowSize + 7) / 8
820821
if (neededNumWords > page.size() / 8) {
821822
if (neededNumWords > (1 << 30)) {
822823
throw QueryExecutionErrors.cannotBuildHashedRelationLargerThan8GError()
823824
}
824825
val newNumWords = math.max(neededNumWords, math.min(page.size() / 8 * 2, 1 << 30))
825826
val newPage = allocatePage(newNumWords.toInt * 8)
826827
Platform.copyMemory(page.getBaseObject, page.getBaseOffset, newPage.getBaseObject,
827-
newPage.getBaseOffset, cursor - page.getBaseOffset)
828+
newPage.getBaseOffset, usedBytes)
828829
freePage(page)
829830
page = newPage
831+
cursor = page.getBaseOffset + usedBytes
830832
}
831833
}
832834

0 commit comments

Comments
 (0)