当前位置: 首页>>代码示例>>Java>>正文


Java Block.getObject方法代码示例

本文整理汇总了Java中com.facebook.presto.spi.block.Block.getObject方法的典型用法代码示例。如果您正苦于以下问题:Java Block.getObject方法的具体用法?Java Block.getObject怎么用?Java Block.getObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.facebook.presto.spi.block.Block的用法示例。


在下文中一共展示了Block.getObject方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: equalTo

import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public boolean equalTo(Block leftBlock, int leftPosition, Block rightBlock, int rightPosition)
{
    Block leftArray = leftBlock.getObject(leftPosition, Block.class);
    Block rightArray = rightBlock.getObject(rightPosition, Block.class);

    if (leftArray.getPositionCount() != rightArray.getPositionCount()) {
        return false;
    }

    for (int i = 0; i < leftArray.getPositionCount(); i++) {
        checkElementNotNull(leftArray.isNull(i), ARRAY_NULL_ELEMENT_MSG);
        checkElementNotNull(rightArray.isNull(i), ARRAY_NULL_ELEMENT_MSG);
        if (!elementType.equalTo(leftArray, i, rightArray, i)) {
            return false;
        }
    }

    return true;
}
 
开发者ID:y-lan,项目名称:presto,代码行数:21,代码来源:ArrayType.java

示例2: 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 arrayBlock = block.getObject(position, Block.class);

    List<Object> values = new ArrayList<>(arrayBlock.getPositionCount());

    for (int i = 0; i < arrayBlock.getPositionCount(); i++) {
        values.add(elementType.getObjectValue(session, arrayBlock, i));
    }

    return Collections.unmodifiableList(values);
}
 
开发者ID:y-lan,项目名称:presto,代码行数:18,代码来源:ArrayType.java

示例3: equalTo

import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public boolean equalTo(Block leftBlock, int leftPosition, Block rightBlock, int rightPosition)
{
    Block leftRow = leftBlock.getObject(leftPosition, Block.class);
    Block rightRow = rightBlock.getObject(rightPosition, Block.class);

    for (int i = 0; i < leftRow.getPositionCount(); i++) {
        checkElementNotNull(leftRow.isNull(i));
        checkElementNotNull(rightRow.isNull(i));
        Type fieldType = fields.get(i).getType();
        if (!fieldType.equalTo(leftRow, i, rightRow, i)) {
            return false;
        }
    }

    return true;
}
 
开发者ID:y-lan,项目名称:presto,代码行数:18,代码来源:RowType.java

示例4: setField

import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public void setField(Block block, int position)
{
    Block rowBlock = block.getObject(position, Block.class);

    // TODO reuse row object and use FieldSetters, like we do at the top level
    // Ideally, we'd use the same recursive structure starting from the top, but
    // this requires modeling row types in the same way we model table rows
    // (multiple blocks vs all fields packed in a single block)
    List<Object> value = new ArrayList<>(fieldTypes.size());
    for (int i = 0; i < fieldTypes.size(); i++) {
        Object element = getField(fieldTypes.get(i), rowBlock, i);
        value.add(element);
    }

    rowInspector.setStructFieldData(row, field, value);
}
 
开发者ID:y-lan,项目名称:presto,代码行数:18,代码来源:HiveWriteUtils.java

示例5: deserialize

import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public void deserialize(Block block, int index, MaxOrMinByState state)
{
    if (block.isNull(index)) {
        state.setKey(null);
        state.setValue(null);
        return;
    }
    Block rowBlock = block.getObject(index, Block.class);
    state.setKey(rowBlock.getSingleValueBlock(0));
    state.setValue(rowBlock.getSingleValueBlock(1));
}
 
开发者ID:y-lan,项目名称:presto,代码行数:13,代码来源:MaxOrMinByStateSerializer.java

示例6: compareTo

import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public int compareTo(Block leftBlock, int leftPosition, Block rightBlock, int rightPosition)
{
    if (!elementType.isOrderable()) {
        throw new UnsupportedOperationException(getTypeSignature() + " type is not orderable");
    }

    Block leftArray = leftBlock.getObject(leftPosition, Block.class);
    Block rightArray = rightBlock.getObject(rightPosition, Block.class);

    int len = Math.min(leftArray.getPositionCount(), rightArray.getPositionCount());
    int index = 0;
    while (index < len) {
        checkElementNotNull(leftArray.isNull(index), ARRAY_NULL_ELEMENT_MSG);
        checkElementNotNull(rightArray.isNull(index), ARRAY_NULL_ELEMENT_MSG);
        int comparison = elementType.compareTo(leftArray, index, rightArray, index);
        if (comparison != 0) {
            return comparison;
        }
        index++;
    }

    if (index == len) {
        return leftArray.getPositionCount() - rightArray.getPositionCount();
    }

    return 0;
}
 
开发者ID:y-lan,项目名称:presto,代码行数:29,代码来源:ArrayType.java

示例7: equalTo

import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public boolean equalTo(Block leftBlock, int leftPosition, Block rightBlock, int rightPosition)
{
    Block leftMapBlock = leftBlock.getObject(leftPosition, Block.class);
    Block rightMapBlock = rightBlock.getObject(rightPosition, Block.class);

    if (leftMapBlock.getPositionCount() != rightMapBlock.getPositionCount()) {
        return false;
    }

    Map<KeyWrapper, Integer> wrappedLeftMap = new HashMap<>();
    for (int position = 0; position < leftMapBlock.getPositionCount(); position += 2) {
        wrappedLeftMap.put(new KeyWrapper(keyType, leftMapBlock, position), position + 1);
    }

    for (int position = 0; position < rightMapBlock.getPositionCount(); position += 2) {
        KeyWrapper key = new KeyWrapper(keyType, rightMapBlock, position);
        Integer leftValuePosition = wrappedLeftMap.get(key);
        if (leftValuePosition == null) {
            return false;
        }
        int rightValuePosition = position + 1;
        checkElementNotNull(leftMapBlock.isNull(leftValuePosition), MAP_NULL_ELEMENT_MSG);
        checkElementNotNull(rightMapBlock.isNull(rightValuePosition), MAP_NULL_ELEMENT_MSG);

        if (!valueType.equalTo(leftMapBlock, leftValuePosition, rightMapBlock, rightValuePosition)) {
            return false;
        }
    }
    return true;
}
 
开发者ID:y-lan,项目名称:presto,代码行数:32,代码来源:MapType.java

示例8: 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);
}
 
开发者ID:y-lan,项目名称:presto,代码行数:16,代码来源:MapType.java

示例9: hash

import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public int hash(Block block, int position)
{
    Block arrayBlock = block.getObject(position, Block.class);
    int result = 1;
    for (int i = 0; i < arrayBlock.getPositionCount(); i++) {
        checkElementNotNull(arrayBlock.isNull(i));
        Type elementType = fields.get(i).getType();
        result = 31 * result + elementType.hash(arrayBlock, i);
    }
    return result;
}
 
开发者ID:y-lan,项目名称:presto,代码行数:13,代码来源:RowType.java

示例10: getObject

import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public Block getObject(Block block, int position)
{
    return block.getObject(position, Block.class);
}
 
开发者ID:y-lan,项目名称:presto,代码行数:6,代码来源:ArrayType.java


注:本文中的com.facebook.presto.spi.block.Block.getObject方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。