public JsonPathType() { super(parameterizedTypeName(NAME), JsonPath.class); }
public LikePatternType() { super(parameterizedTypeName(NAME), Regex.class); }
public RegexpType() { super(parameterizedTypeName(NAME), Regex.class); }
public JsonType() { super(parameterizedTypeName(StandardTypes.JSON), Slice.class); }
private UnknownType() { super(parameterizedTypeName(NAME), void.class, 0); }
private ColorType() { super(parameterizedTypeName(NAME), long.class, SIZE_OF_INT); }
public ArrayType(Type elementType) { super(parameterizedTypeName(ARRAY, elementType.getTypeSignature()), Block.class); this.elementType = requireNonNull(elementType, "elementType is null"); }
public FunctionType(List<Type> argumentTypes, Type returnType) { super(parameterizedTypeName(NAME, typeParameters(argumentTypes, returnType)), MethodHandle.class); this.returnType = requireNonNull(returnType, "returnType is null"); this.argumentTypes = ImmutableList.copyOf(requireNonNull(argumentTypes, "argumentTypes is null")); }
@Override public ScalarFunctionImplementation specialize(Map<String, Type> types, int arity, TypeManager typeManager, FunctionRegistry functionRegistry) { Type type = types.get("T"); TypeSignature arrayType = parameterizedTypeName(StandardTypes.ARRAY, type.getTypeSignature()); Signature signature = new Signature(FUNCTION_NAME, SCALAR, VARCHAR_TYPE_SIGNATURE, arrayType, VARCHAR_TYPE_SIGNATURE, VARCHAR_TYPE_SIGNATURE); return specializeArrayJoin(types, functionRegistry, ImmutableList.of(false, false, false), signature, METHOD_HANDLE); } }
@Override public ScalarFunctionImplementation specialize(Map<String, Type> types, int arity, TypeManager typeManager, FunctionRegistry functionRegistry) { Type type = types.get("T"); TypeSignature arrayType = parameterizedTypeName(StandardTypes.ARRAY, type.getTypeSignature()); Signature signature = new Signature(FUNCTION_NAME, SCALAR, VARCHAR_TYPE_SIGNATURE, arrayType, VARCHAR_TYPE_SIGNATURE); return specializeArrayJoin(types, functionRegistry, ImmutableList.of(false, false), signature, METHOD_HANDLE); }
public MapType(Type keyType, Type valueType) { super(parameterizedTypeName(StandardTypes.MAP, keyType.getTypeSignature(), valueType.getTypeSignature()), Block.class); checkArgument(keyType.isComparable(), "key type must be comparable"); this.keyType = keyType; this.valueType = valueType; }