@Override public BlockBuilder createBlockBuilder(BlockBuilderStatus blockBuilderStatus, int expectedEntries) { return new RowBlockBuilder(getTypeParameters(), blockBuilderStatus, expectedEntries); }
@Override public BlockBuilder createBlockBuilder(BlockBuilderStatus blockBuilderStatus, int expectedEntries, int expectedBytesPerEntry) { return new RowBlockBuilder(getTypeParameters(), blockBuilderStatus, expectedEntries); }
private static BlockBuilder createBlockBuilder(BlockBuilderStatus blockBuilderStatus, int expectedEntries, int expectedBytesPerEntry) { return new RowBlockBuilder(Collections.nCopies(FIELD_COUNT, VARCHAR), blockBuilderStatus, expectedEntries); } }
private static BlockBuilder createBlockBuilder(BlockBuilderStatus blockBuilderStatus, int expectedEntries, int expectedBytesPerEntry) { return new RowBlockBuilder(Collections.nCopies(FIELD_COUNT, VARCHAR), blockBuilderStatus, expectedEntries); } }
@Override public BlockBuilder newBlockBuilderLike(BlockBuilderStatus blockBuilderStatus) { int newSize = calculateBlockResetSize(getPositionCount()); BlockBuilder[] newBlockBuilders = new BlockBuilder[numFields]; for (int i = 0; i < numFields; i++) { newBlockBuilders[i] = fieldBlockBuilders[i].newBlockBuilderLike(blockBuilderStatus); } return new RowBlockBuilder(blockBuilderStatus, newBlockBuilders, new int[newSize + 1], new boolean[newSize]); } }
@Override protected Object visitRow(Row node, Object context) { RowType rowType = (RowType) type(node); List<Type> parameterTypes = rowType.getTypeParameters(); List<Expression> arguments = node.getItems(); int cardinality = arguments.size(); List<Object> values = new ArrayList<>(cardinality); for (Expression argument : arguments) { values.add(process(argument, context)); } if (hasUnresolvedValue(values)) { return new Row(toExpressions(values, parameterTypes)); } else { BlockBuilder blockBuilder = new RowBlockBuilder(parameterTypes, null, 1); BlockBuilder singleRowBlockWriter = blockBuilder.beginBlockEntry(); for (int i = 0; i < cardinality; ++i) { writeNativeValue(parameterTypes.get(i), singleRowBlockWriter, values.get(i)); } blockBuilder.closeEntry(); return rowType.getObject(blockBuilder, 0); } }
@Override protected Object visitRow(Row node, Object context) { RowType rowType = (RowType) type(node); List<Type> parameterTypes = rowType.getTypeParameters(); List<Expression> arguments = node.getItems(); int cardinality = arguments.size(); List<Object> values = new ArrayList<>(cardinality); for (Expression argument : arguments) { values.add(process(argument, context)); } if (hasUnresolvedValue(values)) { return new Row(toExpressions(values, parameterTypes)); } else { BlockBuilder blockBuilder = new RowBlockBuilder(parameterTypes, null, 1); BlockBuilder singleRowBlockWriter = blockBuilder.beginBlockEntry(); for (int i = 0; i < cardinality; ++i) { writeNativeValue(parameterTypes.get(i), singleRowBlockWriter, values.get(i)); } blockBuilder.closeEntry(); return rowType.getObject(blockBuilder, 0); } }
public static Block toRow(List<Type> parameterTypes, Object... values) { checkArgument(parameterTypes.size() == values.length, "parameterTypes.size(" + parameterTypes.size() + ") does not equal to values.length(" + values.length + ")"); RowType rowType = RowType.anonymous(parameterTypes); BlockBuilder blockBuilder = new RowBlockBuilder(parameterTypes, null, 1); BlockBuilder singleRowBlockWriter = blockBuilder.beginBlockEntry(); for (int i = 0; i < values.length; i++) { appendToBlockBuilder(parameterTypes.get(i), values[i], singleRowBlockWriter); } blockBuilder.closeEntry(); return rowType.getObject(blockBuilder, 0); }
public static Block toRow(List<Type> parameterTypes, Object... values) { checkArgument(parameterTypes.size() == values.length, "parameterTypes.size(" + parameterTypes.size() + ") does not equal to values.length(" + values.length + ")"); RowType rowType = RowType.anonymous(parameterTypes); BlockBuilder blockBuilder = new RowBlockBuilder(parameterTypes, null, 1); BlockBuilder singleRowBlockWriter = blockBuilder.beginBlockEntry(); for (int i = 0; i < values.length; i++) { appendToBlockBuilder(parameterTypes.get(i), values[i], singleRowBlockWriter); } blockBuilder.closeEntry(); return rowType.getObject(blockBuilder, 0); }
private BlockBuilder createBlockBuilderWithValues(List<Type> fieldTypes, List<Object>[] rows) { BlockBuilder rowBlockBuilder = new RowBlockBuilder(fieldTypes, null, 1); for (List<Object> row : rows) { if (row == null) { rowBlockBuilder.appendNull(); } else { BlockBuilder singleRowBlockWriter = rowBlockBuilder.beginBlockEntry(); for (Object fieldValue : row) { if (fieldValue == null) { singleRowBlockWriter.appendNull(); } else { if (fieldValue instanceof Long) { BIGINT.writeLong(singleRowBlockWriter, ((Long) fieldValue).longValue()); } else if (fieldValue instanceof String) { VARCHAR.writeSlice(singleRowBlockWriter, utf8Slice((String) fieldValue)); } else { throw new IllegalArgumentException(); } } } rowBlockBuilder.closeEntry(); } } return rowBlockBuilder; }
private BlockBuilder createBlockBuilderWithValues(List<Type> fieldTypes, List<Object>[] rows) { BlockBuilder rowBlockBuilder = new RowBlockBuilder(fieldTypes, null, 1); for (List<Object> row : rows) { if (row == null) { rowBlockBuilder.appendNull(); } else { BlockBuilder singleRowBlockWriter = rowBlockBuilder.beginBlockEntry(); for (Object fieldValue : row) { if (fieldValue == null) { singleRowBlockWriter.appendNull(); } else { if (fieldValue instanceof Long) { BIGINT.writeLong(singleRowBlockWriter, ((Long) fieldValue).longValue()); } else if (fieldValue instanceof String) { VARCHAR.writeSlice(singleRowBlockWriter, utf8Slice((String) fieldValue)); } else { throw new IllegalArgumentException(); } } } rowBlockBuilder.closeEntry(); } } return rowBlockBuilder; }