Skip to content

Commit

Permalink
Remove PageBuilder newPageBuilderLike
Browse files Browse the repository at this point in the history
This method only has one usage and the existing reset method is better
  • Loading branch information
dain committed Oct 17, 2024
1 parent a619fda commit 8e070d6
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.IntStream;

import static io.trino.block.BlockAssertions.assertBlockEquals;
import static io.trino.spi.type.BigintType.BIGINT;
Expand Down Expand Up @@ -72,13 +73,15 @@ public void testNewBlockBuilderLike()
pageBuilder.declarePosition();
}

PageBuilder newPageBuilder = pageBuilder.newPageBuilderLike();
List<BlockBuilder> originalBlockBuilders = IntStream.range(0, channels.size()).mapToObj(pageBuilder::getBlockBuilder).toList();
pageBuilder.reset();
for (int i = 0; i < channels.size(); i++) {
// we should get new block builder instances
assertThat(pageBuilder.getBlockBuilder(i))
.isNotEqualTo(newPageBuilder.getBlockBuilder(i));
assertThat(newPageBuilder.getBlockBuilder(i).getPositionCount()).isEqualTo(0);
assertThat(newPageBuilder.getBlockBuilder(i).getRetainedSizeInBytes() < pageBuilder.getBlockBuilder(i).getRetainedSizeInBytes()).isTrue();
assertThat(originalBlockBuilders.get(i))
.isNotEqualTo(pageBuilder.getBlockBuilder(i));
assertThat(pageBuilder.getBlockBuilder(i).getPositionCount()).isEqualTo(0);
assertThat(pageBuilder.getBlockBuilder(i).getSizeInBytes()).isLessThan(originalBlockBuilders.get(i).getSizeInBytes());
assertThat(pageBuilder.getBlockBuilder(i).getRetainedSizeInBytes()).isLessThan(originalBlockBuilders.get(i).getRetainedSizeInBytes());
}
}

Expand Down
4 changes: 4 additions & 0 deletions core/trino-spi/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,10 @@
<old>method io.trino.spi.block.BlockBuilder io.trino.spi.type.UuidType::createBlockBuilder(io.trino.spi.block.BlockBuilderStatus, int, int)</old>
<new>method io.trino.spi.block.BlockBuilder io.trino.spi.type.Type::createBlockBuilder(io.trino.spi.block.BlockBuilderStatus, int, int) @ io.trino.spi.type.UuidType</new>
</item>
<item>
<code>java.method.removed</code>
<old>method io.trino.spi.PageBuilder io.trino.spi.PageBuilder::newPageBuilderLike()</old>
</item>
</differences>
</revapi.differences>
</analysisConfiguration>
Expand Down
16 changes: 0 additions & 16 deletions core/trino-spi/src/main/java/io/trino/spi/PageBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -71,17 +71,6 @@ private PageBuilder(int initialExpectedEntries, int maxPageBytes, List<? extends
}
}

private PageBuilder(int maxPageBytes, BlockBuilder[] templateBlockBuilders)
{
pageBuilderStatus = new PageBuilderStatus(maxPageBytes);

// Stream API should not be used since constructor can be called in performance sensitive sections
blockBuilders = new BlockBuilder[templateBlockBuilders.length];
for (int i = 0; i < this.blockBuilders.length; i++) {
this.blockBuilders[i] = templateBlockBuilders[i].newBlockBuilderLike(pageBuilderStatus.createBlockBuilderStatus());
}
}

public void reset()
{
if (isEmpty()) {
Expand All @@ -96,11 +85,6 @@ public void reset()
}
}

public PageBuilder newPageBuilderLike()
{
return new PageBuilder(pageBuilderStatus.getMaxPageSizeInBytes(), blockBuilders);
}

public BlockBuilder getBlockBuilder(int channel)
{
return blockBuilders[channel];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public class LinePageSource
private final LineBuffer lineBuffer;
private final Location filePath;

private PageBuilder pageBuilder;
private final PageBuilder pageBuilder;
private long completedPositions;

public LinePageSource(LineReader lineReader, LineDeserializer deserializer, LineBuffer lineBuffer, Location filePath)
Expand All @@ -63,7 +63,7 @@ public Page getNextPage()
}
Page page = pageBuilder.build();
completedPositions += page.getPositionCount();
pageBuilder = pageBuilder.newPageBuilderLike();
pageBuilder.reset();
return page;
}
catch (TrinoException e) {
Expand Down

0 comments on commit 8e070d6

Please sign in to comment.