Skip to content

Commit 1ab232f

Browse files
committed
Add offsets to BenchmarkBlockSerDe
1 parent 2e14fbd commit 1ab232f

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

core/trino-main/src/test/java/io/trino/execution/buffer/BenchmarkBlockSerde.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,12 @@ private static List<Slice> serializePages(BenchmarkData data)
201201
public abstract static class TypeBenchmarkData
202202
extends BenchmarkData
203203
{
204+
private static final int OFFSET_LENGTH = 3;
205+
204206
@Param({"0", ".01", ".10", ".50", ".90", ".99"})
205207
private double nullChance;
208+
@Param({"true", "false"})
209+
private boolean offset;
206210

207211
public void setup(Type type, Function<Random, ?> valueGenerator)
208212
{
@@ -218,13 +222,21 @@ public void setup(Type type, Function<Random, ?> valueGenerator)
218222
writeValue(type, values.next(), blockBuilder);
219223
pageBuilder.declarePosition();
220224
if (pageBuilder.isFull()) {
221-
pagesBuilder.add(pageBuilder.build());
225+
Page page = pageBuilder.build();
226+
if (offset && page.getPositionCount() > (OFFSET_LENGTH * 2)) {
227+
page = page.getRegion(OFFSET_LENGTH, page.getPositionCount() - (OFFSET_LENGTH * 2));
228+
}
229+
pagesBuilder.add(page);
222230
pageBuilder.reset();
223231
blockBuilder = pageBuilder.getBlockBuilder(0);
224232
}
225233
}
226234
if (pageBuilder.getPositionCount() > 0) {
227-
pagesBuilder.add(pageBuilder.build());
235+
Page page = pageBuilder.build();
236+
if (offset && page.getPositionCount() > (OFFSET_LENGTH * 2)) {
237+
page = page.getRegion(OFFSET_LENGTH, page.getPositionCount() - (OFFSET_LENGTH * 2));
238+
}
239+
pagesBuilder.add(page);
228240
}
229241

230242
List<Page> pages = pagesBuilder.build();

0 commit comments

Comments
 (0)