- Before this, one had to provide appropriate --mysqld=.... options to
mysql-test-run.
- Also moved one option from rocksdb/suite.opt to rocksdb/my.cnf.
MySQL's log entries start with log entries like
YYYY-MM-DD 08:25:04 ...
while MariaDB
YYYY-MM-DD 8:25:04 ...
note that '08' turns into ' 8'.
Made grep pattern to account for this.
- Make the same changes as in the previous cset and in
a cset changing rocksdb.col_opt_null a few csets before.
- MySQL 5.6.11 has fixes for Bug #68472, Bug #16394472, MariaDB doesn't.
adjust the testcase accordingly.
Make the same changes as with rocksdb.col_opt_null a few csets before:
- MariaDB doesn't provide a default value for non-NULL columns
- Wording in error messages is different
- limits for DECIMAL columns are different
- YEAR(2) is deprecated but still supported
- Also added a --sorted_result for an I_S query.
Based on discussion at maria-developers@:
- Remove 'Support --force-restart "pseudo-argument"'
that was added a few csets before
- Instead, use "source include/restart_mysqld.inc" in the
testcases that need a freshly-started server
The differences are due:
- MariaDB 10.1+ assigns different DEFAULT values
= in some cases, MariaDB's table has no default value, while
MySQL's has '' as default.
= BLOB/TEXT can have a default value.
- MariaDB's MTR runs tests with diffferent timezone (affects result of
FROM_UNIXTIME())
- MySQL has removed YEAR(2). MariaDB produces warning but still creates
the column of this type.
- Different wording in warning/error messages.
MySQL has each storage engine to increment Handler_XXX counters,
while MariaDB has handler::ha_XXX() methods to do the increments.
MariaDB's solution doesn't work for storage engines that implement
handler::read_range_first(), though.
Make ha_rocksdb::read_range_first increment the counter (when it is
calling handler::ha_XXX() function that will)
filename_to_tablename() in MariaDB produces warnings when its is
called for temporary file names.
Don't call this function for temporary filename (as we don't need
its result anyway)
- MariaDB has different wording for a few error messages
- MySQL changed Extra='' to Extra=NULL for EXPLAIN outputs, MariaDB didnt
- The testsuite in storage/rocksdb/mysql-test needs paths to include
files adjusted
- In SHOW COLUMNS output, Extra column is "NULL" in MariaDB vs '' in MySQL
Running MTR tests produces an error like this after the test run:
... 140562896741120 [ERROR] Invalid (old?) table or database name '.rocksdb'
There seems to be no way to have the MariaRocks to prevent these, so
the current way to fix them is to have --ignore-db-dirs in my.cnf
In MariaDB, Field::make_sort_key stores NULL-indicator byte for
the field.
In MySQL, it doesn't, so MyRocks stores the NULL-indicator itself.
Switch to using Field::sort_string, which is the same as
Field::make_sort_key in MySQL.
- Add include/have_rocksdb.inc (TODO: is there any way to have this
file somewhere under storage/rocksdb/mysql-test ?)
- Make rocksdb.test require have_partition.inc because it uses
partitioned tables
- RocksDB uses RTTI (e.g. it uses dynamic_cast)
- mysql-5.6 has RTTI enabled for the whole server, so there's no
conflict.
- MariaDB doesn't have RTTI enabled
So the solution is to enable RTTI for
- RocksDB files
- Parts of MyRocks that interface with RocksDB features that require RTTI.
(If one just enables RTTI for all of MyRocks, they will get a
"undefined reference to `typeinfo for handler'" link error)
The original parameter comes from
commit a869c56d361bb44f46c0efeb11a8f03561676247
write/sync redo log before flushing binlog cache to file
we've already disabled some of that patch in
8cde1d449a
(why are table reads/writes/updates collected in ha_statistics?
this structure was intended for table statistics that the engine
reports.. and now it is also used for engine-agnostic statistics
like rows_read, rows_requested, etc?)