summaryrefslogtreecommitdiff
path: root/mysql-test/main/type_float.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/main/type_float.test')
-rw-r--r--mysql-test/main/type_float.test69
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 #