Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.3(EOL)
-
None
Description
I insert an latin1 string consisting of 250 ASCII characters in two TINYTEXT columns (compressed and non-compressed) with CHARACTER SET utf8. The compressed column truncates data. The non-compressed column writes the entire value, as expected:
SET sql_mode=''; |
CREATE OR REPLACE TABLE t1( |
a TINYTEXT CHARACTER SET utf8 COMPRESSED, |
b TINYTEXT CHARACTER SET utf8 |
);
|
INSERT INTO t1 VALUES (REPEAT(_latin1'a',250), REPEAT(_latin1'a',250)); |
SELECT CHAR_LENGTH(a), CHAR_LENGTH(b) FROM t1; |
+----------------+----------------+
|
| CHAR_LENGTH(a) | CHAR_LENGTH(b) |
|
+----------------+----------------+
|
| 84 | 250 |
|
+----------------+----------------+
|
Looks wrong. The expected behavior would be to write all 250 characters into both columns.
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Description |
I insert a string consisting of 250 ASCII characters in two TINYTEXT column (compressed and non-compressed). The compressed column truncates data. The non-compressed column write the entire value:
{code:sql} SET sql_mode=''; CREATE OR REPLACE TABLE t1( a TINYTEXT CHARACTER SET utf8 COMPRESSED, b TINYTEXT CHARACTER SET utf8 ); INSERT INTO t1 VALUES (REPEAT(_latin1'a',250), REPEAT(_latin1'a',250)); SELECT CHAR_LENGTH(a), CHAR_LENGTH(b) FROM t1; {code} {noformat} +----------------+----------------+ | CHAR_LENGTH(a) | CHAR_LENGTH(b) | +----------------+----------------+ | 84 | 250 | +----------------+----------------+ {noformat} Looks wrong. The expected behavior would be to write all {{250}} characters into both columns. |
I insert an latin1 string consisting of 250 ASCII characters in two TINYTEXT columns (compressed and non-compressed) with CHARACTER SET utf8. The compressed column truncates data. The non-compressed column write the entire value:
{code:sql} SET sql_mode=''; CREATE OR REPLACE TABLE t1( a TINYTEXT CHARACTER SET utf8 COMPRESSED, b TINYTEXT CHARACTER SET utf8 ); INSERT INTO t1 VALUES (REPEAT(_latin1'a',250), REPEAT(_latin1'a',250)); SELECT CHAR_LENGTH(a), CHAR_LENGTH(b) FROM t1; {code} {noformat} +----------------+----------------+ | CHAR_LENGTH(a) | CHAR_LENGTH(b) | +----------------+----------------+ | 84 | 250 | +----------------+----------------+ {noformat} Looks wrong. The expected behavior would be to write all {{250}} characters into both columns. |
Description |
I insert an latin1 string consisting of 250 ASCII characters in two TINYTEXT columns (compressed and non-compressed) with CHARACTER SET utf8. The compressed column truncates data. The non-compressed column write the entire value:
{code:sql} SET sql_mode=''; CREATE OR REPLACE TABLE t1( a TINYTEXT CHARACTER SET utf8 COMPRESSED, b TINYTEXT CHARACTER SET utf8 ); INSERT INTO t1 VALUES (REPEAT(_latin1'a',250), REPEAT(_latin1'a',250)); SELECT CHAR_LENGTH(a), CHAR_LENGTH(b) FROM t1; {code} {noformat} +----------------+----------------+ | CHAR_LENGTH(a) | CHAR_LENGTH(b) | +----------------+----------------+ | 84 | 250 | +----------------+----------------+ {noformat} Looks wrong. The expected behavior would be to write all {{250}} characters into both columns. |
I insert an latin1 string consisting of 250 ASCII characters in two TINYTEXT columns (compressed and non-compressed) with CHARACTER SET utf8. The compressed column truncates data. The non-compressed column writes the entire value:
{code:sql} SET sql_mode=''; CREATE OR REPLACE TABLE t1( a TINYTEXT CHARACTER SET utf8 COMPRESSED, b TINYTEXT CHARACTER SET utf8 ); INSERT INTO t1 VALUES (REPEAT(_latin1'a',250), REPEAT(_latin1'a',250)); SELECT CHAR_LENGTH(a), CHAR_LENGTH(b) FROM t1; {code} {noformat} +----------------+----------------+ | CHAR_LENGTH(a) | CHAR_LENGTH(b) | +----------------+----------------+ | 84 | 250 | +----------------+----------------+ {noformat} Looks wrong. The expected behavior would be to write all {{250}} characters into both columns. |
Description |
I insert an latin1 string consisting of 250 ASCII characters in two TINYTEXT columns (compressed and non-compressed) with CHARACTER SET utf8. The compressed column truncates data. The non-compressed column writes the entire value:
{code:sql} SET sql_mode=''; CREATE OR REPLACE TABLE t1( a TINYTEXT CHARACTER SET utf8 COMPRESSED, b TINYTEXT CHARACTER SET utf8 ); INSERT INTO t1 VALUES (REPEAT(_latin1'a',250), REPEAT(_latin1'a',250)); SELECT CHAR_LENGTH(a), CHAR_LENGTH(b) FROM t1; {code} {noformat} +----------------+----------------+ | CHAR_LENGTH(a) | CHAR_LENGTH(b) | +----------------+----------------+ | 84 | 250 | +----------------+----------------+ {noformat} Looks wrong. The expected behavior would be to write all {{250}} characters into both columns. |
I insert an latin1 string consisting of 250 ASCII characters in two TINYTEXT columns (compressed and non-compressed) with CHARACTER SET utf8. The compressed column truncates data. The non-compressed column writes the entire value, as exprected:
{code:sql} SET sql_mode=''; CREATE OR REPLACE TABLE t1( a TINYTEXT CHARACTER SET utf8 COMPRESSED, b TINYTEXT CHARACTER SET utf8 ); INSERT INTO t1 VALUES (REPEAT(_latin1'a',250), REPEAT(_latin1'a',250)); SELECT CHAR_LENGTH(a), CHAR_LENGTH(b) FROM t1; {code} {noformat} +----------------+----------------+ | CHAR_LENGTH(a) | CHAR_LENGTH(b) | +----------------+----------------+ | 84 | 250 | +----------------+----------------+ {noformat} Looks wrong. The expected behavior would be to write all {{250}} characters into both columns. |
Description |
I insert an latin1 string consisting of 250 ASCII characters in two TINYTEXT columns (compressed and non-compressed) with CHARACTER SET utf8. The compressed column truncates data. The non-compressed column writes the entire value, as exprected:
{code:sql} SET sql_mode=''; CREATE OR REPLACE TABLE t1( a TINYTEXT CHARACTER SET utf8 COMPRESSED, b TINYTEXT CHARACTER SET utf8 ); INSERT INTO t1 VALUES (REPEAT(_latin1'a',250), REPEAT(_latin1'a',250)); SELECT CHAR_LENGTH(a), CHAR_LENGTH(b) FROM t1; {code} {noformat} +----------------+----------------+ | CHAR_LENGTH(a) | CHAR_LENGTH(b) | +----------------+----------------+ | 84 | 250 | +----------------+----------------+ {noformat} Looks wrong. The expected behavior would be to write all {{250}} characters into both columns. |
I insert an latin1 string consisting of 250 ASCII characters in two TINYTEXT columns (compressed and non-compressed) with CHARACTER SET utf8. The compressed column truncates data. The non-compressed column writes the entire value, as expected:
{code:sql} SET sql_mode=''; CREATE OR REPLACE TABLE t1( a TINYTEXT CHARACTER SET utf8 COMPRESSED, b TINYTEXT CHARACTER SET utf8 ); INSERT INTO t1 VALUES (REPEAT(_latin1'a',250), REPEAT(_latin1'a',250)); SELECT CHAR_LENGTH(a), CHAR_LENGTH(b) FROM t1; {code} {noformat} +----------------+----------------+ | CHAR_LENGTH(a) | CHAR_LENGTH(b) | +----------------+----------------+ | 84 | 250 | +----------------+----------------+ {noformat} Looks wrong. The expected behavior would be to write all {{250}} characters into both columns. |
Status | Open [ 1 ] | Confirmed [ 10101 ] |
Assignee | Sergey Vojtovich [ svoj ] | Alexander Barkov [ bar ] |
Status | Confirmed [ 10101 ] | In Review [ 10002 ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Assignee | Alexander Barkov [ bar ] | Sergey Vojtovich [ svoj ] |
issue.field.resolutiondate | 2018-04-30 15:35:04.0 | 2018-04-30 15:35:04.471 |
Component/s | Server [ 13907 ] | |
Fix Version/s | 10.3.7 [ 23005 ] | |
Fix Version/s | 10.3 [ 22126 ] | |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 86665 ] | MariaDB v4 [ 154194 ] |