Bug #53088 mysqldump with -T & --default-character-set set truncates text/blob to 766 chars
| Submitted: | 22 Apr 2010 22:07 | Modified: | 14 Oct 2010 14:48 |
|---|---|---|---|
| Reporter: | Ryan Mack | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: mysqldump Command-line Client | Severity: | S2 (Serious) |
| Version: | 5.1.45 | OS: | Any |
| Assigned to: | Gleb Shchepa | CPU Architecture: | Any |
[22 Apr 2010 22:07]
Ryan Mack
[22 Apr 2010 22:16]
Ryan Mack
Sorry, to clarify, the truncation only occurs when using --default-character-set along with tabular output.
[23 Apr 2010 0:17]
Ryan Mack
Here is a patch that includes a test case and one possible fix. This skips conversions on blobs and handles large text fields.
Attachment: bug53088-2.patch (application/octet-stream, text), 16.51 KiB.
[23 Apr 2010 12:26]
MySQL Verification Team
Verified as described with 5.1.40sp1 on x86_64.
[27 Apr 2010 16:34]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/106707 3359 Gleb Shchepa 2010-04-27 Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars mysqldump and SELECT ... INTO OUTFILE truncated long BLOB/TEXT values to size of 766 bytes (MAX_FIELD_WIDTH or 255 * 3 + 1). The select_export::send_data method has been modified to reallocate a conversion buffer for long field data. @ mysql-test/r/mysqldump.result Test case for bug #53088. @ mysql-test/r/outfile_loaddata.result Test case for bug #53088. @ mysql-test/t/mysqldump.test Test case for bug #53088. @ mysql-test/t/outfile_loaddata.test Test case for bug #53088. @ sql/sql_class.cc Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars The select_export::send_data method has been modified to reallocate a conversion buffer for long field data.
[28 Apr 2010 8:21]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/106759 3359 Gleb Shchepa 2010-04-28 Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars mysqldump and SELECT ... INTO OUTFILE silently truncated long BLOB/TEXT values to the size of 766 bytes (MAX_FIELD_WIDTH or 255 * 3 + 1). The select_export::send_data method has been modified to reallocate a conversion buffer for long field data. @ mysql-test/r/mysqldump.result Test case for bug #53088. @ mysql-test/r/outfile_loaddata.result Test case for bug #53088. @ mysql-test/t/mysqldump.test Test case for bug #53088. @ mysql-test/t/outfile_loaddata.test Test case for bug #53088. @ sql/sql_class.cc Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars The select_export::send_data method has been modified to reallocate a conversion buffer for long field data.
[28 Apr 2010 8:55]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/106766 3359 Gleb Shchepa 2010-04-28 Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars mysqldump and SELECT ... INTO OUTFILE silently truncated long BLOB/TEXT values to the size of 766 bytes (MAX_FIELD_WIDTH or 255 * 3 + 1). The select_export::send_data method has been modified to reallocate a conversion buffer for long field data. @ mysql-test/r/mysqldump.result Test case for bug #53088. @ mysql-test/r/outfile_loaddata.result Test case for bug #53088. @ mysql-test/t/mysqldump.test Test case for bug #53088. @ mysql-test/t/outfile_loaddata.test Test case for bug #53088. @ sql/sql_class.cc Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars The select_export::send_data method has been modified to reallocate a conversion buffer for long field data.
[28 Apr 2010 19:01]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/106866 3359 Gleb Shchepa 2010-04-28 Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars mysqldump and SELECT ... INTO OUTFILE silently truncated long BLOB/TEXT values to the size of 766 bytes (MAX_FIELD_WIDTH or 255 * 3 + 1). The select_export::send_data method has been modified to reallocate a conversion buffer for long field data. @ mysql-test/r/mysqldump.result Test case for bug #53088. @ mysql-test/r/outfile_loaddata.result Test case for bug #53088. @ mysql-test/t/mysqldump.test Test case for bug #53088. @ mysql-test/t/outfile_loaddata.test Test case for bug #53088. @ sql/sql_class.cc Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars The select_export::send_data method has been modified to reallocate a conversion buffer for long field data.
[29 Apr 2010 14:13]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/106951 3359 Gleb Shchepa 2010-04-29 Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars mysqldump and SELECT ... INTO OUTFILE silently truncated long BLOB/TEXT values to the size of 766 bytes (MAX_FIELD_WIDTH or 255 * 3 + 1). The select_export::send_data method has been modified to reallocate a conversion buffer for long field data. @ mysql-test/r/mysqldump.result Test case for bug #53088. @ mysql-test/r/outfile_loaddata.result Test case for bug #53088. @ mysql-test/t/mysqldump.test Test case for bug #53088. @ mysql-test/t/outfile_loaddata.test Test case for bug #53088. @ sql/sql_class.cc Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars The select_export::send_data method has been modified to reallocate a conversion buffer for long field data.
[29 Apr 2010 14:19]
Alexander Barkov
http://lists.mysql.com/commits/106951 is Ok to push.
[29 Apr 2010 15:36]
Ryan Mack
If someone has the time, could they explain to me what the effect of converting a binary charset column to any other charset would be and why it would be desirable? We run some of our backups with -T --default-character-set=latin1 and I am wondering if the conversion form binary to latin1 may cause corruption when the data is reloaded. In my local patch I explicitly made binary->non-binary charset conversion a NOOP to better match the pre-5.1.31 behavior, but that doesn't appear to be part of the official patch. I am reluctant to convert to the official patch without understanding the behavior better. Thank you, Ryan
[29 Apr 2010 17:56]
Gleb Shchepa
Ryan, > [29 Apr 17:36] Ryan Mack > If someone has the time, could they explain to me what > the effect of converting a binary charset column to any > other charset would be and why it would be desirable? Yes, usually conversion of binary data is unnecessary, however if we try to save binary column into a file of the UCS2, UTF16 or UTF32 charset (minimal character lengths are 2, 2 and 4 respectively), we have to do some padding, otherwise the resulting output may be unreadable. MySQL 5.1 doesn't support OUTFILE/mysqldump output to these charsets, this conversion is for future use. In any case, it doesn't affect dumping to the latin1 charset.
[6 May 2010 9:56]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/107614 3359 Gleb Shchepa 2010-05-06 Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars mysqldump and SELECT ... INTO OUTFILE silently truncated long BLOB/TEXT values to the size of 766 bytes (MAX_FIELD_WIDTH or 255 * 3 + 1). The select_export::send_data method has been modified to reallocate a conversion buffer for long field data. @ mysql-test/r/mysqldump.result Test case for bug #53088. @ mysql-test/r/outfile_loaddata.result Test case for bug #53088. @ mysql-test/t/mysqldump.test Test case for bug #53088. @ mysql-test/t/outfile_loaddata.test Test case for bug #53088. @ sql/sql_class.cc Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars The select_export::send_data method has been modified to reallocate a conversion buffer for long field data.
[6 May 2010 20:54]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/107691 3371 Gleb Shchepa 2010-05-07 Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars mysqldump and SELECT ... INTO OUTFILE truncated long BLOB/TEXT values to size of 766 bytes (MAX_FIELD_WIDTH or 255 * 3 + 1). The select_export::send_data method has been modified to reallocate a conversion buffer for long field data. @ mysql-test/r/mysqldump.result Test case for bug #53088. @ mysql-test/r/outfile_loaddata.result Test case for bug #53088. @ mysql-test/t/mysqldump.test Test case for bug #53088. @ mysql-test/t/outfile_loaddata.test Test case for bug #53088. @ sql/sql_class.cc Bug #53088: mysqldump with -T & --default-character-set set truncates text/blob to 766 chars The select_export::send_data method has been modified to reallocate a conversion buffer for long field data.
[28 May 2010 5:53]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100524190136-egaq7e8zgkwb9aqi) (version source revid:alik@sun.com-20100512070920-xgpmqeytp0gc183c) (pib:16)
[28 May 2010 6:22]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100524190941-nuudpx60if25wsvx) (version source revid:alik@sun.com-20100514054548-91z72f0mcskr84kj) (merge vers: 6.0.14-alpha) (pib:16)
[28 May 2010 6:50]
Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100524185725-c8k5q7v60i5nix3t) (version source revid:alexey.kopytov@sun.com-20100508220335-xsvmtj21h4yeu8mf) (merge vers: 5.5.5-m3) (pib:16)
[2 Jun 2010 8:50]
Bugs System
Pushed into 5.1.48 (revid:georgi.kodinov@oracle.com-20100602084411-2yu607bslbmgufl3) (version source revid:martin.hansson@sun.com-20100507071216-mxvljum43kqu3q0u) (merge vers: 5.1.47) (pib:16)
[4 Jun 2010 1:47]
Paul DuBois
Noted in 5.1.48, 5.5.5, 6.0.14 changelogs.
[14 Oct 2010 8:28]
Bugs System
Pushed into mysql-5.1-telco-7.0 5.1.51-ndb-7.0.20 (revid:martin.skold@mysql.com-20101014082627-jrmy9xbfbtrebw3c) (version source revid:vasil.dimov@oracle.com-20100513074652-0cvlhgkesgbb2bfh) (merge vers: 5.5.5-m3) (pib:21)
[14 Oct 2010 8:42]
Bugs System
Pushed into mysql-5.1-telco-6.3 5.1.51-ndb-6.3.39 (revid:martin.skold@mysql.com-20101014083757-5qo48b86d69zjvzj) (version source revid:vasil.dimov@oracle.com-20100513074652-0cvlhgkesgbb2bfh) (merge vers: 5.5.5-m3) (pib:21)
[14 Oct 2010 8:57]
Bugs System
Pushed into mysql-5.1-telco-6.2 5.1.51-ndb-6.2.19 (revid:martin.skold@mysql.com-20101014084420-y54ecj85j5we27oa) (version source revid:vasil.dimov@oracle.com-20100513074652-0cvlhgkesgbb2bfh) (merge vers: 5.5.5-m3) (pib:21)
[14 Oct 2010 14:48]
Jon Stephens
Already documented in the 5.1.48 changelog; no new changelog entries required. setting back to Closed state.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.069 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.