| Bug #34777 | mysqlbinlog: --help output for --base64-output is hard to understand | ||
|---|---|---|---|
| Submitted: | 23 Feb 2008 16:54 | Modified: | 11 Nov 15:21 |
| Reporter: | Paul DuBois | ||
| Status: | Closed | ||
| Category: | Client | Severity: | S3 (Non-critical) |
| Version: | 5.1 | OS: | Any |
| Assigned to: | Daogang Qu | Target Version: | 5.1+ |
| Triage: | Triaged: D4 (Minor) / R1 (None/Negligible) / E1 (None/Negligible) | ||
[23 Feb 2008 21:43]
Valeriy Kravchuk
Thank you for a bug report.
[24 Apr 2008 22:27]
Jim Winstead
This text was already changed in 5.1. It now warns that this option is only for debugging purposes.
[23 Sep 17:48]
Sven Sandberg
The text in 5.1 has not been changed, it is still as in this report. Re-opening the bug and assigning to replication team.
[10 Oct 11:37]
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/86481 3153 Dao-Gang.Qu@sun.com 2009-10-10 Bug #34777 mysqlbinlog: --help output for --base64-output is hard to understand There are some problems about help text: - It is stated that "auto" is the default twice. It need be stated only once. - It is stated that --base64-output is short for --base64-output=always. But that sounds like the default is "always", not "auto". Make the help text clear as following: Determine when the output statements should be base64-encoded BINLOG statements: 'never' disables it and works only for binlogs without row-based events; 'auto' prints base64 only when necessary (i.e., for row-based events and format description events); 'always' prints base64 whenever possible. 'always' is for debugging only and should not be used in a production system. If this argument is not given, the default is 'auto'; if it is given with no argument, 'always'is used.
[16 Oct 7:27]
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/87061 3175 Dao-Gang.Qu@sun.com 2009-10-16 Bug #34777 mysqlbinlog: --help output for --base64-output is hard to understand There are some problems about help text: - It is stated that "auto" is the default twice. It need be stated only once. - It is stated that --base64-output is short for --base64-output=always. But that sounds like the default is "always", not "auto". Make the help text clear as following: Determine when the output statements should be base64-encoded BINLOG statements: 'never' disables it and works only for binlogs without row-based events; 'auto' prints base64 only when necessary (i.e., for row-based events and format description events); 'always' prints base64 whenever possible. 'always' is for debugging only and should not be used in a production system. If this argument is not given, the default is 'auto'; if it is given with no argument, 'always' is used.
[20 Oct 7:18]
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/87389 3186 Dao-Gang.Qu@sun.com 2009-10-20 Bug #34777 mysqlbinlog: --help output for --base64-output is hard to understand There are some problems about help text: - It is stated that "auto" is the default twice. It need be stated only once. - It is stated that --base64-output is short for --base64-output=always. But that sounds like the default is "always", not "auto". Make the help text clear as following: Determine when the output statements should be base64-encoded BINLOG statements: 'never' disables it and works only for binlogs without row-based events; 'auto' prints base64 only when necessary (i.e., for row-based events and format description events); 'always' prints base64 whenever possible. 'always' is for debugging only and should not be used in a production system. If this argument is not given, the default is 'auto'; if it is given with no argument, 'always' is used.
[20 Oct 7:27]
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/87391 3679 Dao-Gang.Qu@sun.com 2009-10-20 [merge] Bug #34777 mysqlbinlog: --help output for --base64-output is hard to understand There are some problems about help text: - It is stated that "auto" is the default twice. It need be stated only once. - It is stated that --base64-output is short for --base64-output=always. But that sounds like the default is "always", not "auto". Make the help text clear as following: Determine when the output statements should be base64-encoded BINLOG statements: 'never' disables it and works only for binlogs without row-based events; 'auto' prints base64 only when necessary (i.e., for row-based events and format description events); 'always' prints base64 whenever possible. 'always' is for debugging only and should not be used in a production system. If this argument is not given, the default is 'auto'; if it is given with no argument, 'always' is used.
[22 Oct 17:48]
Paul DuBois
I'm sorry at this late date to point out another problem, but I've just become aware of another issue: There is another possible --base64-output value: decode-rows. That value isn't listed in the --help text. The manual describes this value thus: DECODE-ROWS specifies to mysqlbinlog that you intend for row events to be decoded and displayed as commented SQL statements by also specifying the --verbose option. Like NEVER, DECODE-ROWS suppresses display of BINLOG statements, but unlike NEVER, it does not exit with an error if a row event is found. http://dev.mysql.com/doc/refman/5.1/en/mysqlbinlog.html Will that be addressed here, or would you like me to open a separate bug report?
[26 Oct 9:45]
Sven Sandberg
Setting back to in-progress based on Paul's comment.
[26 Oct 9:45]
Sven Sandberg
Setting back to verified based on Paul's comment.
[27 Oct 4:45]
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/88240 3192 Dao-Gang.Qu@sun.com 2009-10-27 Bug #34777 mysqlbinlog: --help output for --base64-output is hard to understand Append the description of the 'decode-rows' value for --base64-output argument.
[27 Oct 10:10]
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/88267 3192 Dao-Gang.Qu@sun.com 2009-10-27 Bug #34777 mysqlbinlog: --help output for --base64-output is hard to understand Append the description of the 'decode-rows' value for --base64-output argument.
[28 Oct 8:06]
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/88439 3161 Dao-Gang.Qu@sun.com 2009-10-28 Bug #34777 mysqlbinlog: --help output for --base64-output is hard to understand Append the description of the 'decode-rows' value for --base64-output argument.
[28 Oct 8:14]
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/88440 3649 Dao-Gang.Qu@sun.com 2009-10-28 [merge] Bug #34777 mysqlbinlog: --help output for --base64-output is hard to understand Append the description of the 'decode-rows' value for --base64-output argument.
[4 Nov 10:24]
Bugs System
Pushed into 5.1.41 (revid:joro@sun.com-20091104092152-qz96bzlf2o1japwc) (version source revid:kristofer.pettersson@sun.com-20091103162305-08l4gkeuif2ozsoj) (merge vers: 5.1.41) (pib:13)
[5 Nov 2:40]
Paul DuBois
Cosmetic change. No changelog entry needed. Setting report to NDI pending push to 5.5.x.
[11 Nov 7:48]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091110093407-rw5g8dys2baqkt67) (version source revid:alik@sun.com-20091109080109-7dxapd5y5pxlu08w) (merge vers: 6.0.14-alpha) (pib:13)
[11 Nov 7:55]
Bugs System
Pushed into 5.5.0-beta (revid:alik@sun.com-20091109115615-nuohp02h8mdrz8m2) (version source revid:alik@sun.com-20091105092355-jzukkw6wnd7hmgrj) (merge vers: 5.5.0-beta) (pib:13)
[11 Nov 15:21]
Paul DuBois
Cosmetic change. No changelog entry needed.

Description: In mysqlbinlog.cc, the option structure for the --base64-output option looks like this: {"base64-output", OPT_BASE64_OUTPUT_MODE, "Determine when the output statements should be base64-encoded BINLOG " "statements: 'never' disables it and works only for binlogs without " "row-based events; 'auto' is the default and prints base64 only when " "necessary (i.e., for row-based events and format description events); " "'always' prints base64 whenever possible. 'always' is for debugging " "only and should not be used in a production system. The default is " "'auto'. --base64-output is a short form for --base64-output=always." ,(uchar**) &opt_base64_output_mode_str, (uchar**) &opt_base64_output_mode_str, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, There are some problems here: - It is stated that "auto" is the default twice. It need be stated only once. - It is stated that --base64-output is short for --base64-output=always. But that sounds like the default is "always", not "auto". I cannot figure out what this means, but I'm guessing the reality is this: If the --base64-output option is not given at all, the default is "auto". If the --base64-output option is given without a value, the default is "always" How to repeat: N/A Suggested fix: If my suppositions about how the option is used are correct, I suggest this help text (which also eliminates the duplicate statement about 'auto' being the default): Determine when the output statements should be base64-encoded BINLOG statements: 'never' disables it and works only for binlogs without row-based events; 'auto' prints base64 only when necessary (i.e., for row-based events and format description events); 'always' prints base64 whenever possible. 'always' is for debugging only and should not be used in a production system. If this argument is not given, the default is 'auto'; if it is given with no argument, 'always'is used.