Re: [Maria-developers] Rev 3908: MDEV-5277 - Ensure that all MySQL 5.6 options are supported
Hi, Sergey! On Nov 20, Sergey Vojtovich wrote:
revno: 3908 revision-id: svoj@mariadb.org-20131120113753-vuxj3v4jt9cvccdy parent: svoj@mariadb.org-20131114140000-5eq8gopqu5giwvqq committer: Sergey Vojtovich <svoj@mariadb.org> branch nick: 10.0-mdev5277 timestamp: Wed 2013-11-20 15:37:53 +0400 message: MDEV-5277 - Ensure that all MySQL 5.6 options are supported by the MariaDB 10.0 server === modified file 'mysql-test/r/mysqld--help.result' --- a/mysql-test/r/mysqld--help.result 2013-11-03 20:26:44 +0000 +++ b/mysql-test/r/mysqld--help.result 2013-11-20 11:37:53 +0000 @@ -4,6 +4,9 @@ --defaults-file=# Only read default options from the given file #. --defaults-extra-file=# Read this file after the global files are read.
+ --abort-slave-event-count[=name] + MySQL 5.6 compatibility option. Use + '--debug-abort-slave-event-count' instead. --allow-suspicious-udfs
Do we really want all these do-nothing compatibility options to show up in --help? May be not? The goal of this MDEV was not to fail with an error when starting on mysqld's my.cnf file, no one needs --help for that.
Allows use of UDFs consisting of only one symbol xxx() without corresponding xxx_init() or xxx_deinit(). That @@ -136,10 +151,16 @@ --deadlock-timeout-short=# Short timeout for the two-step deadlock detection (in microseconds) + --default-authentication-plugin[=name] + MySQL 5.6 compatibility option. To be implemented in + later 10.x versions.
Remove "10.x" please, just "in later versions". We don't want to promise that all these options will be implemented in 10.x series.
=== modified file 'storage/innobase/handler/ha_innodb.cc' --- a/storage/innobase/handler/ha_innodb.cc 2013-11-13 21:58:19 +0000 +++ b/storage/innobase/handler/ha_innodb.cc 2013-11-20 11:37:53 +0000 @@ -15750,6 +15750,12 @@ static MYSQL_SYSVAR_BOOL(purge_stop_now, PLUGIN_VAR_OPCMDARG, "Set purge state to STOP", NULL, purge_stop_now_set, FALSE); + +static my_bool innodb_log_checkpoint_now; +static MYSQL_SYSVAR_BOOL(log_checkpoint_now, innodb_log_checkpoint_now, + PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_NOSYSVAR, + "MySQL 5.6 compatibility option. To be implemented in later 10.x versions.", + NULL, NULL, FALSE); #endif /* UNIV_DEBUG */
Why is that (and everything else in ha_innodb.cc) necessary? We'll merge with the latest InnoDB, we will have all its variables. Regards, Sergei
Hi, Sergey!
On Nov 20, Sergey Vojtovich wrote:
revno: 3908 revision-id: svoj@mariadb.org-20131120113753-vuxj3v4jt9cvccdy parent: svoj@mariadb.org-20131114140000-5eq8gopqu5giwvqq committer: Sergey Vojtovich <svoj@mariadb.org> branch nick: 10.0-mdev5277 timestamp: Wed 2013-11-20 15:37:53 +0400 message: MDEV-5277 - Ensure that all MySQL 5.6 options are supported by the MariaDB 10.0 server === modified file 'mysql-test/r/mysqld--help.result' --- a/mysql-test/r/mysqld--help.result 2013-11-03 20:26:44 +0000 +++ b/mysql-test/r/mysqld--help.result 2013-11-20 11:37:53 +0000 @@ -4,6 +4,9 @@ --defaults-file=# Only read default options from the given file #. --defaults-extra-file=# Read this file after the global files are read.
+ --abort-slave-event-count[=name] + MySQL 5.6 compatibility option. Use + '--debug-abort-slave-event-count' instead. --allow-suspicious-udfs
Do we really want all these do-nothing compatibility options to show up in --help? May be not? The goal of this MDEV was not to fail with an error when starting on mysqld's my.cnf file, no one needs --help for that. Agree. I just checked my_getopt sources and couldn't find easy way to hide
Hi Sergei, thanks for your review. Questions inline. On Fri, Nov 22, 2013 at 04:54:55PM +0100, Sergei Golubchik wrote: them. Do you have an idea how to hide them properly, or shall I just add something like GET_HIDDEN flag?
Allows use of UDFs consisting of only one symbol xxx() without corresponding xxx_init() or xxx_deinit(). That @@ -136,10 +151,16 @@ --deadlock-timeout-short=# Short timeout for the two-step deadlock detection (in microseconds) + --default-authentication-plugin[=name] + MySQL 5.6 compatibility option. To be implemented in + later 10.x versions.
Remove "10.x" please, just "in later versions". We don't want to promise that all these options will be implemented in 10.x series.
Ok.
=== modified file 'storage/innobase/handler/ha_innodb.cc' --- a/storage/innobase/handler/ha_innodb.cc 2013-11-13 21:58:19 +0000 +++ b/storage/innobase/handler/ha_innodb.cc 2013-11-20 11:37:53 +0000 @@ -15750,6 +15750,12 @@ static MYSQL_SYSVAR_BOOL(purge_stop_now, PLUGIN_VAR_OPCMDARG, "Set purge state to STOP", NULL, purge_stop_now_set, FALSE); + +static my_bool innodb_log_checkpoint_now; +static MYSQL_SYSVAR_BOOL(log_checkpoint_now, innodb_log_checkpoint_now, + PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_NOSYSVAR, + "MySQL 5.6 compatibility option. To be implemented in later 10.x versions.", + NULL, NULL, FALSE); #endif /* UNIV_DEBUG */
Why is that (and everything else in ha_innodb.cc) necessary? We'll merge with the latest InnoDB, we will have all its variables.
Same reason as for the other "to be implemented" options. Do you think there is any difference? Thanks, Sergey
Hi, Sergey! On Nov 25, Sergey Vojtovich wrote:
Do we really want all these do-nothing compatibility options to show up in --help? May be not? The goal of this MDEV was not to fail with an error when starting on mysqld's my.cnf file, no one needs --help for that.
Agree. I just checked my_getopt sources and couldn't find easy way to hide them. Do you have an idea how to hide them properly, or shall I just add something like GET_HIDDEN flag?
GET_xxx normally specifies a type, like GET_DOUBLE. In fact, sql_plugin.cc internally uses a convention that NULL in the comment field means that the option isn't displayed. We could do the same in my_getopt.
=== modified file 'storage/innobase/handler/ha_innodb.cc' --- a/storage/innobase/handler/ha_innodb.cc 2013-11-13 21:58:19 +0000 +++ b/storage/innobase/handler/ha_innodb.cc 2013-11-20 11:37:53 +0000 @@ -15750,6 +15750,12 @@ static MYSQL_SYSVAR_BOOL(purge_stop_now, PLUGIN_VAR_OPCMDARG, "Set purge state to STOP", NULL, purge_stop_now_set, FALSE); + +static my_bool innodb_log_checkpoint_now; +static MYSQL_SYSVAR_BOOL(log_checkpoint_now, innodb_log_checkpoint_now, + PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_NOSYSVAR, + "MySQL 5.6 compatibility option. To be implemented in later 10.x versions.", + NULL, NULL, FALSE); #endif /* UNIV_DEBUG */
Why is that (and everything else in ha_innodb.cc) necessary? We'll merge with the latest InnoDB, we will have all its variables. Same reason as for the other "to be implemented" options. Do you think there is any difference?
Yes. For other options we need to made a conscious decision to merge the feature and then actually merge it. We might do it for some options and might not do it for others, on a case by case basis. For InnoDB options we already decided that we will merge latest InnoDB changes. Thus we know for sure that all these options will be in 10.0.7, there is no place for "might not" or "case by case". Your changes will only cause merge conflicts. Regards, Sergei
Hi Sergei, I implemented all your suggestions. Could you take a look at updated patch? Thanks, Sergey On Mon, Nov 25, 2013 at 09:17:02AM +0100, Sergei Golubchik wrote:
Hi, Sergey!
On Nov 25, Sergey Vojtovich wrote:
Do we really want all these do-nothing compatibility options to show up in --help? May be not? The goal of this MDEV was not to fail with an error when starting on mysqld's my.cnf file, no one needs --help for that.
Agree. I just checked my_getopt sources and couldn't find easy way to hide them. Do you have an idea how to hide them properly, or shall I just add something like GET_HIDDEN flag?
GET_xxx normally specifies a type, like GET_DOUBLE.
In fact, sql_plugin.cc internally uses a convention that NULL in the comment field means that the option isn't displayed. We could do the same in my_getopt.
=== modified file 'storage/innobase/handler/ha_innodb.cc' --- a/storage/innobase/handler/ha_innodb.cc 2013-11-13 21:58:19 +0000 +++ b/storage/innobase/handler/ha_innodb.cc 2013-11-20 11:37:53 +0000 @@ -15750,6 +15750,12 @@ static MYSQL_SYSVAR_BOOL(purge_stop_now, PLUGIN_VAR_OPCMDARG, "Set purge state to STOP", NULL, purge_stop_now_set, FALSE); + +static my_bool innodb_log_checkpoint_now; +static MYSQL_SYSVAR_BOOL(log_checkpoint_now, innodb_log_checkpoint_now, + PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_NOSYSVAR, + "MySQL 5.6 compatibility option. To be implemented in later 10.x versions.", + NULL, NULL, FALSE); #endif /* UNIV_DEBUG */
Why is that (and everything else in ha_innodb.cc) necessary? We'll merge with the latest InnoDB, we will have all its variables. Same reason as for the other "to be implemented" options. Do you think there is any difference?
Yes. For other options we need to made a conscious decision to merge the feature and then actually merge it. We might do it for some options and might not do it for others, on a case by case basis.
For InnoDB options we already decided that we will merge latest InnoDB changes. Thus we know for sure that all these options will be in 10.0.7, there is no place for "might not" or "case by case". Your changes will only cause merge conflicts.
Regards, Sergei
participants (2)
-
Sergei Golubchik
-
Sergey Vojtovich