1--echo # 2--echo # Start of 10.5 tests 3--echo # 4 5--echo # 6--echo # MDEV-20305 Data loss on DOUBLE and DECIMAL conversion to INT 7--echo # 8 9DELIMITER $$; 10CREATE PROCEDURE p1(type VARCHAR(64), val VARCHAR(64)) 11BEGIN 12 EXECUTE IMMEDIATE CONCAT('CREATE TABLE t1 (a ', type, ')'); 13 SHOW CREATE TABLE t1; 14 EXECUTE IMMEDIATE CONCAT('INSERT INTO t1 VALUES (', val, ')'); 15 SELECT 16 a, 17 ~a, 18 a & 18446744073709551615, 19 18446744073709551615 & a, 20 0 | a, 21 a | 0, 22 a << 0, 23 a >> 0, 24 a ^ 1, 25 1 ^ a, 26 BIT_COUNT(a) 27 FROM t1; 28 SHOW WARNINGS; 29 DROP TABLE t1; 30END; 31$$ 32DELIMITER ;$$ 33 34--vertical_results 35CALL p1('BIGINT UNSIGNED', 18446744073709551615); 36CALL p1('DOUBLE', 18446744073709551615); 37CALL p1('DECIMAL(30,0)', 18446744073709551615); 38 39CALL p1('BIGINT', -1); 40CALL p1('DOUBLE', -1); 41CALL p1('DECIMAL(30,0)', -1); 42 43CALL p1('BIGINT', -9223372036854775808); 44CALL p1('DOUBLE', -9223372036854775808); 45CALL p1('DECIMAL(30,0)', -9223372036854775808); 46--horizontal_results 47 48DROP PROCEDURE p1; 49 50 51SELECT CAST(CAST(18446744073709551615 AS UNSIGNED) AS DECIMAL(32))<<0 AS c1; 52SELECT CAST(CAST(18446744073709551615 AS UNSIGNED) AS DOUBLE)<<0 AS c1; 53 54SELECT COALESCE(CAST(CAST(0xFFFFFFFFFFFFFFFF AS UNSIGNED) AS DECIMAL(32))) << 0 AS c1; 55SELECT COALESCE(CAST(CAST(0xFFFFFFFFFFFFFFFF AS UNSIGNED) AS DOUBLE)) << 0 AS c1; 56 57SELECT 18446744073709551615 ^ 1 AS c1; 58SELECT 18446744073709551615.0 ^ 1 AS c1; 59SELECT 18446744073709551615e0 ^ 1 AS c1; 60 61SELECT LAST_VALUE(18446744073709551615) ^ 1 AS c1; 62SELECT LAST_VALUE(18446744073709551615.0) ^ 1 AS c1; 63SELECT LAST_VALUE(18446744073709551615e0) ^ 1 AS c1; 64 65SELECT 18446744073709551615 & 18446744073709551615 AS c1; 66SELECT 18446744073709551615 & 18446744073709551615.0 AS c1; 67SELECT 18446744073709551615 & 18446744073709551615e0 AS c1; 68SELECT 18446744073709551615.0 & 18446744073709551615 AS c1; 69SELECT 18446744073709551615.0 & 18446744073709551615.0 AS c1; 70SELECT 18446744073709551615.0 & 18446744073709551615e0 AS c1; 71SELECT 18446744073709551615e0 & 18446744073709551615 AS c1; 72SELECT 18446744073709551615e0 & 18446744073709551615.0 AS c1; 73SELECT 18446744073709551615e0 & 18446744073709551615e0 AS c1; 74 75 76SELECT 0 | 18446744073709551615 AS c1; 77SELECT 0 | 18446744073709551615.0 AS c1; 78SELECT 0 | 18446744073709551615e0 AS c1; 79SELECT 18446744073709551615 | 0 AS c1; 80SELECT 18446744073709551615.0 | 0 AS c1; 81SELECT 18446744073709551615e0 | 0 AS c1; 82 83SELECT ~18446744073709551615 AS c1; 84SELECT ~18446744073709551615.0 AS c1; 85SELECT ~18446744073709551615e0 AS c1; 86 87SELECT BIT_COUNT(18446744073709551615) AS c1; 88SELECT BIT_COUNT(18446744073709551615.0) AS c1; 89SELECT BIT_COUNT(18446744073709551615e0) AS c1; 90 91SELECT BIT_COUNT(-9223372036854775808) AS c1; 92SELECT BIT_COUNT(-9223372036854775808.0) AS c1; 93SELECT BIT_COUNT(-9223372036854775808e0) AS c1; 94 95--echo # 96--echo # End of 10.5 tests 97--echo # 98