.build();
assertThat(loop)
.boundTo("integer", new TypeSignatureProvider(paramTypes -> new FunctionType(paramTypes, BIGINT).getTypeSignature()))
.fails();
assertThat(loop)
.boundTo("integer", new TypeSignatureProvider(paramTypes -> new FunctionType(paramTypes, BIGINT).getTypeSignature()))
.withCoercion()
.produces(BoundVariables.builder()
.boundTo("integer", new TypeSignatureProvider(paramTypes -> new FunctionType(paramTypes, SMALLINT).getTypeSignature()))
.fails();
assertThat(varcharApply)
.withCoercion()
.boundTo("varchar(10)", new TypeSignatureProvider(paramTypes -> new FunctionType(paramTypes, createVarcharType(1)).getTypeSignature()))
.succeeds();
.build();
assertThat(sortByKey)
.boundTo("array(integer)", new TypeSignatureProvider(paramTypes -> new FunctionType(paramTypes, VARCHAR).getTypeSignature()))
.produces(BoundVariables.builder()
.setTypeVariable("T", INTEGER)