本文整理了Java中com.facebook.presto.spi.block.Block.writePositionTo()
方法的一些代码示例,展示了Block.writePositionTo()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Block.writePositionTo()
方法的具体详情如下:
包路径:com.facebook.presto.spi.block.Block
类名称: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);
}
}
内容来源于网络,如有侵权,请联系作者删除!