@ScalarOperator(EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean equal(@SqlType(StandardTypes.REAL) long left, @SqlType(StandardTypes.REAL) long right) { return intBitsToFloat((int) left) == intBitsToFloat((int) right); }
@ScalarOperator(EQUAL) @SuppressWarnings("FloatingPointEquality") @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean equal(@SqlType(StandardTypes.DOUBLE) double left, @SqlType(StandardTypes.DOUBLE) double right) { return left == right; }
@ScalarOperator(NOT_EQUAL) @SuppressWarnings("FloatingPointEquality") @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean notEqual(@SqlType(StandardTypes.DOUBLE) double left, @SqlType(StandardTypes.DOUBLE) double right) { return left != right; }
@ScalarOperator(EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean equal(@SqlType(StandardTypes.INTERVAL_DAY_TO_SECOND) long left, @SqlType(StandardTypes.INTERVAL_DAY_TO_SECOND) long right) { return left == right; }
@ScalarOperator(EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean equal(@SqlType(StandardTypes.DATE) long left, @SqlType(StandardTypes.DATE) long right) { return left == right; }
@ScalarOperator(EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean equal(@SqlType(ColorType.NAME) long left, @SqlType(ColorType.NAME) long right) { return left == right; }
@ScalarOperator(NOT_EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean notEqual(@SqlType(ColorType.NAME) long left, @SqlType(ColorType.NAME) long right) { return left != right; }
@ScalarOperator(EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean equal(@SqlType(StandardTypes.SMALLINT) long left, @SqlType(StandardTypes.SMALLINT) long right) { return left == right; }
@ScalarOperator(NOT_EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean notEqual(@SqlType(StandardTypes.SMALLINT) long left, @SqlType(StandardTypes.SMALLINT) long right) { return left != right; }
@ScalarOperator(EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean equal(@SqlType(StandardTypes.BIGINT) long left, @SqlType(StandardTypes.BIGINT) long right) { return left == right; }
@ScalarOperator(EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean equal(@SqlType(StandardTypes.TIME) long left, @SqlType(StandardTypes.TIME) long right) { return left == right; }
@ScalarOperator(EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean equal(@SqlType(StandardTypes.BOOLEAN) boolean left, @SqlType(StandardTypes.BOOLEAN) boolean right) { return left == right; }
@ScalarOperator(NOT_EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean notEqual(@SqlType(StandardTypes.IPADDRESS) Slice left, @SqlType(StandardTypes.IPADDRESS) Slice right) { return !left.equals(right); }
@SqlNullable @SqlType(StandardTypes.BOOLEAN) public Boolean arraysOverlapInt( @OperatorDependency(operator = LESS_THAN, returnType = StandardTypes.BOOLEAN, argumentTypes = {"integer", "integer"}) MethodHandle lessThanFunction, @SqlType("array(integer)") Block leftArray, @SqlType("array(integer)") Block rightArray) { return genericArraysOverlap(leftArray, rightArray, INTEGER); }
@SqlNullable @Description("extract protocol from url") @ScalarFunction @LiteralParameters("x") @SqlType("varchar(x)") public static Slice urlExtractProtocol(@SqlType("varchar(x)") Slice url) { URI uri = parseUrl(url); return (uri == null) ? null : slice(uri.getScheme()); }
@SqlNullable @Description("extract part from url") @ScalarFunction @LiteralParameters("x") @SqlType("varchar(x)") public static Slice urlExtractPath(@SqlType("varchar(x)") Slice url) { URI uri = parseUrl(url); return (uri == null) ? null : slice(uri.getPath()); }
@ScalarOperator(NOT_EQUAL) @SqlType(BOOLEAN) @SqlNullable public static Boolean notEqual(@SqlType(JSON) Slice leftJson, @SqlType(JSON) Slice rightJson) { return !leftJson.equals(rightJson); }
@SqlNullable @Description("extract host from url") @ScalarFunction @LiteralParameters("x") @SqlType("varchar(x)") public static Slice urlExtractHost(@SqlType("varchar(x)") Slice url) { URI uri = parseUrl(url); return (uri == null) ? null : slice(uri.getHost()); }
@SqlNullable @Description("extract fragment from url") @ScalarFunction @LiteralParameters("x") @SqlType("varchar(x)") public static Slice urlExtractFragment(@SqlType("varchar(x)") Slice url) { URI uri = parseUrl(url); return (uri == null) ? null : slice(uri.getFragment()); }
@TypeParameter("T") @SqlType(StandardTypes.VARCHAR) public static Slice typeof( @TypeParameter("T") Type type, @SqlNullable @SqlType("T") Long value) { return typeof(type, (Object) value); }