本文整理汇总了Java中com.facebook.presto.spi.block.Block.getLength方法的典型用法代码示例。如果您正苦于以下问题:Java Block.getLength方法的具体用法?Java Block.getLength怎么用?Java Block.getLength使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.facebook.presto.spi.block.Block
的用法示例。
在下文中一共展示了Block.getLength方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: remove
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
public static Block remove(MethodHandle equalsFunction, Type type, Block array, Object value)
{
int sizeAfterRemove = 0;
List<Integer> positions = new ArrayList<>();
for (int i = 0; i < array.getPositionCount(); i++) {
Object element = readNativeValue(type, array, i);
try {
if (element == null || !(boolean) equalsFunction.invoke(element, value)) {
positions.add(i);
sizeAfterRemove += array.getLength(i);
}
}
catch (Throwable t) {
Throwables.propagateIfInstanceOf(t, Error.class);
Throwables.propagateIfInstanceOf(t, PrestoException.class);
throw new PrestoException(INTERNAL_ERROR, t);
}
}
if (array.getPositionCount() == positions.size()) {
return array;
}
int entrySize = 0;
if (!positions.isEmpty()) {
entrySize = (int) Math.ceil(sizeAfterRemove / (double) positions.size());
}
BlockBuilder blockBuilder = type.createBlockBuilder(new BlockBuilderStatus(), positions.size(), entrySize);
for (int position : positions) {
type.appendTo(array, position, blockBuilder);
}
return blockBuilder.build();
}
示例2: equalTo
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public boolean equalTo(Block leftBlock, int leftPosition, Block rightBlock, int rightPosition)
{
int leftLength = leftBlock.getLength(leftPosition);
int rightLength = rightBlock.getLength(rightPosition);
if (leftLength != rightLength) {
return false;
}
return leftBlock.equals(leftPosition, 0, rightBlock, rightPosition, 0, leftLength);
}
示例3: compareTo
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public int compareTo(Block leftBlock, int leftPosition, Block rightBlock, int rightPosition)
{
int leftLength = leftBlock.getLength(leftPosition);
int rightLength = rightBlock.getLength(rightPosition);
return leftBlock.compareTo(leftPosition, 0, leftLength, rightBlock, rightPosition, 0, rightLength);
}