Hi, Rucha! On Nov 05, Rucha Deodhar wrote:
On Nov 04, Rucha Deodhar wrote:
revision-id: 80749146b7d (mariadb-10.6.1-77-g80749146b7d) parent(s): 76149650764 author: Rucha Deodhar committer: Rucha Deodhar timestamp: 2021-09-12 02:11:19 +0530 message:
MDEV-26238: Remove inconsistent behaviour of --default-* options in my_print_defaults
diff --git a/extra/my_print_defaults.c b/extra/my_print_defaults.c index b7f52382721..607509a309e 100644 --- a/extra/my_print_defaults.c +++ b/extra/my_print_defaults.c @@ -141,50 +124,39 @@ static int get_options(int *argc,char ***argv) ... + /* + We already process --defaults* options at the beginning in + get_defaults_options(). So skip --defaults* options and + pass remaining options to handle_options(). + */ + if (is_prefix(org_argv[1], "--no-defaults")) + args_used--;
I'm sorry, I don't understand. Why do you need that?
I made it to keep the output consistent with previous version.
If --no-defaults is present in the command line, then it is counted in args_used when get_defaults_options() is called. Later we skip "args_used" number of arguments so that only non-default options mentioned after --default-* options are passed to get_options().
The above code decreases this count when --no-defaults is present so that we don't skip it unlike --defaults-* options and pass it to get_options(). It is required to pass --no-defaults to get_options() because if it is not passed then it produces output which looks like --help ( if no other options are there in addition to --no-defaults). If it is passed to get_options(), then --no-defaults produces no output like it does in 10.6.
But it's correct, isn't it? If you run my_print_defaults with no groups, it'll print the help text. Try, for example, my_print_defaults --defaults-file=var/my.cnf (presuming you're in mysql-test dir). You'll get the help text, because you didn't specify any groups. Or my_print_defaults --defaults-extra-file=var/my.cnf But my_print_defaults --no-defaults doesn't do it. Doesn't behave like other *defaults* options. We can easily preserve the inconsisent "if --no-defaults, no group is required" behavior with, like if (my_no_defaults) cleanup_and_exit(0); (and add my_no_defaults to my_default.h). But I don't think it's necessary. Regards, Sergei VP of MariaDB Server Engineering and security@mariadb.org