Commit graph

175247 commits

Author SHA1 Message Date
Sergei Petrunia
a5f72fb3c2 MariaRocks port: put MyRocks options into rocksdb/my.cnf
- 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.
2016-11-12 06:56:39 +00:00
Sergei Petrunia
c4270952b7 MariaRocks port: fix rocksdb.rocksdb_checksums to work for MariaDB in the mornings
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.
2016-11-12 06:09:13 +00:00
Sergei Petrunia
0f1821db19 MariaRocks port: make rocksdb.rocksdb_cf_options test pass
Copy mysql-test/include/restart_mysqld_with_option.inc from
facebook/mysql-5.6
2016-11-12 05:15:06 +00:00
Sergei Petrunia
183ab78bab MariaRocks port: more test result updates, again
- 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.
2016-11-12 04:48:47 +00:00
Sergei Petrunia
223c14e706 MariaRocks port: more test result updates
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.
2016-11-10 22:50:01 +00:00
Sergei Petrunia
792aaedb42 MariaRocks port: Use another way to handle --force-restart
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
2016-11-10 21:32:31 +00:00
Sergei Petrunia
8014a942b7 MariaRocks port: update results for rocksdb.col_opt_null test.
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.
2016-11-10 20:36:24 +00:00
Sergei Petrunia
ce9aeb888e MariaRocks port: Support --force-restart "pseudo-argument", part#2 2016-11-07 02:49:49 +03:00
Sergei Petrunia
600a2075b5 MariaRocks port: more of testcase Maria-fication 2016-11-06 22:18:11 +00:00
Sergei Petrunia
f246829e2f MariaRocks port: Support --force-restart "pseudo-argument"
testcases can specify it in *.opt files, it causes the server(s)
to be restarted before running the testcase.

MTRv1 supported this, this patch adds support for MTRv2
2016-11-07 01:05:55 +03:00
Sergei Petrunia
df407fca0b MariaRocks port: fix a few more testcases 2016-11-05 23:19:09 +00:00
Sergei Petrunia
0ab7cb236e MariaRocks port: More of testcase Maria-fication 2016-11-05 22:29:02 +00:00
Sergei Petrunia
a42b9003f4 MariaRocks port: more of testcase Maria-fication
- Adjust paths to MyRocks tests
- s/@@dbug/@@debug_dbug/
- etc
2016-11-05 19:23:18 +00:00
Sergei Petrunia
ece3ab3702 MariaRocks port: add have_rocksdb.opt which enables MyRocks' plugins
A number of tests used to fail due to just not being able to
access MyRocks' I_S plugins:
cons_snapshot_repeatable_read
-drop_table3
-index_file_map
-index_key_block_size
-issue100_delete
-truncate_table3
2016-11-05 17:20:33 +00:00
Sergei Petrunia
997c86c76c MariaRocks port: fix rocksdb.handler_basic test
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)
2016-10-30 21:07:16 +00:00
Sergei Petrunia
4462e77afa MariaRocks port: update result for rocksdb.type_char_indexes (see MDEV-11172) 2016-10-29 13:23:42 +00:00
Sergei Petrunia
15f2bcfa94 MariaRocks port: get rid of "invalid table name" in the error log
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)
2016-10-29 00:30:01 +00:00
Sergei Petrunia
1d1211ab1a MariaRocks port: trivial Maria-fication of test results
Updated test results for obvious MariaDB vs MySQL differences
2016-10-29 00:23:58 +00:00
Sergei Petrunia
9826edb6b8 MariaRocks port: fix a few test result differences, part#2. 2016-10-27 00:32:59 +03:00
Sergei Petrunia
f23a0093e1 MariaRocks port: fix a few test result differences
- 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
2016-10-26 23:56:59 +03:00
Sergei Petrunia
e9ee999e77 MariaRocks port: "get rid of Invalid (old?) table or database name" error
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
2016-10-25 15:01:27 +00:00
Sergei Petrunia
bc646ee881 MariaRocks: fix a bug in MariaDB: SHOW STATUS LIKE shows extra rows
SHOW STATUS LIKE 'pattern' returned Rocksdb_XXX status variables
that had SHOW_FUNC type but didn't match the pattern (for example
Rocksdb_block_cache_add).

Among other things, this caused MTR to assume that each testcase
has damaged the execution environment.

The issue was a unitialized variable and then a typo in the condition
that checks if variable name matches the pattern.
2016-10-24 20:55:26 +00:00
Sergei Petrunia
1d1b10e93c MariaRocks: rocksdb.rocksdb fails with a duplicate key error
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.
2016-10-24 20:51:44 +00:00
Sergei Petrunia
3ac33f8cdb MariaRocks: fix a compilation problem
rdb_cf_options.cc must be compiled with RTTI
2016-10-24 12:04:01 +00:00
Sergei Petrunia
8d8858c10a MariaRocks: trying to get the MTR tests to work
- 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
2016-10-24 10:38:18 +00:00
Sergei Petrunia
015617879a MariaRocks port: fix a typo in test_if_order_by_key()
- Off-by-one error in handler->index_flags() parameter caused
it to be called for the keypart that's after the last key part.
2016-10-24 10:35:56 +00:00
Sergei Petrunia
680a206b13 MariaRocks port: compile the needed files with -frtti
- 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)
2016-10-23 18:28:07 +00:00
Sergei Petrunia
fd4e83eb32 MariaRocks port: update ha_rocksdb::delete_all_rows() to match the definition in class handler 2016-10-21 21:27:23 +00:00
Sergei Petrunia
e22b271b39 MariaRocks port: compilation fixes 2016-10-21 21:11:47 +00:00
Sergei Petrunia
86d963eb08 MariaRocks port: provide timeout_message()
Also, ER_LOCK_WAIT_TIMEOUT error doesn't have a string parameter
in MariaDB.
2016-10-21 20:05:40 +00:00
Sergei Petrunia
8c5912e9ee MariaRocks port: temporarily disable gap lock checking
Also provide handler::is_using_full_key
2016-10-19 14:27:43 +00:00
Sergei Petrunia
fe0b57dfbe MariaRocks port: disable more code that synchronizes with the binlog 2016-10-19 13:16:51 +00:00
Sergei Petrunia
085fa3e4bc MariaRocks port: rli_slave is called rgi_slave in MariaDB. 2016-10-19 12:15:59 +00:00
Sergei Petrunia
e951fd17e8 MariaRocks port: make rocksdb_flush_wal() match handlerton::flush_logs definition
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
2016-10-19 12:00:22 +00:00
Sergei Petrunia
960fbc38d6 MariaRocks port: temporarily? disable "CONSISTENT INNODB|ROCKSDB SNAPSHOT" feature
cset
c2b8ced16e255ffdbcc1e638ac8dd4f398eb1a93
Implement START TRANSACTION WITH CONSISTENT INNODB SNAPSHOT
2016-10-17 16:53:20 +00:00
Sergei Petrunia
0a132ae7a2 MariaRocks: disable more of my_io_perf_t usage 2016-10-16 18:38:34 +00:00
Sergei Petrunia
fdf026a4ad MariaRocks port: s/my_core::thd_killed/thd_killed/ 2016-10-16 18:07:35 +00:00
Sergei Petrunia
9b78cd3cac MariaRocks port: MariaDB doesn't support SHOW ENGINE ROCKSDB TRANSACTION STATUS
Should we start supporting it?
2016-10-16 18:02:28 +00:00
Sergei Petrunia
c6dee75759 MariaRocks: MariaDB doesnt support ICP over backwards index scans yet 2016-10-16 14:34:46 +00:00
Sergei Petrunia
54295beee2 MariaRocks port: compare_key_icp() is called compare_key2() in MariaDB 2016-10-16 14:28:22 +00:00
Sergei Petrunia
8cde1d449a MariaRocks port: disable thd_store_lsn() call
It is from "write/sync redo log before flushing binlog cache to file"
feature that MariaDB doesn't have (or need?)
2016-10-16 14:16:58 +00:00
Sergei Petrunia
1dead2d213 MariaRocks port: MariaDB has no "ASYNC_COMMIT" feature
adjust a few function definitions accordingly
2016-10-16 14:06:25 +00:00
Sergei Petrunia
e43ce18597 MariaRocks port: use correct path in CMakeLists.txt 2016-10-16 12:45:53 +00:00
Sergei Petrunia
27adea907b MariaRocks port: temporarily disable rdb_collation_exceptions
Then Regex_list_handler is not needed and we don't have to backport
it right now.
2016-10-16 12:30:51 +00:00
Sergei Petrunia
7eef3de1ae MariaRocks port: In MariaDB, there's no Field_longlong::PACK_LENGTH
And the code in ha_rocksdb.cc makes assumptions about hidden pk length
being 8, anyway.
2016-10-16 11:56:14 +00:00
Sergei Petrunia
b42248d2f2 MyRocks port: make Field::char_length() a const function 2016-10-16 11:39:55 +00:00
Sergei Petrunia
a7091b0679 Temporarily disable Read-Free replication in MariaRocks, part#2
(Squash with 4be8cae56a)
2016-10-16 11:17:19 +00:00
Sergei Petrunia
d26283458c MariaRocks port: make key_restore() parameter const 2016-10-16 11:01:01 +00:00
Sergei Petrunia
274e5be194 MariaRocks: port my_hash_const_element
"Add new function my_hash_const_element(), the const equivalent of
my_hash_element()" - comes from facebook/mysql-5.6,
7c869d34b9fa2262b941efd6363a260b7c37948f
2016-10-16 11:00:07 +00:00
Sergei Petrunia
f456532c62 MariaRocks port: compile RocksDB with -frtti.
Probably this is not the right way to do it, see the comment
2016-10-15 21:20:52 +00:00