private PageBuilder newPageBuilder(Schema schema, PageOutput output) { return new PageBuilder(Exec.getBufferAllocator(), schema, output); }
private DynamicPageBuilder( final DynamicColumnSetterFactory factory, final BufferAllocator allocator, final Schema schema, final PageOutput output) { this.pageBuilder = new PageBuilder(allocator, schema, output); this.schema = schema; ImmutableList.Builder<DynamicColumnSetter> setters = ImmutableList.builder(); ImmutableMap.Builder<String, DynamicColumnSetter> lookup = ImmutableMap.builder(); for (Column c : schema.getColumns()) { DynamicColumnSetter setter = factory.newColumnSetter(pageBuilder, c); setters.add(setter); lookup.put(c.getName(), setter); } this.setters = setters.build().toArray(new DynamicColumnSetter[0]); this.columnLookup = lookup.build(); }
@Override public PageOutput open(TaskSource taskSource, Schema inputSchema, Schema outputSchema, PageOutput output) { PluginTask task = taskSource.loadTask(PluginTask.class); PageReader pageReader = new PageReader(inputSchema); PageBuilder pageBuilder = new PageBuilder(getBufferAllocator(), outputSchema, output); return new PageConverter(pageReader, pageBuilder, task.getIndexMapping()); }
final JsonParser jsonParser = new JsonParser(); try (final PageBuilder pageBuilder = new PageBuilder(Exec.getBufferAllocator(), schema, output)) { for (final List<JsonNode> rowValues : taskValues) { schema.visitColumns(new ColumnVisitor() {
@Test public void testRepeatableClose() { MockPageOutput output = new MockPageOutput(); this.builder = new PageBuilder(bufferAllocator, Schema.builder().add("col1", STRING).build(), output); builder.close(); builder.close(); }
@Test public void testRepeatableFlush() { MockPageOutput output = new MockPageOutput(); this.builder = new PageBuilder(bufferAllocator, Schema.builder().add("col1", STRING).build(), output); builder.flush(); builder.flush(); } }
final int skipHeaderLines = task.getSkipHeaderLines(); try (final PageBuilder pageBuilder = new PageBuilder(Exec.getBufferAllocator(), schema, output)) { while (tokenizer.nextFile()) { final String fileName = input.hintOfCurrentInputFileNameForLogging().orElse("-");
public static List<Page> buildPage(BufferAllocator bufferAllocator, Schema schema, Object... values) { MockPageOutput output = new MockPageOutput(); try (PageBuilder builder = new PageBuilder(bufferAllocator, schema, output)) { int idx = 0;
private List<Page> buildPages(Schema schema, final Object... objects) { MockPageOutput output = new MockPageOutput(); this.builder = new PageBuilder(bufferAllocator, schema, output); int idx = 0; while (idx < objects.length) {
@Test public void testEmptySchema() { MockPageOutput output = new MockPageOutput(); this.builder = new PageBuilder(bufferAllocator, Schema.builder().build(), output); builder.addRecord(); builder.addRecord(); builder.flush(); builder.close(); this.reader = new PageReader(Schema.builder().build()); assertEquals(1, output.pages.size()); reader.setPage(output.pages.get(0)); assertTrue(reader.nextRecord()); assertTrue(reader.nextRecord()); assertFalse(reader.nextRecord()); }
@Override public void run(TaskSource taskSource, Schema schema, FileInput input, PageOutput output) { try (final PageBuilder pageBuilder = new PageBuilder( Exec.getBufferAllocator(), schema, output)) { while (input.nextFile()) {
@Test public void testDoubleWriteStringsToRow() { MockPageOutput output = new MockPageOutput(); Schema schema = Schema.builder() .add("col0", STRING) .add("col1", STRING) .add("col2", STRING) .build(); builder = new PageBuilder(bufferAllocator, schema, output); builder.setString(0, "v0"); builder.setString(1, "v1"); builder.setNull(2); builder.setString(0, "v2"); // stored to page for col0 builder.setNull(1); // null is stored to page for col1 builder.setString(2, "v3"); // stored to page for col2 builder.addRecord(); builder.finish(); builder.close(); reader = new PageReader(schema); reader.setPage(output.pages.get(0)); assertTrue(reader.nextRecord()); assertEquals(reader.getString(0), "v2"); assertTrue(reader.isNull(1)); assertEquals(reader.getString(2), "v3"); assertFalse(reader.nextRecord()); reader.close(); }
@Test public void testDoubleWriteJsonsToRow() { MockPageOutput output = new MockPageOutput(); Schema schema = Schema.builder() .add("col0", JSON) .add("col1", JSON) .add("col2", JSON) .build(); builder = new PageBuilder(bufferAllocator, schema, output); builder.setJson(0, newString("v0")); builder.setJson(1, newString("v1")); builder.setNull(2); builder.setJson(0, newString("v2")); // store to page for col0 builder.setNull(1); // null is stored to page for col1 builder.setJson(2, newString("v3")); // store to page for col2 builder.addRecord(); builder.finish(); builder.close(); reader = new PageReader(schema); reader.setPage(output.pages.get(0)); assertTrue(reader.nextRecord()); assertEquals(reader.getJson(0), newString("v2")); assertTrue(reader.isNull(1)); assertEquals(reader.getJson(2), newString("v3")); assertFalse(reader.nextRecord()); reader.close(); }
private PageBuilder pageBuilder = new PageBuilder(Exec.getBufferAllocator(), outputSchema, output); private ColumnVisitorImpl visitor = new ColumnVisitorImpl(task, inputSchema, outputSchema, pageReader, pageBuilder);
JdbcSchema querySchema = task.getQuerySchema(); BufferAllocator allocator = task.getBufferAllocator(); PageBuilder pageBuilder = new PageBuilder(allocator, schema, output);
private List<Object[]> filter(PluginTask task, Schema inputSchema, Object ... objects) { MockPageOutput output = new MockPageOutput(); Schema outputSchema = ColumnFilterPlugin.buildOutputSchema(task, inputSchema); PageBuilder pageBuilder = new PageBuilder(runtime.getBufferAllocator(), outputSchema, output); PageReader pageReader = new PageReader(inputSchema); ColumnVisitorImpl visitor = new ColumnVisitorImpl(task, inputSchema, outputSchema, pageReader, pageBuilder); List<Page> pages = PageTestUtils.buildPage(runtime.getBufferAllocator(), inputSchema, objects); for (Page page : pages) { pageReader.setPage(page); while (pageReader.nextRecord()) { outputSchema.visitColumns(visitor); pageBuilder.addRecord(); } } pageBuilder.finish(); pageBuilder.close(); return Pages.toObjects(outputSchema, output.pages); }