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


Java Type.getSlice方法代码示例

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


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

示例1: getNativeContainerValue

import com.facebook.presto.spi.type.Type; //导入方法依赖的package包/类
private static Object getNativeContainerValue(Type type, Block block, int position)
{
    if (block.isNull(position)) {
        return null;
    }
    else if (type.getJavaType() == boolean.class) {
        return type.getBoolean(block, position);
    }
    else if (type.getJavaType() == long.class) {
        return type.getLong(block, position);
    }
    else if (type.getJavaType() == double.class) {
        return type.getDouble(block, position);
    }
    else if (type.getJavaType() == Slice.class) {
        return type.getSlice(block, position);
    }
    else if (type.getJavaType() == Block.class) {
        return type.getObject(block, position);
    }
    else {
        throw new AssertionError("Unimplemented type: " + type);
    }
}
 
开发者ID:y-lan,项目名称:presto,代码行数:25,代码来源:Row.java

示例2: arrayPosition

import com.facebook.presto.spi.type.Type; //导入方法依赖的package包/类
@UsedByGeneratedCode
public static long arrayPosition(Type type, MethodHandle equalMethodHandle, Block array, Slice element)
{
    int size = array.getPositionCount();
    for (int i = 0; i < size; i++) {
        if (!array.isNull(i)) {
            Slice arrayValue = type.getSlice(array, i);
            try {
                if ((boolean) equalMethodHandle.invokeExact(arrayValue, element)) {
                    return i + 1; // result is 1-based (instead of 0)
                }
            }
            catch (Throwable t) {
                Throwables.propagateIfInstanceOf(t, Error.class);
                Throwables.propagateIfInstanceOf(t, PrestoException.class);
                throw new PrestoException(INTERNAL_ERROR, t);
            }
        }
    }
    return 0;
}
 
开发者ID:y-lan,项目名称:presto,代码行数:22,代码来源:ArrayPositionFunction.java

示例3: indexString

import com.facebook.presto.spi.type.Type; //导入方法依赖的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);
}
 
开发者ID:y-lan,项目名称:presto,代码行数:37,代码来源:ShardStats.java

示例4: getSlice

import com.facebook.presto.spi.type.Type; //导入方法依赖的package包/类
@Override
public Slice getSlice(int field)
{
    checkState(position >= 0, "Not yet advanced");
    checkState(position < page.getPositionCount(), "Already finished");
    Type type = types.get(field);
    return type.getSlice(page.getBlock(field), position);
}
 
开发者ID:y-lan,项目名称:presto,代码行数:9,代码来源:PageRecordSet.java

示例5: sliceArrayMinMax

import com.facebook.presto.spi.type.Type; //导入方法依赖的package包/类
@UsedByGeneratedCode
public static Slice sliceArrayMinMax(MethodHandle compareMethodHandle, Type elementType, Block block)
{
    try {
        if (block.getPositionCount() == 0) {
            return null;
        }

        Slice selectedValue = elementType.getSlice(block, 0);
        for (int i = 0; i < block.getPositionCount(); i++) {
            if (block.isNull(i)) {
                return null;
            }
            Slice value = elementType.getSlice(block, i);
            if ((boolean) compareMethodHandle.invokeExact(value, selectedValue)) {
                selectedValue = value;
            }
        }

        return selectedValue;
    }
    catch (Throwable t) {
        propagateIfInstanceOf(t, Error.class);
        propagateIfInstanceOf(t, PrestoException.class);
        throw new PrestoException(INTERNAL_ERROR, t);
    }
}
 
开发者ID:y-lan,项目名称:presto,代码行数:28,代码来源:AbstractArrayMinMaxFunction.java

示例6: sliceElementAt

import com.facebook.presto.spi.type.Type; //导入方法依赖的package包/类
public static Slice sliceElementAt(Type elementType, Block array, long index)
{
    int position = checkedIndexToBlockPosition(array, index);
    if (array.isNull(position)) {
        return null;
    }

    return elementType.getSlice(array, position);
}
 
开发者ID:y-lan,项目名称:presto,代码行数:10,代码来源:ArrayElementAtFunction.java

示例7: sliceSubscript

import com.facebook.presto.spi.type.Type; //导入方法依赖的package包/类
@UsedByGeneratedCode
public static Slice sliceSubscript(Type elementType, Block array, long index)
{
    checkIndex(array, index);
    int position = Ints.checkedCast(index - 1);
    if (array.isNull(position)) {
        return null;
    }

    return elementType.getSlice(array, position);
}
 
开发者ID:y-lan,项目名称:presto,代码行数:12,代码来源:ArraySubscriptOperator.java

示例8: sliceAccessor

import com.facebook.presto.spi.type.Type; //导入方法依赖的package包/类
@UsedByGeneratedCode
public static Slice sliceAccessor(Type type, Integer field, Block row)
{
    return row.isNull(field) ? null : type.getSlice(row, field);
}
 
开发者ID:y-lan,项目名称:presto,代码行数:6,代码来源:RowFieldReference.java


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