com.facebook.presto.spi.block.Block.writePositionTo()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(7.2k)|赞(0)|评价(0)|浏览(70)

本文整理了Java中com.facebook.presto.spi.block.Block.writePositionTo()方法的一些代码示例,展示了Block.writePositionTo()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Block.writePositionTo()方法的具体详情如下:
包路径:com.facebook.presto.spi.block.Block
类名称:Block
方法名:writePositionTo

Block.writePositionTo介绍

[英]Appends the value at position to blockBuilder and close the entry.
[中]将位置处的值附加到blockBuilder并关闭条目。

代码示例

代码示例来源:origin: prestodb/presto

@Override
public void writePositionTo(int position, BlockBuilder blockBuilder)
{
  block.writePositionTo(position, blockBuilder);
}

代码示例来源:origin: prestodb/presto

@Override
public void writePositionTo(int position, BlockBuilder blockBuilder)
{
  checkReadablePosition(position);
  value.writePositionTo(0, blockBuilder);
}

代码示例来源:origin: prestodb/presto

@Override
public void writePositionTo(int position, BlockBuilder blockBuilder)
{
  assureLoaded();
  block.writePositionTo(position, blockBuilder);
}

代码示例来源:origin: prestodb/presto

@Override
public void writePositionTo(int position, BlockBuilder blockBuilder)
{
  dictionary.writePositionTo(getId(position), blockBuilder);
}

代码示例来源:origin: prestodb/presto

@Override
public void writePositionTo(int position, BlockBuilder blockBuilder)
{
  position = getAbsolutePosition(position);
  if (position % 2 == 0) {
    getRawKeyBlock().writePositionTo(position / 2, blockBuilder);
  }
  else {
    getRawValueBlock().writePositionTo(position / 2, blockBuilder);
  }
}

代码示例来源:origin: prestodb/presto

@Override
public void writePositionTo(int position, BlockBuilder blockBuilder)
{
  checkFieldIndex(position);
  getRawFieldBlock(position).writePositionTo(rowIndex, blockBuilder);
}

代码示例来源:origin: prestodb/presto

@Override
public void appendTo(Block block, int position, BlockBuilder blockBuilder)
{
  if (block.isNull(position)) {
    blockBuilder.appendNull();
  }
  else {
    block.writePositionTo(position, blockBuilder);
  }
}

代码示例来源:origin: prestodb/presto

@Override
public void writePositionTo(int position, BlockBuilder blockBuilder)
{
  checkReadablePosition(position);
  getBlock().writePositionTo(position + start, blockBuilder);
}

代码示例来源:origin: prestodb/presto

@Override
public void appendTo(Block block, int position, BlockBuilder blockBuilder)
{
  if (block.isNull(position)) {
    blockBuilder.appendNull();
  }
  else {
    block.writePositionTo(position, blockBuilder);
  }
}

代码示例来源:origin: prestodb/presto

@Override
public void appendTo(Block block, int position, BlockBuilder blockBuilder)
{
  if (block.isNull(position)) {
    blockBuilder.appendNull();
  }
  else {
    block.writePositionTo(position, blockBuilder);
  }
}

代码示例来源:origin: prestodb/presto

@Override
public BlockBuilder appendStructure(Block block)
{
  if (!(block instanceof AbstractSingleRowBlock)) {
    throw new IllegalStateException("Expected AbstractSingleRowBlock");
  }
  if (currentEntryOpened) {
    throw new IllegalStateException("Expected current entry to be closed but was opened");
  }
  currentEntryOpened = true;
  int blockPositionCount = block.getPositionCount();
  if (blockPositionCount != numFields) {
    throw new IllegalArgumentException(format("block position count (%s) is not equal to number of fields (%s)", blockPositionCount, numFields));
  }
  for (int i = 0; i < blockPositionCount; i++) {
    if (block.isNull(i)) {
      fieldBlockBuilders[i].appendNull();
    }
    else {
      block.writePositionTo(i, fieldBlockBuilders[i]);
    }
  }
  closeEntry();
  return this;
}

代码示例来源:origin: prestodb/presto

@Override
public BlockBuilder appendStructure(Block block)
{
  if (currentEntryOpened) {
    throw new IllegalStateException("Expected current entry to be closed but was opened");
  }
  currentEntryOpened = true;
  for (int i = 0; i < block.getPositionCount(); i++) {
    if (block.isNull(i)) {
      values.appendNull();
    }
    else {
      block.writePositionTo(i, values);
    }
  }
  closeEntry();
  return this;
}

代码示例来源:origin: prestodb/presto

@Override
public BlockBuilder appendStructureInternal(Block block, int position)
{
  if (!(block instanceof AbstractMapBlock)) {
    throw new IllegalArgumentException("Expected AbstractMapBlock");
  }
  if (currentEntryOpened) {
    throw new IllegalStateException("Expected current entry to be closed but was opened");
  }
  currentEntryOpened = true;
  AbstractMapBlock mapBlock = (AbstractMapBlock) block;
  int startValueOffset = mapBlock.getOffset(position);
  int endValueOffset = mapBlock.getOffset(position + 1);
  for (int i = startValueOffset; i < endValueOffset; i++) {
    if (mapBlock.getRawKeyBlock().isNull(i)) {
      throw new IllegalArgumentException("Map keys must not be null");
    }
    else {
      mapBlock.getRawKeyBlock().writePositionTo(i, keyBlockBuilder);
    }
    if (mapBlock.getRawValueBlock().isNull(i)) {
      valueBlockBuilder.appendNull();
    }
    else {
      mapBlock.getRawValueBlock().writePositionTo(i, valueBlockBuilder);
    }
  }
  closeEntry(mapBlock.getHashTables(), startValueOffset * HASH_MULTIPLIER);
  return this;
}

代码示例来源:origin: prestodb/presto

@Override
public BlockBuilder appendStructureInternal(Block block, int position)
{
  if (!(block instanceof AbstractRowBlock)) {
    throw new IllegalArgumentException();
  }
  AbstractRowBlock rowBlock = (AbstractRowBlock) block;
  BlockBuilder entryBuilder = this.beginBlockEntry();
  int fieldBlockOffset = rowBlock.getFieldBlockOffset(position);
  for (int i = 0; i < rowBlock.numFields; i++) {
    if (rowBlock.getRawFieldBlocks()[i].isNull(fieldBlockOffset)) {
      entryBuilder.appendNull();
    }
    else {
      rowBlock.getRawFieldBlocks()[i].writePositionTo(fieldBlockOffset, entryBuilder);
    }
  }
  closeEntry();
  return this;
}

代码示例来源:origin: prestodb/presto

private static Block copyBlockViaWritePositionTo(Block block, Supplier<BlockBuilder> newBlockBuilder)
{
  BlockBuilder blockBuilder = newBlockBuilder.get();
  for (int i = 0; i < block.getPositionCount(); i++) {
    if (block.isNull(i)) {
      blockBuilder.appendNull();
    }
    else {
      block.writePositionTo(i, blockBuilder);
    }
  }
  return blockBuilder.build();
}

代码示例来源:origin: prestodb/presto

@Override
public BlockBuilder appendStructureInternal(Block block, int position)
{
  if (!(block instanceof AbstractArrayBlock)) {
    throw new IllegalArgumentException();
  }
  AbstractArrayBlock arrayBlock = (AbstractArrayBlock) block;
  BlockBuilder entryBuilder = beginBlockEntry();
  int startValueOffset = arrayBlock.getOffset(position);
  int endValueOffset = arrayBlock.getOffset(position + 1);
  for (int i = startValueOffset; i < endValueOffset; i++) {
    if (arrayBlock.getRawElementBlock().isNull(i)) {
      entryBuilder.appendNull();
    }
    else {
      arrayBlock.getRawElementBlock().writePositionTo(i, entryBuilder);
    }
  }
  closeEntry();
  return this;
}

代码示例来源:origin: prestodb/presto

public static Block filter(Type type, Block block, MethodHandle function)
  {
    int positionCount = block.getPositionCount();
    BlockBuilder resultBuilder = type.createBlockBuilder(null, positionCount);
    for (int position = 0; position < positionCount; position++) {
      Long input = (Long) readNativeValue(type, block, position);
      Boolean keep;
      try {
        keep = (Boolean) function.invokeExact(input);
      }
      catch (Throwable t) {
        throwIfUnchecked(t);
        throw new RuntimeException(t);
      }
      if (TRUE.equals(keep)) {
        block.writePositionTo(position, resultBuilder);
      }
    }
    return resultBuilder.build();
  }
}

代码示例来源:origin: com.facebook.presto/presto-spi

@Override
public void writePositionTo(int position, BlockBuilder blockBuilder)
{
  position = getAbsolutePosition(position);
  if (position % 2 == 0) {
    getRawKeyBlock().writePositionTo(position / 2, blockBuilder);
  }
  else {
    getRawValueBlock().writePositionTo(position / 2, blockBuilder);
  }
}

代码示例来源:origin: com.facebook.presto/presto-spi

@Override
public void appendTo(Block block, int position, BlockBuilder blockBuilder)
{
  if (block.isNull(position)) {
    blockBuilder.appendNull();
  }
  else {
    block.writePositionTo(position, blockBuilder);
  }
}

代码示例来源:origin: com.facebook.presto/presto-spi

@Override
public void appendTo(Block block, int position, BlockBuilder blockBuilder)
{
  if (block.isNull(position)) {
    blockBuilder.appendNull();
  }
  else {
    block.writePositionTo(position, blockBuilder);
  }
}

相关文章