mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-35416 CONV(1<<63, 10, -2) fails with --view-protocol
Item_func_conv::fix_length_and_dec() incorrectly set maximum length as 64 character. But for negative numbers it can return up to 65 charcters (including the sign).
This commit is contained in:
@@ -745,9 +745,9 @@ encode('abcd','ab')
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`bin(130)` varchar(64) DEFAULT NULL,
|
||||
`oct(130)` varchar(64) DEFAULT NULL,
|
||||
`conv(130,16,10)` varchar(64) DEFAULT NULL,
|
||||
`bin(130)` varchar(65) DEFAULT NULL,
|
||||
`oct(130)` varchar(65) DEFAULT NULL,
|
||||
`conv(130,16,10)` varchar(65) DEFAULT NULL,
|
||||
`hex(130)` varchar(16) DEFAULT NULL,
|
||||
`char(130)` varbinary(4) DEFAULT NULL,
|
||||
`format(130,10)` varchar(25) DEFAULT NULL,
|
||||
@@ -5260,7 +5260,7 @@ conv(i,16,2)
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`conv(i,16,2)` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
|
||||
`conv(i,16,2)` varchar(65) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
@@ -5397,5 +5397,15 @@ SELECT CONV(1<<63, 10, -2);
|
||||
CONV(1<<63, 10, -2)
|
||||
-1000000000000000000000000000000000000000000000000000000000000000
|
||||
#
|
||||
# MDEV-35416 CONV(1<<63, 10, -2) fails with --view-protocol
|
||||
#
|
||||
CREATE TABLE t1 AS SELECT CONV(1<<63, 10, -2) AS c1;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` varchar(65) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.6 tests
|
||||
#
|
||||
|
@@ -2439,6 +2439,14 @@ DROP TABLE t0;
|
||||
SELECT CONV(-29223372036854775809, -10, 18446744073709551614);
|
||||
SELECT CONV(1<<63, 10, -2);
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-35416 CONV(1<<63, 10, -2) fails with --view-protocol
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 AS SELECT CONV(1<<63, 10, -2) AS c1;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.6 tests
|
||||
--echo #
|
||||
|
@@ -1547,7 +1547,7 @@ public:
|
||||
bool fix_length_and_dec() override
|
||||
{
|
||||
collation.set(default_charset());
|
||||
fix_char_length(64);
|
||||
fix_char_length(65);
|
||||
set_maybe_null();
|
||||
return FALSE;
|
||||
}
|
||||
|
Reference in New Issue
Block a user