### Question:
TinyintOperators { @ScalarOperator(MULTIPLY) @SqlType(StandardTypes.TINYINT) public static long multiply(@SqlType(StandardTypes.TINYINT) long left, @SqlType(StandardTypes.TINYINT) long right) { try { return SignedBytes.checkedCast(left * right); } catch (IllegalArgumentException e) { throw new PrestoException(NUMERIC_VALUE_OUT_OF_RANGE, format("tinyint multiplication overflow: %s * %s", left, right), e); } } private  TinyintOperators(); @ScalarOperator(ADD) @SqlType(StandardTypes.TINYINT) static long add(@SqlType(StandardTypes.TINYINT) long left, @SqlType(StandardTypes.TINYINT) long right); @ScalarOperator(SUBTRACT) @SqlType(StandardTypes.TINYINT) static long subtract(@SqlType(StandardTypes.TINYINT) long left, @SqlType(StandardTypes.TINYINT) long right); @ScalarOperator(MULTIPLY) @SqlType(StandardTypes.TINYINT) static long multiply(@SqlType(StandardTypes.TINYINT) long left, @SqlType(StandardTypes.TINYINT) long right); @ScalarOperator(DIVIDE) @SqlType(StandardTypes.TINYINT) static long divide(@SqlType(StandardTypes.TINYINT) long left, @SqlType(StandardTypes.TINYINT) long right); @ScalarOperator(MODULUS) @SqlType(StandardTypes.TINYINT) static long modulus(@SqlType(StandardTypes.TINYINT) long left, @SqlType(StandardTypes.TINYINT) long right); @ScalarOperator(NEGATION) @SqlType(StandardTypes.TINYINT) static long negate(@SqlType(StandardTypes.TINYINT) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.BIGINT) static long castToBigint(@SqlType(StandardTypes.TINYINT) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.INTEGER) static long castToInteger(@SqlType(StandardTypes.TINYINT) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.SMALLINT) static long castToSmallint(@SqlType(StandardTypes.TINYINT) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.BOOLEAN) static boolean castToBoolean(@SqlType(StandardTypes.TINYINT) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.DOUBLE) static double castToDouble(@SqlType(StandardTypes.TINYINT) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.REAL) static long castToReal(@SqlType(StandardTypes.TINYINT) long value); @ScalarOperator(CAST) @LiteralParameters("x") @SqlType("varchar(x)") static Slice castToVarchar(@SqlType(StandardTypes.TINYINT) long value);  }### Answer:
@Test public void testMultiply() { assertFunction("TINYINT'11' * TINYINT'11'", TINYINT, (byte) (11 * 11)); assertFunction("TINYINT'11' * TINYINT'9'", TINYINT, (byte) (11 * 9)); assertFunction("TINYINT'9' * TINYINT'11'", TINYINT, (byte) (9 * 11)); assertFunction("TINYINT'9' * TINYINT'9'", TINYINT, (byte) (9 * 9)); assertNumericOverflow(format("TINYINT'%s' * TINYINT'2'", Byte.MAX_VALUE), "tinyint multiplication overflow: 127 * 2"); }