private static SqlScalarFunction distinctOperator() { return makeBinaryOperatorFunctionBuilder(IS_DISTINCT_FROM) .choice(choice -> choice .argumentProperties( valueTypeArgumentProperty(USE_NULL_FLAG), valueTypeArgumentProperty(USE_NULL_FLAG)) .implementation(methodsGroup -> methodsGroup .methods("distinctShortShort", "distinctLongLong"))) .choice(choice -> choice .argumentProperties( valueTypeArgumentProperty(BLOCK_AND_POSITION), valueTypeArgumentProperty(BLOCK_AND_POSITION)) .implementation(methodsGroup -> methodsGroup .methodWithExplicitJavaTypes("distinctBlockPositionLongLong", asList(Optional.of(Slice.class), Optional.of(Slice.class))) .methodWithExplicitJavaTypes("distinctBlockPositionShortShort", asList(Optional.of(long.class), Optional.of(long.class))))) .build(); }
private static SqlScalarFunction distinctOperator() { return makeBinaryOperatorFunctionBuilder(IS_DISTINCT_FROM) .choice(choice -> choice .argumentProperties( valueTypeArgumentProperty(USE_NULL_FLAG), valueTypeArgumentProperty(USE_NULL_FLAG)) .implementation(methodsGroup -> methodsGroup .methods("distinctShortShort", "distinctLongLong"))) .choice(choice -> choice .argumentProperties( valueTypeArgumentProperty(BLOCK_AND_POSITION), valueTypeArgumentProperty(BLOCK_AND_POSITION)) .implementation(methodsGroup -> methodsGroup .methodWithExplicitJavaTypes("distinctBlockPositionLongLong", asList(Optional.of(Slice.class), Optional.of(Slice.class))) .methodWithExplicitJavaTypes("distinctBlockPositionShortShort", asList(Optional.of(long.class), Optional.of(long.class))))) .build(); }
.deterministic(true) .choice(choice -> choice .argumentProperties( valueTypeArgumentProperty(USE_NULL_FLAG), valueTypeArgumentProperty(USE_NULL_FLAG)) .methods("shortShort", "longLong"))) .choice(choice -> choice .argumentProperties( valueTypeArgumentProperty(BLOCK_AND_POSITION), valueTypeArgumentProperty(BLOCK_AND_POSITION))
.deterministic(true) .choice(choice -> choice .argumentProperties( valueTypeArgumentProperty(USE_NULL_FLAG), valueTypeArgumentProperty(USE_NULL_FLAG)) .methods("shortShort", "longLong"))) .choice(choice -> choice .argumentProperties( valueTypeArgumentProperty(BLOCK_AND_POSITION), valueTypeArgumentProperty(BLOCK_AND_POSITION))