I had reason to look into the extended secondary index code in
MariaDB and MySQL recently, and there was one bit that I really
didn’t like.
MariaDB:
share->set_use_ext_keys_flag(legacy_db_type ==
DB_TYPE_INNODB);
MySQL:
use_extended_sk= (legacy_db_type == DB_TYPE_INNODB);
In case you were wondering what “legacy_db_type” actually does,
let me tell you: it’s not legacy at all, it’s kind of key to how
the whole “metadata” system in MySQL works. For example, to drop
a table, this magic number is used to work out what storage
engine to call to drop the table.
Now, these code snippets basically kiss goodbye to the idea of a
“pluggable storage engine” architecture. If you’re not InnoDB,
you don’t get to have certain features. This isn’t exactly MySQL
or MariaDB encouraging an open storage engine ecosystem (quite
the opposite really).
…
[Read more]