diff options
Diffstat (limited to 'mysql-test/main/type_float.test')
-rw-r--r-- | mysql-test/main/type_float.test | 69 |
1 files changed, 68 insertions, 1 deletions
diff --git a/mysql-test/main/type_float.test b/mysql-test/main/type_float.test index f42d3445e2a..4665c945a76 100644 --- a/mysql-test/main/type_float.test +++ b/mysql-test/main/type_float.test @@ -582,9 +582,76 @@ DROP TABLE t1; --echo # End of 10.2 tests --echo # +--echo # +--echo # MDEV-19468 Hybrid type expressions return wrong format for FLOAT +--echo # + +CREATE TABLE t1 (a FLOAT); +INSERT INTO t1 VALUES (0.671437); +SELECT a, COALESCE(a), MAX(a), LEAST(a,a), (SELECT a FROM t1) AS c FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a FLOAT); +INSERT INTO t1 VALUES (0.671437); +SELECT + CONCAT(a), + CONCAT(COALESCE(a)), + CONCAT(LEAST(a,a)), + CONCAT(MAX(a)), + CONCAT((SELECT a FROM t1)) AS c +FROM t1; +CREATE TABLE t2 AS SELECT + CONCAT(a), + CONCAT(COALESCE(a)), + CONCAT(LEAST(a,a)), + CONCAT(MAX(a)), + CONCAT((SELECT a FROM t1)) AS c +FROM t1; +SELECT * FROM t2; +DROP TABLE t1, t2; + + +--echo # +--echo # MDEV-16872 Add CAST(expr AS FLOAT) +--echo # + +SELECT CAST(0.671437 AS FLOAT), CONCAT(CAST(0.671437 AS FLOAT)); +SELECT CAST(1e40 AS FLOAT), CONCAT(CAST(1e40 AS FLOAT)); +SELECT CAST(-1e40 AS FLOAT), CONCAT(CAST(-1e40 AS FLOAT)); + +SET sql_mode='STRICT_ALL_TABLES,STRICT_TRANS_TABLES'; +CREATE TABLE t1 (a FLOAT); +INSERT INTO t1 VALUES (CAST(1e40 AS FLOAT)); +SELECT * FROM t1; +DROP TABLE t1; +SET sql_mode=DEFAULT; + +EXPLAIN EXTENDED SELECT CAST(0.671437 AS FLOAT); + +CREATE TABLE t1 AS SELECT CAST(0.671437 AS FLOAT) AS c1; +SHOW CREATE TABLE t1; +SELECT * FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a FLOAT); +CREATE TABLE t2 AS SELECT CONCAT(a) AS c1, CONCAT(CAST(a AS FLOAT)) AS c2 FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + +CREATE TABLE t1 (a FLOAT DEFAULT CAST(0.671437 AS FLOAT)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY, a FLOAT); +INSERT INTO t1 VALUES (1, 0.671437),(2, 0.671437); +DELETE FROM t1 WHERE a=0.671437; +SELECT * FROM t1; +DELETE FROM t1 WHERE a=CAST(0.671437 AS FLOAT); +DROP TABLE t1; + --echo # ---echo # Start of 10.4 tests +--echo # End of 10.3 tests --echo # --echo # |