@ScalarOperator(MULTIPLY)
    @SqlType(StandardTypes.INTEGER)
    public static long multiply(@SqlType(StandardTypes.INTEGER) long left, @SqlType(StandardTypes.INTEGER) long right)
    {
        try {
            return Math.multiplyExact((int) left, (int) right);
        }
        catch (ArithmeticException e) {
            throw new PrestoException(NUMERIC_VALUE_OUT_OF_RANGE, format("integer multiplication overflow: %s * %s", left, right), e);
        }
    }
@Test
    public void testMultiply()
    {
        assertFunction("INTEGER'37' * INTEGER'37'", INTEGER, 37 * 37);
        assertFunction("INTEGER'37' * INTEGER'17'", INTEGER, 37 * 17);
        assertFunction("INTEGER'17' * INTEGER'37'", INTEGER, 17 * 37);
        assertFunction("INTEGER'17' * INTEGER'17'", INTEGER, 17 * 17);
        assertNumericOverflow(format("INTEGER'%s' * INTEGER'2'", Integer.MAX_VALUE), "integer multiplication overflow: 2147483647 * 2");
    }