1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-15762 - VARCHAR(0) COMPRESSED crashes the server

Character set safe truncation is done when storing non-empty string in
VARCHAR(0) COMPRESSED column, so that string becomes empty. The code
didn't expect empty string after truncation.

Fixed by moving empty string check after truncation.
This commit is contained in:
Sergey Vojtovich
2018-04-03 16:19:37 +04:00
parent 43ab88f0ea
commit 3dec6c48bc
3 changed files with 27 additions and 8 deletions

View File

@ -91,3 +91,14 @@ SET SESSION optimizer_switch = 'derived_merge=off';
SELECT * FROM ( SELECT * FROM t1 ) AS sq ORDER BY b;
SET SESSION optimizer_switch=DEFAULT;
DROP TABLE t1;
--echo #
--echo # MDEV-15762 - VARCHAR(0) COMPRESSED crashes the server
--echo #
CREATE TABLE t1(a VARCHAR(0) COMPRESSED);
--error ER_DATA_TOO_LONG
INSERT INTO t1 VALUES('a');
INSERT INTO t1 VALUES(' ');
SELECT LENGTH(a) FROM t1;
DROP TABLE t1;