--echo #
|
--echo # MDEV-17351 MICROSECOND(XXX(int_number_out_of_range)) erroneously returns 999999
|
--echo #
|
|
SET sql_mode='';
|
CREATE TABLE t1 AS SELECT
|
GREATEST(8395959, TIME'00:00:00') AS c1,
|
ADDTIME(TIMESTAMP'2001-01-01 00:00:00', 8395959) AS c2,
|
TIMESTAMP('2001-01-01 00:00:00', 8395959) AS c3;
|
SHOW CREATE TABLE t1;
|
SELECT * FROM t1;
|
DROP TABLE t1;
|
SET sql_mode='';
|
|
SELECT
|
MICROSECOND(GREATEST(8395959, TIME'00:00:00')) AS c1,
|
MICROSECOND(ADDTIME(TIMESTAMP'2001-01-01 00:00:00', 8395959)) AS c2,
|
MICROSECOND(TIMESTAMP('2001-01-01 00:00:00', 8395959)) AS c3;
|
|
SELECT
|
MICROSECOND(GREATEST(8395959.0, TIME'00:00:00')) AS c1,
|
MICROSECOND(ADDTIME(TIMESTAMP'2001-01-01 00:00:00', 8395959.0)) AS c2,
|
MICROSECOND(TIMESTAMP('2001-01-01 00:00:00', 8395959.0)) AS c3;
|
|
SELECT
|
MICROSECOND(GREATEST(8395959.00, TIME'00:00:00')) AS c1,
|
MICROSECOND(ADDTIME(TIMESTAMP'2001-01-01 00:00:00', 8395959.00)) AS c2,
|
MICROSECOND(TIMESTAMP('2001-01-01 00:00:00', 8395959.00)) AS c3;
|
|
SELECT
|
MICROSECOND(GREATEST(8395959.000000, TIME'00:00:00')) AS c1,
|
MICROSECOND(ADDTIME(TIMESTAMP'2001-01-01 00:00:00', 8395959.000000)) AS c2,
|
MICROSECOND(TIMESTAMP('2001-01-01 00:00:00', 8395959.000000)) AS c3;
|
|
SELECT
|
MICROSECOND(GREATEST(8395959.0000000, TIME'00:00:00')) AS c1,
|
MICROSECOND(ADDTIME(TIMESTAMP'2001-01-01 00:00:00', 8395959.0000000)) AS c2,
|
MICROSECOND(TIMESTAMP('2001-01-01 00:00:00', 8395959.0000000)) AS c3;
|
|
|
SELECT
|
MICROSECOND(GREATEST(8395959, TIME'00:00:00.0')) AS c1,
|
MICROSECOND(ADDTIME(TIMESTAMP'2001-01-01 00:00:00.0', 8395959)) AS c2,
|
MICROSECOND(TIMESTAMP('2001-01-01 00:00:00.0', 8395959)) AS c3;
|
|
SELECT
|
MICROSECOND(GREATEST(8395959, TIME'00:00:00.00')) AS c1,
|
MICROSECOND(ADDTIME(TIMESTAMP'2001-01-01 00:00:00.00', 8395959)) AS c2,
|
MICROSECOND(TIMESTAMP('2001-01-01 00:00:00.00', 8395959)) AS c3;
|
|
SELECT
|
MICROSECOND(GREATEST(8395959, TIME'00:00:00.00')) AS c1,
|
MICROSECOND(ADDTIME(TIMESTAMP'2001-01-01 00:00:00.00', 8395959)) AS c2,
|
MICROSECOND(TIMESTAMP('2001-01-01 00:00:00.00', 8395959)) AS c3;
|
|
SELECT
|
MICROSECOND(GREATEST(8395959, TIME'00:00:00.0000000')) AS c1,
|
MICROSECOND(ADDTIME(TIMESTAMP'2001-01-01 00:00:00.0000000', 8395959)) AS c2,
|
MICROSECOND(TIMESTAMP('2001-01-01 00:00:00.0000000', 8395959)) AS c3;
|
|
SELECT
|
MICROSECOND(GREATEST(8395959, TIME'00:00:00.0000000')) AS c1,
|
MICROSECOND(ADDTIME(TIMESTAMP'2001-01-01 00:00:00.0000000', 8395959)) AS c2,
|
MICROSECOND(TIMESTAMP('2001-01-01 00:00:00.0000000', 8395959)) AS c3;
|
|
|
SELECT TIME(8395959), MICROSECOND(8395959);
|
SELECT TIME(8395959.0), MICROSECOND(8395959.0);
|
SELECT TIME(8395959.00), MICROSECOND(8395959.00);
|
SELECT TIME(8395959.000), MICROSECOND(8395959.000);
|
SELECT TIME(8395959.0000), MICROSECOND(8395959.0000);
|
SELECT TIME(8395959.00000), MICROSECOND(8395959.00000);
|
SELECT TIME(8395959.000000), MICROSECOND(8395959.000000);
|
SELECT TIME(8395959.0000000), MICROSECOND(8395959.0000000);
|
|
SELECT TIME('839:59:59'), MICROSECOND('839:59:59');
|
SELECT TIME('839:59:59.0'), MICROSECOND('839:59:59.0');
|
SELECT TIME('839:59:59.00'), MICROSECOND('839:59:59.00');
|
SELECT TIME('839:59:59.000'), MICROSECOND('839:59:59.000');
|
SELECT TIME('839:59:59.0000'), MICROSECOND('839:59:59.0000');
|
SELECT TIME('839:59:59.00000'), MICROSECOND('839:59:59.00000');
|
SELECT TIME('839:59:59.000000'), MICROSECOND('839:59:59.000000');
|
SELECT TIME('839:59:59.0000000'), MICROSECOND('839:59:59.0000000');
|
|
|
SELECT
|
TIME(CAST(8395959 AS SIGNED)) AS c1,
|
MICROSECOND(CAST(8395959 AS SIGNED)) AS c2;
|
|
SELECT
|
TIME(CAST(8395959 AS DECIMAL(30,0))) AS c1,
|
MICROSECOND(CAST(8395959 AS DECIMAL(30,0))) AS c2;
|
|
SELECT
|
TIME(CAST(8395959 AS DECIMAL(30,1))) AS c1,
|
MICROSECOND(CAST(8395959 AS DECIMAL(30,1))) AS c2;
|
|
SELECT
|
TIME(CAST(8395959 AS DECIMAL(30,2))) AS c1,
|
MICROSECOND(CAST(8395959 AS DECIMAL(30,2))) AS c2;
|
|
SELECT
|
TIME(CAST(8395959 AS DECIMAL(30,3))) AS c1,
|
MICROSECOND(CAST(8395959 AS DECIMAL(30,3))) AS c2;
|
|
SELECT
|
TIME(CAST(8395959 AS DECIMAL(30,4))) AS c1,
|
MICROSECOND(CAST(8395959 AS DECIMAL(30,4))) AS c2;
|
|
SELECT
|
TIME(CAST(8395959 AS DECIMAL(30,5))) AS c1,
|
MICROSECOND(CAST(8395959 AS DECIMAL(30,5))) AS c2;
|
|
SELECT
|
TIME(CAST(8395959 AS DECIMAL(30,6))) AS c1,
|
MICROSECOND(CAST(8395959 AS DECIMAL(30,6))) AS c2;
|
|
SELECT
|
TIME(CAST(8395959 AS DECIMAL(30,7))) AS c1,
|
MICROSECOND(CAST(8395959 AS DECIMAL(30,7))) AS c2;
|
|
SELECT
|
TIME(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS SIGNED)) AS c1,
|
MICROSECOND(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS SIGNED)) AS c2;
|
|
SELECT
|
TIME(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,0))) AS c1,
|
MICROSECOND(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,0))) AS c2;
|
|
SELECT
|
TIME(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,1))) AS c1,
|
MICROSECOND(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,1))) AS c2;
|
|
SELECT
|
TIME(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,2))) AS c1,
|
MICROSECOND(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,2))) AS c2;
|
|
SELECT
|
TIME(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,3))) AS c1,
|
MICROSECOND(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,3))) AS c2;
|
|
SELECT
|
TIME(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,4))) AS c1,
|
MICROSECOND(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,4))) AS c2;
|
|
SELECT
|
TIME(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,5))) AS c1,
|
MICROSECOND(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,5))) AS c2;
|
|
SELECT
|
TIME(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,6))) AS c1,
|
MICROSECOND(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,6))) AS c2;
|
|
SELECT
|
TIME(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,7))) AS c1,
|
MICROSECOND(COLUMN_GET(COLUMN_CREATE(0, 8395959), 0 AS DECIMAL(30,7))) AS c2;
|