@ScalarOperator(MULTIPLY) @SqlType(StandardTypes.REAL) public static long multiply(@SqlType(StandardTypes.REAL) long left, @SqlType(StandardTypes.REAL) long right) { return floatToRawIntBits(intBitsToFloat((int) left) * intBitsToFloat((int) right)); }
@ScalarOperator(CAST) @SqlType(StandardTypes.HYPER_LOG_LOG) public static Slice castFromP4Hll(@SqlType(StandardTypes.P4_HYPER_LOG_LOG) Slice slice) { return slice; } }
@ScalarOperator(CAST) @SqlType(StandardTypes.BOOLEAN) public static boolean castToBoolean(@SqlType(StandardTypes.BIGINT) long value) { return value != 0; }
@ScalarOperator(NEGATION) @SqlType(StandardTypes.DOUBLE) public static double negate(@SqlType(StandardTypes.DOUBLE) double value) { return -value; }
@ScalarOperator(CAST) @SqlType(StandardTypes.BOOLEAN) public static boolean castToBoolean(@SqlType(StandardTypes.DOUBLE) double value) { return value != 0; }
@ScalarOperator(CAST) @SqlType(StandardTypes.BOOLEAN) public static boolean castToBoolean(@SqlType(StandardTypes.INTEGER) long value) { return value != 0; }
@ScalarOperator(CAST) @SqlType(StandardTypes.BOOLEAN) public static boolean castToBoolean(@SqlType(StandardTypes.TINYINT) long value) { return value != 0; }
@ScalarOperator(GREATER_THAN_OR_EQUAL) @SqlType(StandardTypes.BOOLEAN) public static boolean greaterThanOrEqual(@SqlType(StandardTypes.REAL) long left, @SqlType(StandardTypes.REAL) long right) { return intBitsToFloat((int) left) >= intBitsToFloat((int) right); }
@ScalarOperator(CAST) @SqlType(StandardTypes.SMALLINT) public static long castToSmallint(@SqlType(StandardTypes.BOOLEAN) boolean value) { return value ? 1 : 0; }
@ScalarOperator(HASH_CODE) @SqlType(StandardTypes.BIGINT) public static long hashCode(@SqlType(StandardTypes.BOOLEAN) boolean value) { return value ? 1231 : 1237; }
@ScalarOperator(CAST) @SqlType(StandardTypes.VARBINARY) public static Slice castToBinaryReal(@SqlType("qdigest(real)") Slice slice) { return slice; }
@ScalarOperator(CAST) @SqlType(StandardTypes.BIGINT) public static long castToBigint(@SqlType(StandardTypes.BOOLEAN) boolean value) { return value ? 1 : 0; }
@ScalarOperator(NOT_EQUAL) @SqlType(StandardTypes.BOOLEAN) public static boolean notEqual(@SqlType("unknown") boolean left, @SqlType("unknown") boolean right) { throw new AssertionError("value of unknown type should all be NULL"); }
@ScalarOperator(ADD) @SqlType(StandardTypes.DATE) public static long datePlusIntervalYearToMonth(@SqlType(StandardTypes.DATE) long left, @SqlType(StandardTypes.INTERVAL_YEAR_TO_MONTH) long right) { long millis = MONTH_OF_YEAR_UTC.add(TimeUnit.DAYS.toMillis(left), right); return TimeUnit.MILLISECONDS.toDays(millis); }
@ScalarOperator(SUBTRACT) @SqlType(StandardTypes.DATE) public static long dateMinusIntervalYearToMonth(ConnectorSession session, @SqlType(StandardTypes.DATE) long left, @SqlType(StandardTypes.INTERVAL_YEAR_TO_MONTH) long right) { long millis = MONTH_OF_YEAR_UTC.add(TimeUnit.DAYS.toMillis(left), -right); return TimeUnit.MILLISECONDS.toDays(millis); }
@ScalarOperator(NOT_EQUAL) @SqlType(StandardTypes.BOOLEAN) @SqlNullable public static Boolean notEqual(@SqlType(StandardTypes.REAL) long left, @SqlType(StandardTypes.REAL) long right) { return intBitsToFloat((int) left) != intBitsToFloat((int) right); }
@ScalarOperator(HASH_CODE) @SqlType(StandardTypes.BIGINT) public static long hashCode(@SqlType(StandardTypes.TIMESTAMP) long value) { return AbstractLongType.hash(value); }
@ScalarOperator(HASH_CODE) @SqlType(StandardTypes.BIGINT) public static long hashCode(@SqlType(StandardTypes.DATE) long value) { return AbstractIntType.hash((int) value); }
@ScalarOperator(LESS_THAN) @SqlType(StandardTypes.BOOLEAN) public static boolean lessThan(@SqlType(StandardTypes.DATE) long left, @SqlType(StandardTypes.DATE) long right) { return left < right; }
@ScalarOperator(HASH_CODE) @SqlType(StandardTypes.BIGINT) public static long hashCode(@SqlType(BingTileType.NAME) long value) { return AbstractLongType.hash(value); } }