本文整理汇总了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;
}
示例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);
}
示例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;
}
示例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);
}
示例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));
}
示例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;
}
示例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;
}
示例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);
}
示例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;
}
示例10: getObject
import com.facebook.presto.spi.block.Block; //导入方法依赖的package包/类
@Override
public Block getObject(Block block, int position)
{
return block.getObject(position, Block.class);
}