mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE .. SELECT with zerofilled decimal
Also fixes: MDEV-20560 Assertion `precision > 0' failed in decimal_bin_size upon SELECT with MOD short unsigned decimal Changing the way how Item_func_mod calculates its max_length. It now uses decimal_precision(), decimal_scale() and unsigned_flag of its arguments, like all other Item_num_op descendants do.
This commit is contained in:
@ -576,6 +576,44 @@ INSERT INTO t1 VALUES (1),(2);
|
||||
SELECT STDDEV_SAMP(ROUND('0', 309)) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE .. SELECT with zerofilled decimal
|
||||
--echo #
|
||||
|
||||
--echo # Testing that dyadic arithmetic operations are symmetric
|
||||
--echo # for (+1) and (-1) and produce the same length in CONCAT(),
|
||||
--echo # because (+1) and (-1) have the same data type: signed int.
|
||||
|
||||
CREATE TABLE t1 AS SELECT
|
||||
CONCAT(+1%2.0),
|
||||
CONCAT(-1%2.0),
|
||||
CONCAT(+1/2.0),
|
||||
CONCAT(-1/2.0),
|
||||
CONCAT(+1*2.0),
|
||||
CONCAT(-1*2.0),
|
||||
CONCAT(+1+2.0),
|
||||
CONCAT(-1+2.0),
|
||||
CONCAT(+1-2.0),
|
||||
CONCAT(-1-2.0);
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 AS SELECT
|
||||
CONCAT(+1%2),
|
||||
CONCAT(-1%2),
|
||||
CONCAT(+1/2),
|
||||
CONCAT(-1/2),
|
||||
CONCAT(+1*2),
|
||||
CONCAT(-1*2),
|
||||
CONCAT(+1+2),
|
||||
CONCAT(-1+2),
|
||||
CONCAT(+1-2),
|
||||
CONCAT(-1-2);
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
Reference in New Issue
Block a user