← Back to team overview

maria-developers team mailing list archive

Re: Removing very old options for --old, --new, --safe-mode


Hi, Michael!

On Sep 14, Michael Widenius wrote:
> Hi!
> I did notice that we haven't cleaned up the usage of the
> --old, --new, --safe-mode and --skip-new options in a long time.
> Here is a cleanup of this for MariaDB 5.2 (soon to be made gamma).
> After this suggested change, here is how the options would work:
> --new	Use new functionality that will exist in next version of
>         MariaDB. This function exist to make it easier to prepare for an
>         upgrade. For version 5.1 this functions enables the LIST and RANGE
>         partitions functions for ndbcluster.
> --old   Use compatible behavior with previous main version for some
>         functionality. For MariaDB 5.1 this means that we are using the old,
>         MySQL 5.1 compatible, way to calculate checksums for records. If you
>         are using --old, CHECKSUM TABLE will always do a full table scan.
> --safe_mode
>    	Disable some potential unsafe optimization. For 5.2 these are:
>    	INSERT DELAYED is disabled, myisam_recover_options is set to
>    	DEFAULT (automatically recover crashed MyISAM files). For Aria
>    	table, disable bulk insert optimization to enable one to use
>    	maria_read_log to recover tables even if tables are deleted
>    	(good for testing recovery).
> --skip-new
> 	Skip some new potentially unsafe functions. For 5.2 these are:
> 	INSERT DELAYED is disabled, Query cache size is reset.
> Any comments ?

my_getopt supports skip- prefix for all options.
Having --skip-new that is different from --skip-new is very confusing.
No, "very" is an understatement, Very, VERY, terribly, awfully, deadly

In fact - really! - before I saw this your email, I did not realize
there is --skip-new option, and naively thought it's just --skip-new.

So, please, please, remove --skip-new option altogether, and let
--skip-new to mean what it should (according to the principle of the
least surprise) - disabling previously enabled --new.


P.S. If you cannot see the difference between --skip-new and --skip-new,
please replace every second "--skip-new" in this email with --new=0
or --disable-new :)

Follow ups