Search in sources :

Example 1 with UnknownType

use of io.prestosql.spi.type.UnknownType in project hetu-core by openlookeng.

the class ArrayJoin method specializeArrayJoin.

private static BuiltInScalarFunctionImplementation specializeArrayJoin(Map<String, Type> types, FunctionAndTypeManager functionAndTypeManager, List<Boolean> nullableArguments, MethodHandle methodHandle) {
    Type type = types.get("T");
    List<ArgumentProperty> argumentProperties = nullableArguments.stream().map(nullable -> nullable ? valueTypeArgumentProperty(USE_BOXED_TYPE) : valueTypeArgumentProperty(RETURN_NULL_ON_NULL)).collect(toImmutableList());
    if (type instanceof UnknownType) {
        return new BuiltInScalarFunctionImplementation(false, argumentProperties, methodHandle.bindTo(null), Optional.of(STATE_FACTORY));
    } else {
        try {
            BuiltInScalarFunctionImplementation castFunction = functionAndTypeManager.getBuiltInScalarFunctionImplementation(functionAndTypeManager.lookupCast(CastType.CAST, type.getTypeSignature(), VARCHAR_TYPE_SIGNATURE));
            MethodHandle getter;
            Class<?> elementType = type.getJavaType();
            if (elementType == boolean.class) {
                getter = GET_BOOLEAN;
            } else if (elementType == double.class) {
                getter = GET_DOUBLE;
            } else if (elementType == long.class) {
                getter = GET_LONG;
            } else if (elementType == Slice.class) {
                getter = GET_SLICE;
            } else {
                throw new UnsupportedOperationException("Unsupported type: " + elementType.getName());
            }
            MethodHandle cast = castFunction.getMethodHandle();
            // if the cast doesn't take a ConnectorSession, create an adapter that drops the provided session
            if (cast.type().parameterArray()[0] != ConnectorSession.class) {
                cast = MethodHandles.dropArguments(cast, 0, ConnectorSession.class);
            }
            // Adapt a target cast that takes (ConnectorSession, ?) to one that takes (Block, int, ConnectorSession), which will be invoked by the implementation
            // The first two arguments (Block, int) are filtered through the element type's getXXX method to produce the underlying value that needs to be passed to
            // the cast.
            cast = MethodHandles.permuteArguments(cast, MethodType.methodType(Slice.class, cast.type().parameterArray()[1], cast.type().parameterArray()[0]), 1, 0);
            cast = MethodHandles.dropArguments(cast, 1, int.class);
            cast = MethodHandles.dropArguments(cast, 1, Block.class);
            cast = MethodHandles.foldArguments(cast, getter.bindTo(type));
            MethodHandle target = MethodHandles.insertArguments(methodHandle, 0, cast);
            return new BuiltInScalarFunctionImplementation(false, argumentProperties, target, Optional.of(STATE_FACTORY));
        } catch (PrestoException e) {
            throw new PrestoException(INVALID_FUNCTION_ARGUMENT, String.format("Input type %s not supported", type), e);
        }
    }
}
Also used : BuiltInScalarFunctionImplementation(io.prestosql.spi.function.BuiltInScalarFunctionImplementation) UnknownType(io.prestosql.spi.type.UnknownType) MethodHandle(java.lang.invoke.MethodHandle) Slice(io.airlift.slice.Slice) FunctionKind(io.prestosql.spi.function.FunctionKind) StandardTypes(io.prestosql.spi.type.StandardTypes) ArgumentProperty(io.prestosql.spi.function.BuiltInScalarFunctionImplementation.ArgumentProperty) INVALID_FUNCTION_ARGUMENT(io.prestosql.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT) BoundVariables(io.prestosql.metadata.BoundVariables) DEFAULT_NAMESPACE(io.prestosql.spi.connector.CatalogSchemaName.DEFAULT_NAMESPACE) USE_BOXED_TYPE(io.prestosql.spi.function.BuiltInScalarFunctionImplementation.NullConvention.USE_BOXED_TYPE) UsedByGeneratedCode(io.prestosql.spi.annotation.UsedByGeneratedCode) QualifiedObjectName(io.prestosql.spi.connector.QualifiedObjectName) TypeSignature.parseTypeSignature(io.prestosql.spi.type.TypeSignature.parseTypeSignature) VARCHAR(io.prestosql.spi.type.VarcharType.VARCHAR) ImmutableList(com.google.common.collect.ImmutableList) ConnectorSession(io.prestosql.spi.connector.ConnectorSession) Map(java.util.Map) RETURN_NULL_ON_NULL(io.prestosql.spi.function.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL) Type(io.prestosql.spi.type.Type) Signature(io.prestosql.spi.function.Signature) Block(io.prestosql.spi.block.Block) PrestoException(io.prestosql.spi.PrestoException) CastType(io.prestosql.metadata.CastType) SqlScalarFunction(io.prestosql.metadata.SqlScalarFunction) BlockBuilder(io.prestosql.spi.block.BlockBuilder) MethodHandles(java.lang.invoke.MethodHandles) ImmutableList.toImmutableList(com.google.common.collect.ImmutableList.toImmutableList) Reflection.methodHandle(io.prestosql.spi.util.Reflection.methodHandle) PageBuilder(io.prestosql.spi.PageBuilder) Signature.typeVariable(io.prestosql.spi.function.Signature.typeVariable) List(java.util.List) MethodType(java.lang.invoke.MethodType) GENERIC_INTERNAL_ERROR(io.prestosql.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR) ArgumentProperty.valueTypeArgumentProperty(io.prestosql.spi.function.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty) Optional(java.util.Optional) TypeSignature(io.prestosql.spi.type.TypeSignature) FunctionAndTypeManager(io.prestosql.metadata.FunctionAndTypeManager) ArgumentProperty(io.prestosql.spi.function.BuiltInScalarFunctionImplementation.ArgumentProperty) ArgumentProperty.valueTypeArgumentProperty(io.prestosql.spi.function.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty) BuiltInScalarFunctionImplementation(io.prestosql.spi.function.BuiltInScalarFunctionImplementation) PrestoException(io.prestosql.spi.PrestoException) UnknownType(io.prestosql.spi.type.UnknownType) UnknownType(io.prestosql.spi.type.UnknownType) Type(io.prestosql.spi.type.Type) CastType(io.prestosql.metadata.CastType) MethodType(java.lang.invoke.MethodType) Slice(io.airlift.slice.Slice) Block(io.prestosql.spi.block.Block) ConnectorSession(io.prestosql.spi.connector.ConnectorSession) MethodHandle(java.lang.invoke.MethodHandle)

Example 2 with UnknownType

use of io.prestosql.spi.type.UnknownType in project hetu-core by openlookeng.

the class AbstractTestType method createAlternatingNullsBlock.

private Block createAlternatingNullsBlock(Block testBlock) {
    BlockBuilder nullsBlockBuilder = type.createBlockBuilder(null, testBlock.getPositionCount());
    for (int position = 0; position < testBlock.getPositionCount(); position++) {
        if (testBlock.isNull(position)) {
            checkState(type instanceof UnknownType);
            nullsBlockBuilder.appendNull();
        } else if (type.getJavaType() == boolean.class) {
            type.writeBoolean(nullsBlockBuilder, type.getBoolean(testBlock, position));
        } else if (type.getJavaType() == long.class) {
            type.writeLong(nullsBlockBuilder, type.getLong(testBlock, position));
        } else if (type.getJavaType() == double.class) {
            type.writeDouble(nullsBlockBuilder, type.getDouble(testBlock, position));
        } else if (type.getJavaType() == Slice.class) {
            Slice slice = type.getSlice(testBlock, position);
            type.writeSlice(nullsBlockBuilder, slice, 0, slice.length());
        } else {
            type.writeObject(nullsBlockBuilder, type.getObject(testBlock, position));
        }
        nullsBlockBuilder.appendNull();
    }
    return nullsBlockBuilder.build();
}
Also used : UnknownType(io.prestosql.spi.type.UnknownType) Slice(io.airlift.slice.Slice) BlockBuilder(io.prestosql.spi.block.BlockBuilder)

Example 3 with UnknownType

use of io.prestosql.spi.type.UnknownType in project hetu-core by openlookeng.

the class AbstractTestType method assertPositionValue.

private void assertPositionValue(Block block, int position, Object expectedStackValue, long expectedHash, Object expectedObjectValue) {
    Object objectValue = type.getObjectValue(SESSION, block, position);
    assertEquals(objectValue, expectedObjectValue);
    if (objectValue != null) {
        assertInstanceOf(objectValue, objectValueType);
    }
    if (type.isComparable()) {
        assertEquals(hashPosition(type, block, position), expectedHash);
    } else {
        try {
            type.hash(block, position);
            fail("Expected UnsupportedOperationException");
        } catch (UnsupportedOperationException expected) {
        // the exception could be ignored
        }
    }
    Block expectedBlock = createBlock(type, expectedStackValue);
    if (type.isComparable()) {
        assertTrue(positionEqualsPosition(type, block, position, block, position));
        assertTrue(positionEqualsPosition(type, block, position, expectedBlock, 0));
        assertTrue(positionEqualsPosition(type, expectedBlock, 0, block, position));
    }
    assertEquals(block.isNull(position), expectedStackValue == null);
    if (type.isOrderable()) {
        assertTrue(ASC_NULLS_FIRST.compareBlockValue(type, block, position, expectedBlock, 0) == 0);
        assertTrue(ASC_NULLS_LAST.compareBlockValue(type, block, position, expectedBlock, 0) == 0);
        assertTrue(DESC_NULLS_FIRST.compareBlockValue(type, block, position, expectedBlock, 0) == 0);
        assertTrue(DESC_NULLS_LAST.compareBlockValue(type, block, position, expectedBlock, 0) == 0);
    } else {
        try {
            type.compareTo(block, position, expectedBlock, 0);
            fail("Expected UnsupportedOperationException");
        } catch (UnsupportedOperationException expected) {
        // the exception could be ignored
        }
    }
    verifyInvalidPositionHandling(block);
    if (block.isNull(position)) {
        if (type.isOrderable() && !(type instanceof UnknownType)) {
            Block nonNullValue = toBlock(getNonNullValue());
            assertTrue(ASC_NULLS_FIRST.compareBlockValue(type, block, position, nonNullValue, 0) < 0);
            assertTrue(ASC_NULLS_LAST.compareBlockValue(type, block, position, nonNullValue, 0) > 0);
            assertTrue(DESC_NULLS_FIRST.compareBlockValue(type, block, position, nonNullValue, 0) < 0);
            assertTrue(DESC_NULLS_LAST.compareBlockValue(type, block, position, nonNullValue, 0) > 0);
        }
        return;
    }
    if (type.isOrderable() && expectedStackValue != Boolean.TRUE) {
        Block greaterValue = toBlock(getGreaterValue(expectedStackValue));
        assertTrue(ASC_NULLS_FIRST.compareBlockValue(type, block, position, greaterValue, 0) < 0);
        assertTrue(ASC_NULLS_LAST.compareBlockValue(type, block, position, greaterValue, 0) < 0);
        assertTrue(DESC_NULLS_FIRST.compareBlockValue(type, block, position, greaterValue, 0) > 0);
        assertTrue(DESC_NULLS_LAST.compareBlockValue(type, block, position, greaterValue, 0) > 0);
    }
    if (type.getJavaType() == boolean.class) {
        assertEquals(type.getBoolean(block, position), expectedStackValue);
        try {
            type.getLong(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getDouble(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getObject(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
    } else if (type.getJavaType() == long.class) {
        assertEquals(type.getLong(block, position), expectedStackValue);
        try {
            type.getBoolean(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getDouble(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getObject(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
    } else if (type.getJavaType() == double.class) {
        assertEquals(type.getDouble(block, position), expectedStackValue);
        try {
            type.getBoolean(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getLong(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getObject(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
    } else if (type.getJavaType() == Slice.class) {
        assertEquals(type.getSlice(block, position), expectedStackValue);
        try {
            type.getBoolean(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getLong(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getDouble(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getObject(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
    } else {
        SliceOutput actualSliceOutput = new DynamicSliceOutput(100);
        writeBlock(blockEncodingSerde, actualSliceOutput, (Block) type.getObject(block, position));
        SliceOutput expectedSliceOutput = new DynamicSliceOutput(actualSliceOutput.size());
        writeBlock(blockEncodingSerde, expectedSliceOutput, (Block) expectedStackValue);
        assertEquals(actualSliceOutput.slice(), expectedSliceOutput.slice());
        try {
            type.getBoolean(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getLong(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getDouble(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
        try {
            type.getSlice(block, position);
            fail("Expected IllegalStateException or UnsupportedOperationException");
        } catch (IllegalStateException | UnsupportedOperationException expected) {
        // the exception could be ignored
        }
    }
}
Also used : UnknownType(io.prestosql.spi.type.UnknownType) SliceOutput(io.airlift.slice.SliceOutput) DynamicSliceOutput(io.airlift.slice.DynamicSliceOutput) Slice(io.airlift.slice.Slice) BlockSerdeUtil.writeBlock(io.hetu.core.transport.block.BlockSerdeUtil.writeBlock) Block(io.prestosql.spi.block.Block) DynamicSliceOutput(io.airlift.slice.DynamicSliceOutput)

Example 4 with UnknownType

use of io.prestosql.spi.type.UnknownType in project hetu-core by openlookeng.

the class AbstractTestType method verifyInvalidPositionHandling.

private void verifyInvalidPositionHandling(Block block) {
    try {
        type.getObjectValue(SESSION, block, -1);
        fail("expected RuntimeException");
    } catch (RuntimeException expected) {
    // the exception could be ignored
    }
    try {
        type.getObjectValue(SESSION, block, block.getPositionCount());
        fail("expected RuntimeException");
    } catch (RuntimeException expected) {
    // the exception could be ignored
    }
    try {
        type.hash(block, -1);
        fail("expected RuntimeException");
    } catch (RuntimeException expected) {
    // the exception could be ignored
    }
    try {
        type.hash(block, block.getPositionCount());
        fail("expected RuntimeException");
    } catch (RuntimeException expected) {
    // the exception could be ignored
    }
    if (type.isComparable() && !(type instanceof UnknownType)) {
        Block other = toBlock(getNonNullValue());
        try {
            type.equalTo(block, -1, other, 0);
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        // the exception could be ignored
        }
        try {
            type.equalTo(block, block.getPositionCount(), other, 0);
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        // the exception could be ignored
        }
    }
    if (type.isOrderable() && !(type instanceof UnknownType)) {
        Block other = toBlock(getNonNullValue());
        try {
            ASC_NULLS_FIRST.compareBlockValue(type, block, -1, other, 0);
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        }
        try {
            ASC_NULLS_FIRST.compareBlockValue(type, block, block.getPositionCount(), other, 0);
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        // the exception could be ignored
        }
    }
    if (type.getJavaType() == boolean.class) {
        try {
            type.getBoolean(block, -1);
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        // the exception could be ignored
        }
        try {
            type.getBoolean(block, block.getPositionCount());
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        // the exception could be ignored
        }
    } else if (type.getJavaType() == long.class) {
        try {
            type.getLong(block, -1);
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        // the exception could be ignored
        }
        try {
            type.getLong(block, block.getPositionCount());
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        // the exception could be ignored
        }
    } else if (type.getJavaType() == double.class) {
        try {
            type.getDouble(block, -1);
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        // the exception could be ignored
        }
        try {
            type.getDouble(block, block.getPositionCount());
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        // the exception could be ignored
        }
    } else if (type.getJavaType() == Slice.class) {
        try {
            type.getSlice(block, -1);
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        // the exception could be ignored
        }
        try {
            type.getSlice(block, block.getPositionCount());
            fail("expected RuntimeException");
        } catch (RuntimeException expected) {
        // the exception could be ignored
        }
    }
}
Also used : UnknownType(io.prestosql.spi.type.UnknownType) Slice(io.airlift.slice.Slice) BlockSerdeUtil.writeBlock(io.hetu.core.transport.block.BlockSerdeUtil.writeBlock) Block(io.prestosql.spi.block.Block)

Example 5 with UnknownType

use of io.prestosql.spi.type.UnknownType in project hetu-core by openlookeng.

the class TestTypeUtil method testParseType.

@Test
public void testParseType() {
    Type type = parseType(typeManager, "bigint");
    assertTrue(type instanceof BigintType);
    type = parseType(typeManager, "integer");
    assertTrue(type instanceof IntegerType);
    type = parseType(typeManager, "smallint");
    assertTrue(type instanceof SmallintType);
    type = parseType(typeManager, "boolean");
    assertTrue(type instanceof BooleanType);
    type = parseType(typeManager, "date");
    assertTrue(type instanceof DateType);
    type = parseType(typeManager, "real");
    assertTrue(type instanceof RealType);
    type = parseType(typeManager, "double");
    assertTrue(type instanceof DoubleType);
    type = parseType(typeManager, "HyperLogLog");
    assertTrue(type instanceof HyperLogLogType);
    type = parseType(typeManager, "P4HyperLogLog");
    assertTrue(type instanceof P4HyperLogLogType);
    type = parseType(typeManager, "timestamp");
    assertTrue(type instanceof TimestampType);
    type = parseType(typeManager, "timestamp with time zone");
    assertTrue(type instanceof TimestampWithTimeZoneType);
    type = parseType(typeManager, "time");
    assertTrue(type instanceof TimeType);
    type = parseType(typeManager, "time with time zone");
    assertTrue(type instanceof TimeWithTimeZoneType);
    type = parseType(typeManager, "varbinary");
    assertTrue(type instanceof VarbinaryType);
    type = parseType(typeManager, "unknown");
    assertTrue(type instanceof UnknownType);
}
Also used : BooleanType(io.prestosql.spi.type.BooleanType) P4HyperLogLogType(io.prestosql.spi.type.P4HyperLogLogType) TimeWithTimeZoneType(io.prestosql.spi.type.TimeWithTimeZoneType) RealType(io.prestosql.spi.type.RealType) BigintType(io.prestosql.spi.type.BigintType) TimeType(io.prestosql.spi.type.TimeType) IntegerType(io.prestosql.spi.type.IntegerType) UnknownType(io.prestosql.spi.type.UnknownType) BigintType(io.prestosql.spi.type.BigintType) UnknownType(io.prestosql.spi.type.UnknownType) CharType(io.prestosql.spi.type.CharType) DecimalType(io.prestosql.spi.type.DecimalType) HyperLogLogType(io.prestosql.spi.type.HyperLogLogType) DoubleType(io.prestosql.spi.type.DoubleType) P4HyperLogLogType(io.prestosql.spi.type.P4HyperLogLogType) RowType(io.prestosql.spi.type.RowType) TimestampWithTimeZoneType(io.prestosql.spi.type.TimestampWithTimeZoneType) Type(io.prestosql.spi.type.Type) SmallintType(io.prestosql.spi.type.SmallintType) TimeWithTimeZoneType(io.prestosql.spi.type.TimeWithTimeZoneType) IntegerType(io.prestosql.spi.type.IntegerType) TimeType(io.prestosql.spi.type.TimeType) RealType(io.prestosql.spi.type.RealType) ArrayType(io.prestosql.spi.type.ArrayType) VarbinaryType(io.prestosql.spi.type.VarbinaryType) TimestampType(io.prestosql.spi.type.TimestampType) DateType(io.prestosql.spi.type.DateType) BooleanType(io.prestosql.spi.type.BooleanType) TypeUtil.parseType(io.prestosql.client.util.TypeUtil.parseType) VarcharType(io.prestosql.spi.type.VarcharType) HyperLogLogType(io.prestosql.spi.type.HyperLogLogType) P4HyperLogLogType(io.prestosql.spi.type.P4HyperLogLogType) VarbinaryType(io.prestosql.spi.type.VarbinaryType) DoubleType(io.prestosql.spi.type.DoubleType) TimestampWithTimeZoneType(io.prestosql.spi.type.TimestampWithTimeZoneType) TimestampType(io.prestosql.spi.type.TimestampType) SmallintType(io.prestosql.spi.type.SmallintType) DateType(io.prestosql.spi.type.DateType) Test(org.testng.annotations.Test)

Aggregations

UnknownType (io.prestosql.spi.type.UnknownType)5 Slice (io.airlift.slice.Slice)4 Block (io.prestosql.spi.block.Block)3 BlockSerdeUtil.writeBlock (io.hetu.core.transport.block.BlockSerdeUtil.writeBlock)2 BlockBuilder (io.prestosql.spi.block.BlockBuilder)2 Type (io.prestosql.spi.type.Type)2 ImmutableList (com.google.common.collect.ImmutableList)1 ImmutableList.toImmutableList (com.google.common.collect.ImmutableList.toImmutableList)1 DynamicSliceOutput (io.airlift.slice.DynamicSliceOutput)1 SliceOutput (io.airlift.slice.SliceOutput)1 TypeUtil.parseType (io.prestosql.client.util.TypeUtil.parseType)1 BoundVariables (io.prestosql.metadata.BoundVariables)1 CastType (io.prestosql.metadata.CastType)1 FunctionAndTypeManager (io.prestosql.metadata.FunctionAndTypeManager)1 SqlScalarFunction (io.prestosql.metadata.SqlScalarFunction)1 PageBuilder (io.prestosql.spi.PageBuilder)1 PrestoException (io.prestosql.spi.PrestoException)1 GENERIC_INTERNAL_ERROR (io.prestosql.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR)1 INVALID_FUNCTION_ARGUMENT (io.prestosql.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT)1 UsedByGeneratedCode (io.prestosql.spi.annotation.UsedByGeneratedCode)1