本文整理汇总了Java中com.facebook.presto.spi.block.Block.isNull方法的典型用法代码示例。如果您正苦于以下问题:Java Block.isNull方法的具体用法?Java Block.isNull怎么用?Java Block.isNull使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.facebook.presto.spi.block.Block
的用法示例。
在下文中一共展示了Block.isNull方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: input
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
public static void input(BlockComparator comparator, Type valueType, Type keyType, MinMaxByNState state, Block value, Block key, int blockIndex, long n)
{
TypedKeyValueHeap heap = state.getTypedKeyValueHeap();
if (heap == null) {
if (n <= 0) {
throw new PrestoException(INVALID_FUNCTION_ARGUMENT, "third argument of max_by/min_by must be a positive integer");
}
heap = new TypedKeyValueHeap(comparator, keyType, valueType, Ints.checkedCast(n));
state.setTypedKeyValueHeap(heap);
}
long startSize = heap.getEstimatedSize();
if (!key.isNull(blockIndex)) {
heap.add(key, value, blockIndex);
}
state.addMemoryUsage(heap.getEstimatedSize() - startSize);
}
示例2: appendTo
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public void appendTo(Block block, int position, BlockBuilder blockBuilder)
{
if (block.isNull(position)) {
blockBuilder.appendNull();
}
else {
block.writeBytesTo(position, 0, block.getLength(position), blockBuilder);
blockBuilder.closeEntry();
}
}
示例3: getObjectValue
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public Object getObjectValue(ConnectorSession session, Block block, int position)
{
if (block.isNull(position)) {
return null;
}
return new SqlVarbinary(block.getSlice(position, 0, block.getLength(position)).getBytes());
}
示例4: deserialize
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public void deserialize(Block block, int index, HyperLogLogState state)
{
if (!block.isNull(index)) {
Slice slice = HyperLogLogType.HYPER_LOG_LOG.getSlice(block, index);
state.setHyperLogLog(HyperLogLog.fromBytes(slice.getBytes()).toDenseHLL());
}
}
示例5: contains
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@TypeParameter(StandardTypes.DOUBLE)
@SqlType(StandardTypes.BOOLEAN)
@Nullable
public static Boolean contains(
@TypeParameter(StandardTypes.DOUBLE) Type elementType,
@SqlType("array(double)") Block arrayBlock,
@SqlType(StandardTypes.DOUBLE) double lng,
@SqlType(StandardTypes.DOUBLE) double lat)
{
double[] array= new double[arrayBlock.getPositionCount()] ;
Polygon poly = new Polygon();
for (int i = 0; i < arrayBlock.getPositionCount(); i++) {
if (arrayBlock.isNull(i)) {
continue;
}
array[i]=elementType.getDouble(arrayBlock, i);
}
poly.startPath(array[0], array[1]);
for (int i = 2; i < array.length; i += 2) {
poly.lineTo(array[i], array[i + 1]);
}
return OperatorContains.local().execute(poly, new Point(lng,lat), null, null);
}
示例6: getObjectValue
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public Object getObjectValue(ConnectorSession session, Block block, int position)
{
if (block.isNull(position)) {
return null;
}
Block mapBlock = block.getObject(position, Block.class);
Map<Object, Object> map = new HashMap<>();
for (int i = 0; i < mapBlock.getPositionCount(); i += 2) {
map.put(keyType.getObjectValue(session, mapBlock, i), valueType.getObjectValue(session, mapBlock, i + 1));
}
return Collections.unmodifiableMap(map);
}
示例7: containsNullValue
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
private static boolean containsNullValue(int position, Block... blocks)
{
for (Block block : blocks) {
if (block.isNull(position)) {
return true;
}
}
return false;
}
示例8: longSubscript
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@UsedByGeneratedCode
public static Long longSubscript(Type elementType, Block array, long index)
{
checkIndex(array, index);
int position = Ints.checkedCast(index - 1);
if (array.isNull(position)) {
return null;
}
return elementType.getLong(array, position);
}
示例9: appendTo
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public void appendTo(Block block, int position, BlockBuilder blockBuilder)
{
if (block.isNull(position)) {
blockBuilder.appendNull();
}
else {
blockBuilder.writeLong(block.getLong(position, 0)).closeEntry();
}
}
示例10: deserialize
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public void deserialize(Block block, int index, BloomFilterState state)
{
if (!block.isNull(index)) {
state.setBloomFilter(BloomFilter.newInstance(BloomFilterType.BLOOM_FILTER.getSlice(block, index)));
}
}
示例11: indexString
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
private static ColumnStats indexString(Type type, OrcRecordReader reader, int columnIndex, long columnId)
throws IOException
{
boolean minSet = false;
boolean maxSet = false;
Slice min = null;
Slice max = null;
while (true) {
int batchSize = reader.nextBatch();
if (batchSize <= 0) {
break;
}
Block block = reader.readBlock(type, columnIndex);
for (int i = 0; i < batchSize; i++) {
if (block.isNull(i)) {
continue;
}
Slice slice = type.getSlice(block, i);
slice = truncateIndexValue(slice);
if (!minSet || (slice.compareTo(min) < 0)) {
minSet = true;
min = slice;
}
if (!maxSet || (slice.compareTo(max) > 0)) {
maxSet = true;
max = slice;
}
}
}
return new ColumnStats(columnId,
minSet ? min.toStringUtf8() : null,
maxSet ? max.toStringUtf8() : null);
}
示例12: deserialize
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public void deserialize(Block block, int index, HyperLogLogState state)
{
if (!block.isNull(index)) {
state.setHyperLogLog(HyperLogLog.newInstance(HYPER_LOG_LOG.getSlice(block, index)));
}
}
示例13: getObjectValue
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public Object getObjectValue(ConnectorSession session, Block block, int position)
{
if (block.isNull(position)) {
return null;
}
return new SqlTimestampWithTimeZone(block.getLong(position, 0));
}
示例14: hashPosition
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
public static long hashPosition(MethodHandle methodHandle, Type type, Block block, int position)
{
if (block.isNull(position)) {
return NULL_HASH_CODE;
}
try {
if (type.getJavaType() == boolean.class) {
return (long) methodHandle.invoke(type.getBoolean(block, position));
}
else if (type.getJavaType() == long.class) {
return (long) methodHandle.invoke(type.getLong(block, position));
}
else if (type.getJavaType() == double.class) {
return (long) methodHandle.invoke(type.getDouble(block, position));
}
else if (type.getJavaType() == Slice.class) {
return (long) methodHandle.invoke(type.getSlice(block, position));
}
else if (!type.getJavaType().isPrimitive()) {
return (long) methodHandle.invoke(type.getObject(block, position));
}
else {
throw new UnsupportedOperationException("Unsupported native container type: " + type.getJavaType() + " with type " + type.getTypeSignature());
}
}
catch (Throwable throwable) {
throw Throwables.propagate(throwable);
}
}
示例15: add
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
/**
* Only add this key value pair if we are in multi-value mode or we haven't met this key before.
* Otherwise, ignore it.
*/
public void add(Block key, Block value, int keyPosition, int valuePosition)
{
if (isMultiValue || !keySet.contains(key, keyPosition)) {
keySet.add(key, keyPosition);
keyType.appendTo(key, keyPosition, keyBlockBuilder);
if (value.isNull(valuePosition)) {
valueBlockBuilder.appendNull();
}
else {
valueType.appendTo(value, valuePosition, valueBlockBuilder);
}
}
}