| Server IP : 88.99.149.37 / Your IP : 216.73.216.141 Web Server : nginx/1.31.2 System : Linux server-88-99-149-37 6.12.0-124.56.5.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Fri May 15 06:12:08 EDT 2026 x86_64 User : muralimurth ( 1015) PHP Version : 8.4.23 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/local/mysql/mysql-test/main/ |
Upload File : |
--echo #
--echo # Start of 10.0 tests
--echo #
--echo #
--echo # MDEV-8468 CAST and INSERT work differently for DECIMAL/INT vs DOUBLE for a string with trailing spaces
--echo #
SET sql_mode='STRICT_ALL_TABLES';
CREATE TABLE t1 (a FLOAT);
INSERT INTO t1 VALUES ('1 ');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
INSERT INTO t1 VALUES ('1 ');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
INSERT INTO t1 VALUES ('1 ');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
INSERT INTO t1 VALUES ('1 ');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES ('1 ');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
INSERT INTO t1 VALUES ('1 ');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
INSERT INTO t1 VALUES ('1 ');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('x');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('x');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('x');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('x');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('x');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('x');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('x');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES (' x');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES (' x');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES (' x');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES (' x');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES (' x');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES (' x');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES (' x');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('.');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('.');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('.');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('.');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('.');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('.');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('.');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('-');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('-');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('-');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('-');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('-');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('-');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('-');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('+');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('+');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('+');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('+');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('+');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('+');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
INSERT INTO t1 VALUES ('+');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1x');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1x');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1x');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1x');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1x');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1x');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1x');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1E-');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1E-');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1E-');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1E-');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1E-');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1E-');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1E-');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1Ex');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1Ex');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1Ex');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1Ex');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1Ex');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1Ex');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1Ex');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+x');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+x');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+x');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+x');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+x');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+x');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error WARN_DATA_TRUNCATED
INSERT INTO t1 VALUES ('1e+x');
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
--error ER_WARN_DATA_OUT_OF_RANGE
INSERT INTO t1 VALUES ('1e1000');
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
--error ER_WARN_DATA_OUT_OF_RANGE
INSERT INTO t1 VALUES ('1e1000');
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
--error ER_WARN_DATA_OUT_OF_RANGE
INSERT INTO t1 VALUES ('1e1000');
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
--error ER_WARN_DATA_OUT_OF_RANGE
INSERT INTO t1 VALUES ('1e1000');
DROP TABLE t1;
CREATE TABLE t1 (a INT);
--error ER_WARN_DATA_OUT_OF_RANGE
INSERT INTO t1 VALUES ('1e1000');
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
--error ER_WARN_DATA_OUT_OF_RANGE
INSERT INTO t1 VALUES ('1e1000');
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL);
--error ER_WARN_DATA_OUT_OF_RANGE
INSERT INTO t1 VALUES ('1e1000');
DROP TABLE t1;
SET sql_mode=DEFAULT;
CREATE TABLE t1 (
f4 FLOAT,
f8 DOUBLE,
i1 TINYINT,
i2 SMALLINT,
i4 INT,
i8 BIGINT,
d DECIMAL
);
INSERT INTO t1 VALUES ('1 ','1 ','1 ','1 ','1 ','1 ','1 ');
INSERT IGNORE INTO t1 VALUES ('','','','','','','');
INSERT IGNORE INTO t1 VALUES ('x','x','x','x','x','x','x');
INSERT IGNORE INTO t1 VALUES (' x',' x',' x',' x',' x',' x',' x');
INSERT IGNORE INTO t1 VALUES ('.','.','.','.','.','.','.');
INSERT IGNORE INTO t1 VALUES ('-','-','-','-','-','-','-');
INSERT IGNORE INTO t1 VALUES ('+','+','+','+','+','+','+');
INSERT IGNORE INTO t1 VALUES ('1x','1x','1x','1x','1x','1x','1x');
INSERT IGNORE INTO t1 VALUES ('1e','1e','1e','1e','1e','1e','1e');
INSERT IGNORE INTO t1 VALUES ('1e-','1e-','1e-','1e-','1e-','1e-','1e-');
INSERT IGNORE INTO t1 VALUES ('1E+','1E+','1E+','1E+','1E+','1E+','1E+');
INSERT IGNORE INTO t1 VALUES ('1e1000','1e1000','1e1000','1e1000','1e1000','1e1000','1e1000');
DELETE FROM t1;
INSERT INTO t1 VALUES (0,0,0,0,0,0,0);
INSERT INTO t1 VALUES (0,0,0,0,0,0,0);
INSERT INTO t1 VALUES (1,1,1,1,1,1,1);
INSERT INTO t1 VALUES (1,1,1,1,1,1,1);
INSERT INTO t1 VALUES (2,2,2,2,2,2,2);
INSERT INTO t1 VALUES (2,2,2,2,2,2,2);
INSERT INTO t1 VALUES (3,3,3,3,3,3,3);
INSERT INTO t1 VALUES (3,3,3,3,3,3,3);
INSERT INTO t1 VALUES (4,4,4,4,4,4,4);
INSERT INTO t1 VALUES (4,4,4,4,4,4,4);
INSERT INTO t1 VALUES (5,5,5,5,5,5,5);
INSERT INTO t1 VALUES (5,5,5,5,5,5,5);
SELECT COUNT(*) FROM t1 WHERE f4='1 ';
SELECT COUNT(*) FROM t1 WHERE f8='1 ';
SELECT COUNT(*) FROM t1 WHERE i1='1 ';
SELECT COUNT(*) FROM t1 WHERE i2='1 ';
SELECT COUNT(*) FROM t1 WHERE i4='1 ';
SELECT COUNT(*) FROM t1 WHERE i8='1 ';
SELECT COUNT(*) FROM t1 WHERE d='1 ';
SELECT COUNT(*) FROM t1 WHERE f4='';
SELECT COUNT(*) FROM t1 WHERE f8='';
SELECT COUNT(*) FROM t1 WHERE i1='';
SELECT COUNT(*) FROM t1 WHERE i2='';
SELECT COUNT(*) FROM t1 WHERE i4='';
SELECT COUNT(*) FROM t1 WHERE i8='';
SELECT COUNT(*) FROM t1 WHERE d='';
SELECT COUNT(*) FROM t1 WHERE f4='x';
SELECT COUNT(*) FROM t1 WHERE f8='x';
SELECT COUNT(*) FROM t1 WHERE i1='x';
SELECT COUNT(*) FROM t1 WHERE i2='x';
SELECT COUNT(*) FROM t1 WHERE i4='x';
SELECT COUNT(*) FROM t1 WHERE i8='x';
SELECT COUNT(*) FROM t1 WHERE d='x';
SELECT COUNT(*) FROM t1 WHERE f4=' x';
SELECT COUNT(*) FROM t1 WHERE f8=' x';
SELECT COUNT(*) FROM t1 WHERE i1=' x';
SELECT COUNT(*) FROM t1 WHERE i2=' x';
SELECT COUNT(*) FROM t1 WHERE i4=' x';
SELECT COUNT(*) FROM t1 WHERE i8=' x';
SELECT COUNT(*) FROM t1 WHERE d=' x';
SELECT COUNT(*) FROM t1 WHERE f4='.';
SELECT COUNT(*) FROM t1 WHERE f8='.';
SELECT COUNT(*) FROM t1 WHERE i1='.';
SELECT COUNT(*) FROM t1 WHERE i2='.';
SELECT COUNT(*) FROM t1 WHERE i4='.';
SELECT COUNT(*) FROM t1 WHERE i8='.';
SELECT COUNT(*) FROM t1 WHERE d='.';
SELECT COUNT(*) FROM t1 WHERE f4='-';
SELECT COUNT(*) FROM t1 WHERE f8='-';
SELECT COUNT(*) FROM t1 WHERE i1='-';
SELECT COUNT(*) FROM t1 WHERE i2='-';
SELECT COUNT(*) FROM t1 WHERE i4='-';
SELECT COUNT(*) FROM t1 WHERE i8='-';
SELECT COUNT(*) FROM t1 WHERE d='-';
SELECT COUNT(*) FROM t1 WHERE f4='+';
SELECT COUNT(*) FROM t1 WHERE f8='+';
SELECT COUNT(*) FROM t1 WHERE i1='+';
SELECT COUNT(*) FROM t1 WHERE i2='+';
SELECT COUNT(*) FROM t1 WHERE i4='+';
SELECT COUNT(*) FROM t1 WHERE i8='+';
SELECT COUNT(*) FROM t1 WHERE d='+';
SELECT COUNT(*) FROM t1 WHERE f4='1x';
SELECT COUNT(*) FROM t1 WHERE f8='1x';
SELECT COUNT(*) FROM t1 WHERE i1='1x';
SELECT COUNT(*) FROM t1 WHERE i2='1x';
SELECT COUNT(*) FROM t1 WHERE i4='1x';
SELECT COUNT(*) FROM t1 WHERE i8='1x';
SELECT COUNT(*) FROM t1 WHERE d='1x';
SELECT COUNT(*) FROM t1 WHERE f4='1e';
SELECT COUNT(*) FROM t1 WHERE f8='1e';
SELECT COUNT(*) FROM t1 WHERE i1='1e';
SELECT COUNT(*) FROM t1 WHERE i2='1e';
SELECT COUNT(*) FROM t1 WHERE i4='1e';
SELECT COUNT(*) FROM t1 WHERE i8='1e';
SELECT COUNT(*) FROM t1 WHERE d='1e';
SELECT COUNT(*) FROM t1 WHERE f4='1e+';
SELECT COUNT(*) FROM t1 WHERE f8='1e+';
SELECT COUNT(*) FROM t1 WHERE i1='1e+';
SELECT COUNT(*) FROM t1 WHERE i2='1e+';
SELECT COUNT(*) FROM t1 WHERE i4='1e+';
SELECT COUNT(*) FROM t1 WHERE i8='1e+';
SELECT COUNT(*) FROM t1 WHERE d='1e+';
SELECT COUNT(*) FROM t1 WHERE f4='1E-';
SELECT COUNT(*) FROM t1 WHERE f8='1E-';
SELECT COUNT(*) FROM t1 WHERE i1='1E-';
SELECT COUNT(*) FROM t1 WHERE i2='1E-';
SELECT COUNT(*) FROM t1 WHERE i4='1E-';
SELECT COUNT(*) FROM t1 WHERE i8='1E-';
SELECT COUNT(*) FROM t1 WHERE d='1E-';
SELECT COUNT(*) FROM t1 WHERE f4='1Ex';
SELECT COUNT(*) FROM t1 WHERE f8='1Ex';
SELECT COUNT(*) FROM t1 WHERE i1='1Ex';
SELECT COUNT(*) FROM t1 WHERE i2='1Ex';
SELECT COUNT(*) FROM t1 WHERE i4='1Ex';
SELECT COUNT(*) FROM t1 WHERE i8='1Ex';
SELECT COUNT(*) FROM t1 WHERE d='1Ex';
SELECT COUNT(*) FROM t1 WHERE f4='1e+x';
SELECT COUNT(*) FROM t1 WHERE f8='1e+x';
SELECT COUNT(*) FROM t1 WHERE i1='1e+x';
SELECT COUNT(*) FROM t1 WHERE i2='1e+x';
SELECT COUNT(*) FROM t1 WHERE i4='1e+x';
SELECT COUNT(*) FROM t1 WHERE i8='1e+x';
SELECT COUNT(*) FROM t1 WHERE d='1e+x';
SELECT COUNT(*) FROM t1 WHERE f4='1e1000';
SELECT COUNT(*) FROM t1 WHERE f8='1e1000';
SELECT COUNT(*) FROM t1 WHERE i1='1e1000';
SELECT COUNT(*) FROM t1 WHERE i2='1e1000';
SELECT COUNT(*) FROM t1 WHERE i4='1e1000';
SELECT COUNT(*) FROM t1 WHERE i8='1e1000';
SELECT COUNT(*) FROM t1 WHERE d='1e1000';
ALTER TABLE t1
ADD KEY f4(f4),
ADD KEY f8(f8),
ADD KEY i1(i1),
ADD KEY i2(i2),
ADD KEY i4(i4),
ADD KEY i8(i8),
ADD KEY d(d);
SELECT COUNT(*) FROM t1 FORCE INDEX(f4) WHERE f4='1 ';
SELECT COUNT(*) FROM t1 FORCE INDEX(f8) WHERE f8='1 ';
SELECT COUNT(*) FROM t1 FORCE INDEX(i1) WHERE i1='1 ';
SELECT COUNT(*) FROM t1 FORCE INDEX(i2) WHERE i2='1 ';
SELECT COUNT(*) FROM t1 FORCE INDEX(i4) WHERE i4='1 ';
SELECT COUNT(*) FROM t1 FORCE INDEX(i8) WHERE i8='1 ';
SELECT COUNT(*) FROM t1 FORCE INDEX(d) WHERE d='1 ';
SELECT COUNT(*) FROM t1 FORCE INDEX(f4) WHERE f4='';
SELECT COUNT(*) FROM t1 FORCE INDEX(f8) WHERE f8='';
SELECT COUNT(*) FROM t1 FORCE INDEX(i1) WHERE i1='';
SELECT COUNT(*) FROM t1 FORCE INDEX(i2) WHERE i2='';
SELECT COUNT(*) FROM t1 FORCE INDEX(i4) WHERE i4='';
SELECT COUNT(*) FROM t1 FORCE INDEX(i8) WHERE i8='';
SELECT COUNT(*) FROM t1 FORCE INDEX(d) WHERE d='';
# TODO: Add tests for all of the other tricky examples (see above) when
# MDEV-8490 INT,DOUBLE,DECIMAL produce different warnings on comparison
# is fixed
DROP TABLE t1;
SELECT
CAST('1 ' AS SIGNED),
CAST('1 ' AS UNSIGNED),
CAST('1 ' AS DECIMAL),
CAST('1 ' AS DOUBLE);
SELECT
CAST('' AS SIGNED),
CAST('' AS UNSIGNED),
CAST('' AS DECIMAL),
CAST('' AS DOUBLE);
SELECT
CAST('x' AS SIGNED),
CAST('x' AS UNSIGNED),
CAST('x' AS DECIMAL),
CAST('x' AS DOUBLE);
SELECT
CAST(' x' AS SIGNED),
CAST(' x' AS UNSIGNED),
CAST(' x' AS DECIMAL),
CAST(' x' AS DOUBLE);
SELECT
CAST('.' AS SIGNED),
CAST('.' AS UNSIGNED),
CAST('.' AS DECIMAL),
CAST('.' AS DOUBLE);
SELECT
CAST('-' AS SIGNED),
CAST('-' AS UNSIGNED),
CAST('-' AS DECIMAL),
CAST('-' AS DOUBLE);
SELECT
CAST('+' AS SIGNED),
CAST('+' AS UNSIGNED),
CAST('+' AS DECIMAL),
CAST('+' AS DOUBLE);
SELECT
CAST('1x' AS SIGNED),
CAST('1x' AS UNSIGNED),
CAST('1x' AS DECIMAL),
CAST('1x' AS DOUBLE);
SELECT
CAST('1e' AS SIGNED),
CAST('1e' AS UNSIGNED),
CAST('1e' AS DECIMAL),
CAST('1e' AS DOUBLE);
SELECT
CAST('1e-' AS SIGNED),
CAST('1e-' AS UNSIGNED),
CAST('1e-' AS DECIMAL),
CAST('1e-' AS DOUBLE);
SELECT
CAST('1E+' AS SIGNED),
CAST('1E+' AS UNSIGNED),
CAST('1E+' AS DECIMAL),
CAST('1E+' AS DOUBLE);
# TODO: Uncomment this test when
# MDEV-8468 CAST and INSERT work differently for DECIMAL/INT vs DOUBLE for a string with trailing spaces
# is fixed
#SELECT
# CAST('1e1000' AS SIGNED),
# CAST('1e1000' AS UNSIGNED),
# CAST('1e1000' AS DECIMAL),
# CAST('1e1000' AS DOUBLE);
--echo #
--echo # Start of 10.1 tests
--echo #
--echo #
--echo # MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool)
--echo #
--disable_ps_protocol
--disable_view_protocol
--enable_metadata
SELECT NULL+1 AS c0,
COALESCE(NULL)+1 AS c2,
COALESCE(COALESCE(NULL))+1 AS c3,
''+1 AS c4,
COALESCE('')+1 AS c5,
COALESCE(COALESCE(''))+1 AS c6;
--disable_metadata
--enable_ps_protocol
--enable_view_protocol
--echo #
--echo # Start of 10.2 tests
--echo #
#
# MDEV-8659 Conflicting declaration is accepted: INT SIGNED ZEROFILL
#
--error ER_PARSE_ERROR
CREATE TABLE t1 (a INT SIGNED ZEROFILL);
--error ER_PARSE_ERROR
CREATE TABLE t1 (a INT SIGNED UNSIGNED);
--error ER_PARSE_ERROR
CREATE TABLE t1 (a INT ZEROFILL UNSIGNED ZEROFILL);
# documented syntax:
CREATE OR REPLACE TABLE t1 (a INT SIGNED);
CREATE OR REPLACE TABLE t1 (a INT UNSIGNED);
CREATE OR REPLACE TABLE t1 (a INT ZEROFILL);
# not documented, supported for backward compatibility
CREATE OR REPLACE TABLE t1 (a INT UNSIGNED ZEROFILL);
CREATE OR REPLACE TABLE t1 (a INT ZEROFILL UNSIGNED);
DROP TABLE t1;