@Override public Block toBlock(Type desiredType) { checkArgument(INTEGER.equals(desiredType), "type doesn't match: %s", desiredType); int numberOfRecords = numberOfRecords(); return new IntArrayBlock( numberOfRecords, Optional.ofNullable(nulls), ints == null ? new int[numberOfRecords] : ints); }
@Override void writeNextRandomValue(Random random, BlockBuilder builder) { INTEGER.writeLong(builder, random.nextInt()); } }
@Override Object extractValue(Block block, int position) { return INTEGER.getLong(block, position); }
public static Block createTestBlock() { BlockBuilder blockBuilder = INTEGER.createBlockBuilder(null, 15); INTEGER.writeLong(blockBuilder, 1111); INTEGER.writeLong(blockBuilder, 1111); INTEGER.writeLong(blockBuilder, 1111); INTEGER.writeLong(blockBuilder, 2222); INTEGER.writeLong(blockBuilder, 2222); INTEGER.writeLong(blockBuilder, 2222); INTEGER.writeLong(blockBuilder, 2222); INTEGER.writeLong(blockBuilder, 2222); INTEGER.writeLong(blockBuilder, 3333); INTEGER.writeLong(blockBuilder, 3333); INTEGER.writeLong(blockBuilder, 4444); return blockBuilder.build(); }
@Override protected Object getGreaterValue(Object value) { Block block = (Block) value; BlockBuilder blockBuilder = INTEGER.createBlockBuilder(null, block.getPositionCount() + 1); for (int i = 0; i < block.getPositionCount(); i++) { INTEGER.appendTo(block, i, blockBuilder); } INTEGER.writeLong(blockBuilder, 1L); return blockBuilder.build(); } }
public static Block createTestBlock() { BlockBuilder blockBuilder = INTEGER.createBlockBuilder(null, 15); INTEGER.writeLong(blockBuilder, 1111); INTEGER.writeLong(blockBuilder, 1111); INTEGER.writeLong(blockBuilder, 1111); INTEGER.writeLong(blockBuilder, 2222); INTEGER.writeLong(blockBuilder, 2222); INTEGER.writeLong(blockBuilder, 2222); INTEGER.writeLong(blockBuilder, 2222); INTEGER.writeLong(blockBuilder, 2222); INTEGER.writeLong(blockBuilder, 3333); INTEGER.writeLong(blockBuilder, 3333); INTEGER.writeLong(blockBuilder, 4444); return blockBuilder.build(); }
@Override protected Object getGreaterValue(Object value) { Block block = (Block) value; BlockBuilder blockBuilder = INTEGER.createBlockBuilder(null, block.getPositionCount() + 1); for (int i = 0; i < block.getPositionCount(); i++) { INTEGER.appendTo(block, i, blockBuilder); } INTEGER.writeLong(blockBuilder, 1L); return blockBuilder.build(); } }
private StateField(String name, Class<?> type, Object initialValue, String getterName, Optional<Type> sqlType) { this.name = requireNonNull(name, "name is null"); checkArgument(!name.isEmpty(), "name is empty"); this.type = requireNonNull(type, "type is null"); this.getterName = requireNonNull(getterName, "getterName is null"); this.initialValue = initialValue; checkArgument(sqlType != null, "sqlType is null"); if (sqlType.isPresent()) { checkArgument( (sqlType.get().getJavaType() == type) || ((type == byte.class) && TINYINT.equals(sqlType.get())) || ((type == int.class) && INTEGER.equals(sqlType.get())), "Stack type (%s) and provided sql type (%s) are incompatible", type.getName(), sqlType.get().getDisplayName()); } else { sqlType = sqlTypeFromStackType(type); } this.sqlType = sqlType; }
@Override void writeNextRandomValue(Random random, BlockBuilder builder) { INTEGER.writeLong(builder, random.nextInt()); } }
@Override Object extractValue(Block block, int position) { return INTEGER.getLong(block, position); }
public static Block createIntsBlock(Iterable<Integer> values) { BlockBuilder builder = INTEGER.createBlockBuilder(null, 100); for (Integer value : values) { if (value == null) { builder.appendNull(); } else { INTEGER.writeLong(builder, value); } } return builder.build(); }
private StateField(String name, Class<?> type, Object initialValue, String getterName, Optional<Type> sqlType) { this.name = requireNonNull(name, "name is null"); checkArgument(!name.isEmpty(), "name is empty"); this.type = requireNonNull(type, "type is null"); this.getterName = requireNonNull(getterName, "getterName is null"); this.initialValue = initialValue; checkArgument(sqlType != null, "sqlType is null"); if (sqlType.isPresent()) { checkArgument( (sqlType.get().getJavaType() == type) || ((type == byte.class) && TINYINT.equals(sqlType.get())) || ((type == int.class) && INTEGER.equals(sqlType.get())), "Stack type (%s) and provided sql type (%s) are incompatible", type.getName(), sqlType.get().getDisplayName()); } else { sqlType = sqlTypeFromStackType(type); } this.sqlType = sqlType; }
@Override public void append(JsonParser parser, BlockBuilder blockBuilder) throws IOException { Long result = currentTokenAsInteger(parser); if (result == null) { blockBuilder.appendNull(); } else { INTEGER.writeLong(blockBuilder, result); } } }
private static HashFunction intHashFunction() { return (block, position) -> XxHash64.hash(INTEGER.getLong(block, position)); }
public static Block createIntsBlock(Iterable<Integer> values) { BlockBuilder builder = INTEGER.createBlockBuilder(null, 100); for (Integer value : values) { if (value == null) { builder.appendNull(); } else { INTEGER.writeLong(builder, value); } } return builder.build(); }
checkArgument(value instanceof Boolean, "Expected value %d to be an instance of Boolean, but is a %s", i, value.getClass().getSimpleName()); else if (INTEGER.equals(type)) { checkArgument(value instanceof Integer, "Expected value %d to be an instance of Integer, but is a %s", i, value.getClass().getSimpleName());
@Override public void append(JsonParser parser, BlockBuilder blockBuilder) throws IOException { Long result = currentTokenAsInteger(parser); if (result == null) { blockBuilder.appendNull(); } else { INTEGER.writeLong(blockBuilder, result); } } }
@Override public void setField(Block block, int position) { value.set(toIntExact(IntegerType.INTEGER.getLong(block, position))); rowInspector.setStructFieldData(row, field, value); } }
public static String serializeSessionProperty(Type type, Object value) { if (value == null) { throw new PrestoException(INVALID_SESSION_PROPERTY, "Session property can not be null"); } if (BooleanType.BOOLEAN.equals(type)) { return value.toString(); } if (BigintType.BIGINT.equals(type)) { return value.toString(); } if (IntegerType.INTEGER.equals(type)) { return value.toString(); } if (DoubleType.DOUBLE.equals(type)) { return value.toString(); } if (VarcharType.VARCHAR.equals(type)) { return value.toString(); } if (type instanceof ArrayType || type instanceof MapType) { return getJsonCodecForType(type).toJson(value); } throw new PrestoException(INVALID_SESSION_PROPERTY, format("Session property type %s is not supported", type)); }
@SqlType("row(x integer,y integer)") public Block bingTileCoordinates(@SqlType(BingTileType.NAME) long input) { if (pageBuilder.isFull()) { pageBuilder.reset(); } BlockBuilder blockBuilder = pageBuilder.getBlockBuilder(0); BingTile tile = BingTile.decode(input); BlockBuilder tileBlockBuilder = blockBuilder.beginBlockEntry(); INTEGER.writeLong(tileBlockBuilder, tile.getX()); INTEGER.writeLong(tileBlockBuilder, tile.getY()); blockBuilder.closeEntry(); pageBuilder.declarePosition(); return BING_TILE_COORDINATES_ROW_TYPE.getObject(blockBuilder, blockBuilder.getPositionCount() - 1); } }