| Bug #90268 | log_error_services components should be comma-separated | ||
|---|---|---|---|
| Submitted: | 31 Mar 2018 4:48 | Modified: | 1 May 2018 16:34 |
| Reporter: | Giuseppe Maxia (OCA) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Options | Severity: | S3 (Non-critical) |
| Version: | 8.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | usability | ||
[31 Mar 2018 5:15]
MySQL Verification Team
Hello Giuseppe, Thank you for the feedback! This is documented "A list of semicolon-separated components to enable for error logging." - https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error_serv... But I fully agree, for uniformity and consistency with other system variables, log_error_services options should be comma-separated. Thanks, Umesh
[5 Apr 2018 3:14]
Tatjana Nuernberg
Posted by developer:
';' was used as we're separating a list of (usually loadable) components; this aligns its syntax with that of --plugin-load, which also uses semicoli to delimit loadable components. ',' was also specifically reserved in case a syntax extension of the form
SET @@global.log_error_servies="componentA{setting1=123, setting2='test'}; componentB";
would later become necessary. As the component framework has prospered, that scenario seems mostly covered by per-component variables now, however.
[24 Apr 2018 1:51]
Tatjana Nuernberg
Posted by developer: As per the commit message, we now support both ';' and ',', with ',' being the preferred variant.
[1 May 2018 16:34]
Paul DuBois
Posted by developer: Fixed in 8.0.12. Previously, log components listed in the log_error_services system variable had to be separated by semicolons. Components now can be separated by commas. A given setting cannot use both semicolon and comma separators.

Description: "log_error_services" is the only system variable that requires semicolons instead of commas or colons. This makes its usage by external tools unnecessarily more complicated. Usually, semicolon is used to delimit various SQL components. The other system variable that require semicolons are "init-connect", because it can list more SQL statements, and "tmpdir" on Windows. For uniformity and consistency with other system variables, log_error_services components should be comma-separated. How to repeat: try setting several components of log_error_services using commas: mysql [localhost] {msandbox} ((none)) > SET GLOBAL log_error_services = 'log_filter_internal, log_sink_internal, log_sink_json'; ERROR 1231 (42000): Variable 'log_error_services' can't be set to the value of 'log_filter_internal, log_sink_internal, log_sink_json' mysql [localhost] {msandbox} ((none)) > SET GLOBAL log_error_services = 'log_filter_internal; log_sink_internal; log_sink_json'; Query OK, 0 rows affected (0.00 sec)