@Override public void processRow(BlockBuilder output, boolean newPeerGroup, int peerGroupCount, int currentPosition) { if (newPeerGroup) { rank++; } BIGINT.writeLong(output, rank); } }
@Override public void processRow(BlockBuilder output, boolean newPeerGroup, int peerGroupCount, int currentPosition) { if (newPeerGroup) { rank++; } BIGINT.writeLong(output, rank); } }
@OutputFunction(StandardTypes.BIGINT) public static void evaluateFinal(BooleanDistinctState state, BlockBuilder out) { BIGINT.writeLong(out, Integer.bitCount(state.getByte())); } }
/** * given an output outputBlockBuilder, writes one row (key -> count) of our histogram * * @param valuesBlock - values.build() is called externally */ void writeNodeAsBlock(Block valuesBlock, BlockBuilder outputBlockBuilder) { type.appendTo(valuesBlock, getValuePosition(), outputBlockBuilder); BIGINT.writeLong(outputBlockBuilder, getCount()); } }
private static Block createValueBlock(int positionCount, int mapSize) { BlockBuilder valueBlockBuilder = BIGINT.createBlockBuilder(null, positionCount * mapSize); for (int i = 0; i < positionCount * mapSize; i++) { BIGINT.writeLong(valueBlockBuilder, ThreadLocalRandom.current().nextLong()); } return valueBlockBuilder.build(); }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { BIGINT.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { BIGINT.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
public static Block createLongsBlock(int... values) { BlockBuilder builder = BIGINT.createBlockBuilder(null, 100); for (int value : values) { BIGINT.writeLong(builder, (long) value); } return builder.build(); }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { BIGINT.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { BIGINT.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { BIGINT.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { BIGINT.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { BIGINT.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
@Override public void processRow(BlockBuilder output, boolean newPeerGroup, int peerGroupCount, int currentPosition) { if (windowIndex.isNull(valueChannel, currentPosition)) { output.appendNull(); } else { long buckets = windowIndex.getLong(valueChannel, currentPosition); checkCondition(buckets > 0, INVALID_FUNCTION_ARGUMENT, "Buckets must be greater than 0"); BIGINT.writeLong(output, bucket(buckets, currentPosition) + 1); } }
public static GroupByIdBlock createGroupByIdBlock(int groupId, int positions) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, positions); for (int i = 0; i < positions; i++) { BIGINT.writeLong(blockBuilder, groupId); } return new GroupByIdBlock(groupId, blockBuilder.build()); }
public static RunLengthEncodedBlock createRLEBlock(long value, int positionCount) { BlockBuilder blockBuilder = BIGINT.createBlockBuilder(null, 1); BIGINT.writeLong(blockBuilder, value); return new RunLengthEncodedBlock(blockBuilder.build(), positionCount); } }
private static Page createLongBlockPage(long... values) { BlockBuilder builder = BIGINT.createFixedSizeBlockBuilder(values.length); for (long value : values) { BIGINT.writeLong(builder, value); } return new Page(builder.build()); } }
@ScalarFunction("values_at_quantiles") @Description("For each input q between [0, 1], find the value whose rank in the sorted sequence of the n values represented by the qdigest is qn.") @SqlType("array(bigint)") public static Block valuesAtQuantilesBigint(@SqlType("qdigest(bigint)") Slice input, @SqlType("array(double)") Block percentilesArrayBlock) { QuantileDigest digest = new QuantileDigest(input); BlockBuilder output = BIGINT.createBlockBuilder(null, percentilesArrayBlock.getPositionCount()); for (int i = 0; i < percentilesArrayBlock.getPositionCount(); i++) { BIGINT.writeLong(output, digest.getQuantile(DOUBLE.getDouble(percentilesArrayBlock, i))); } return output.build(); }
private static Page makeInput(int numberOfBuckets) { PageBuilder builder = new PageBuilder(ImmutableList.of(BIGINT, DOUBLE, DOUBLE)); for (int i = 0; i < 100; i++) { builder.declarePosition(); BIGINT.writeLong(builder.getBlockBuilder(0), numberOfBuckets); DOUBLE.writeDouble(builder.getBlockBuilder(1), i); // value DOUBLE.writeDouble(builder.getBlockBuilder(2), 1); // weight } return builder.build(); } }
private static Page makeInput(int numberOfBuckets) { PageBuilder builder = new PageBuilder(ImmutableList.of(BIGINT, REAL, DOUBLE)); for (int i = 0; i < 100; i++) { builder.declarePosition(); BIGINT.writeLong(builder.getBlockBuilder(0), numberOfBuckets); REAL.writeLong(builder.getBlockBuilder(1), i); // value DOUBLE.writeDouble(builder.getBlockBuilder(2), 1); // weight } return builder.build(); } }