mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-8402 Bug #77473 Truncated data with subquery & UTF8
This commit is contained in:
@ -5830,5 +5830,44 @@ OCTET_LENGTH(a) a
|
||||
255 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-8402 Bug#77473 Bug#21317406 TRUNCATED DATA WITH SUBQUERY & UTF8
|
||||
#
|
||||
#
|
||||
SET NAMES utf8;
|
||||
SELECT length(rpad(_utf8 0xD0B1, 65536, _utf8 0xD0B2)) AS data;
|
||||
data
|
||||
131072
|
||||
SELECT length(data) AS len FROM (
|
||||
SELECT rpad(_utf8 0xD0B1, 65536, _utf8 0xD0B2) AS data
|
||||
) AS sub;
|
||||
len
|
||||
131072
|
||||
SELECT length(rpad(_utf8 0xD0B1, 65535, _utf8 0xD0B2)) AS data;
|
||||
data
|
||||
131070
|
||||
SELECT length(data) AS len FROM (
|
||||
SELECT rpad(_utf8 0xD0B1, 65535, _utf8 0xD0B2) AS data
|
||||
) AS sub;
|
||||
len
|
||||
131070
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 36766) AS data) AS sub;
|
||||
len
|
||||
73532
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 36767) AS data) AS sub;
|
||||
len
|
||||
73534
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 36778) AS data) AS sub;
|
||||
len
|
||||
73556
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 65535) AS data) AS sub;
|
||||
len
|
||||
131070
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 65536) AS data) AS sub;
|
||||
len
|
||||
131072
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 65537) AS data) AS sub;
|
||||
len
|
||||
131074
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -2622,6 +2622,40 @@ OCTET_LENGTH(a) a
|
||||
252 😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎😎
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-8402 Bug#77473 Bug#21317406 TRUNCATED DATA WITH SUBQUERY & UTF8
|
||||
#
|
||||
#
|
||||
SET NAMES utf8mb4;
|
||||
SELECT length(repeat(_utf8mb4 0xE29883, 21844)) AS data;
|
||||
data
|
||||
65532
|
||||
SELECT length(data) AS len
|
||||
FROM ( SELECT repeat(_utf8mb4 0xE29883, 21844) AS data ) AS sub;
|
||||
len
|
||||
65532
|
||||
SELECT length(repeat(_utf8mb4 0xE29883, 21846)) AS data;
|
||||
data
|
||||
65538
|
||||
SELECT length(data) AS len
|
||||
FROM ( SELECT repeat(_utf8mb4 0xE29883, 21846) AS data ) AS sub;
|
||||
len
|
||||
65538
|
||||
SELECT LENGTH(data) AS len FROM (SELECT REPEAT('☃', 21844) AS data ) AS sub;
|
||||
len
|
||||
65532
|
||||
SELECT LENGTH(data) AS len FROM (SELECT REPEAT('☃', 21845) AS data ) AS sub;
|
||||
len
|
||||
65535
|
||||
SELECT LENGTH(data) AS len FROM (SELECT REPEAT('☃', 21846) AS data ) AS sub;
|
||||
len
|
||||
65538
|
||||
SELECT LENGTH(data) AS len FROM (SELECT REPEAT('☃', 65535) AS data ) AS sub;
|
||||
len
|
||||
196605
|
||||
SELECT LENGTH(data) AS len FROM (SELECT REPEAT('☃', 65536) AS data ) AS sub;
|
||||
len
|
||||
196608
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
@ -1658,6 +1658,29 @@ ALTER TABLE t1 MODIFY a TINYTEXT CHARACTER SET utf8;
|
||||
SELECT OCTET_LENGTH(a),a FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-8402 Bug#77473 Bug#21317406 TRUNCATED DATA WITH SUBQUERY & UTF8
|
||||
--echo #
|
||||
--echo #
|
||||
|
||||
SET NAMES utf8;
|
||||
SELECT length(rpad(_utf8 0xD0B1, 65536, _utf8 0xD0B2)) AS data;
|
||||
SELECT length(data) AS len FROM (
|
||||
SELECT rpad(_utf8 0xD0B1, 65536, _utf8 0xD0B2) AS data
|
||||
) AS sub;
|
||||
|
||||
SELECT length(rpad(_utf8 0xD0B1, 65535, _utf8 0xD0B2)) AS data;
|
||||
SELECT length(data) AS len FROM (
|
||||
SELECT rpad(_utf8 0xD0B1, 65535, _utf8 0xD0B2) AS data
|
||||
) AS sub;
|
||||
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 36766) AS data) AS sub;
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 36767) AS data) AS sub;
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 36778) AS data) AS sub;
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 65535) AS data) AS sub;
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 65536) AS data) AS sub;
|
||||
SELECT length(data) AS len FROM (SELECT REPEAT('ä', 65537) AS data) AS sub;
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
@ -1838,6 +1838,26 @@ SELECT OCTET_LENGTH(a),a FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-8402 Bug#77473 Bug#21317406 TRUNCATED DATA WITH SUBQUERY & UTF8
|
||||
--echo #
|
||||
--echo #
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SELECT length(repeat(_utf8mb4 0xE29883, 21844)) AS data;
|
||||
SELECT length(data) AS len
|
||||
FROM ( SELECT repeat(_utf8mb4 0xE29883, 21844) AS data ) AS sub;
|
||||
|
||||
SELECT length(repeat(_utf8mb4 0xE29883, 21846)) AS data;
|
||||
SELECT length(data) AS len
|
||||
FROM ( SELECT repeat(_utf8mb4 0xE29883, 21846) AS data ) AS sub;
|
||||
|
||||
SELECT LENGTH(data) AS len FROM (SELECT REPEAT('☃', 21844) AS data ) AS sub;
|
||||
SELECT LENGTH(data) AS len FROM (SELECT REPEAT('☃', 21845) AS data ) AS sub;
|
||||
SELECT LENGTH(data) AS len FROM (SELECT REPEAT('☃', 21846) AS data ) AS sub;
|
||||
SELECT LENGTH(data) AS len FROM (SELECT REPEAT('☃', 65535) AS data ) AS sub;
|
||||
SELECT LENGTH(data) AS len FROM (SELECT REPEAT('☃', 65536) AS data ) AS sub;
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
@ -1854,10 +1854,9 @@ public:
|
||||
packlength= 4;
|
||||
if (set_packlength)
|
||||
{
|
||||
uint32 l_char_length= len_arg/cs->mbmaxlen;
|
||||
packlength= l_char_length <= 255 ? 1 :
|
||||
l_char_length <= 65535 ? 2 :
|
||||
l_char_length <= 16777215 ? 3 : 4;
|
||||
packlength= len_arg <= 255 ? 1 :
|
||||
len_arg <= 65535 ? 2 :
|
||||
len_arg <= 16777215 ? 3 : 4;
|
||||
}
|
||||
}
|
||||
Field_blob(uint32 packlength_arg)
|
||||
|
Reference in New Issue
Block a user