Problem was the use of SHOW PROCESSLIST. This is not fully functional in
embedded server, STATE is hardcoded to "Writing to net".
Fixed using --replace_result for STATE.
The test is supposed to provoke a deadlock, to test a crash of the server in
some deadlock scenarios.
The problem is that in recent version of MySQL, no deadlock occurs. It is not
clear why a deadlock should be expected. One transaction does an insert+delete
on primary key value 1 in table t2. The other transaction does an insert on
primary key value 123. There seems no reason that these should conflict, so
there is no deadlock.
(Presumably an earlier version did get a deadlock due to maybe taking excessive
locks on the insert+delete of primary key value 1. The table has only one row,
so maybe a different locking was used ("Impossible WHERE noticed after reading
const tables"))
Fix is to have transaction 1 lock PK 1 and transaction 2 lock PK 123. Then have
transaction 2 access PK 1 (wait) and transaction 1 access PK 123 (deadlock).
It has been checked that this modified test case still crashes the server in
the same way prior to fix of the original bug (Bug#24989).
mysql-test/include/read_many_rows.inc:
Provoke deadlock on same PK value in the two transactions to ensure that the
deadlock does occur independently on whatever execution plan is chosen.
mysql-test/r/read_many_rows_innodb.result:
Result file update.
Some result updates necessary due to extra tables and columns added in
information_schema in MariaDB (XtraDB, PBXT, microsec_process).
Also fix bad merge of two result files; apparently the test case was merged,
but the result file was not.
mysql-test/suite/funcs_1/datadict/processlist_priv.inc:
Handle the new TIME_MS column in information_schema.processlist.
mysql-test/suite/funcs_1/datadict/processlist_val.inc:
Handle the new TIME_MS column in information_schema.processlist.
mysql-test/suite/funcs_1/r/is_columns_is.result:
Handle new tables in information_schema.
mysql-test/suite/funcs_1/r/is_tables_is.result:
Handle new tables in information_schema.
mysql-test/suite/funcs_1/r/is_tables_myisam.result:
Fix previous bad merge; apparently this file was not merged along with test changes.
mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result:
Handle the new TIME_MS column in information_schema.processlist.
mysql-test/suite/funcs_1/r/processlist_val_no_prot.result:
Fix previous bad merge; apparently this file was not merged along with test changes.
Also handle the new TIME_MS column in INFORMATION_SCHEMA.PROCESSLIST.
mysql-test/suite/funcs_1/t/is_columns_is.test:
Since result file includes PBXT information_schema tables, we need PBXT to run this test.
Fix some connect options to work with embedded.
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
Disable in --embedded tests that rely on the mysqltest --list_files command,
which does not seem to work properly in --embedded.
mysql-test/suite/parts/t/partition_alter1_1_2_innodb.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter1_1_2_myisam.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter1_1_innodb.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter1_1_myisam.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter1_2_innodb.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter1_2_myisam.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter2_1_innodb.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter2_1_maria.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter2_1_myisam.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter2_2_innodb.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter2_2_maria.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter2_2_myisam.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter3_innodb.test:
Disable in --embedded tests that rely on the mysqltest --list_files command,
which does not seem to work properly in --embedded.
mysql-test/suite/parts/t/partition_alter3_myisam.test:
Disable in --embedded tests that rely on the mysqltest --list_files command,
which does not seem to work properly in --embedded.
mysql-test/suite/parts/t/partition_alter4_innodb.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_alter4_myisam.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_basic_innodb.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_basic_myisam.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_basic_symlink_myisam.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_engine_innodb.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_engine_myisam.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_special_innodb.test:
Fix some connect options to work with embedded.
mysql-test/suite/parts/t/partition_syntax_innodb.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
mysql-test/suite/parts/t/partition_syntax_myisam.test:
Disable in --embedded tests that rely on connecting to mysqld externally by
spawning mysqltest.
The --enable_prepare_warnings allows to not discard warnings from autorepair
of crashed table in --ps-protocol mode.
Use this to properly fix the parts.partition_recover_myisam and
maria.maria-recover tests.
Add a test case for the new feature. This also adds missing test coverage
for the case where the same warning is thrown in both prepare and execute
phase.
client/mysqltest.cc:
Implement new commands --enable-prepare_warnings and --disable_prepare_warnings.
mysql-test/r/mysqltest_ps.result:
Add test case for new --enable_prepare_warning mysqltest command.
mysql-test/suite/maria/t/maria-recover.test:
Better fix of test case using new --enable_prepare_warnings command.
mysql-test/suite/parts/t/partition_recover_myisam.test:
Fix test failure in --ps-protocol mode.
mysql-test/t/mysqltest_ps.test:
Add test case for new --enable_prepare_warning mysqltest command.
- Include maria_chk and other maria binaries
- Include sql/$TARGET/mysqld.lib, like mainline does (but what is that useful for?)
- Don't include my_safe_{process,kill} garbage.
- call '/bin/find', not just 'find' is that is some incompatible windows command.
- Don't need any m1 prefix for the first release based on given MySQL
version number.
- Fix mysql-test-run to understand that some stuff is installed under
share/mariadb rather than share/mysql.
- Update EXPLAIN results after table elimination
- mysqlslap now specifies 'Engine=' in CREATE TABLE instead of using
SET storage_engine=...
- For some reason, mysqltest logs "connect" command differently when PBXT
is the default storage engine. This is probably a bug in mysqltest which
we can't be bothered to investigate at the moment, so add --replace
mysql-test/suite/pbxt/r/connect.result:
Fix pbxt test suite failures:
- For some reason, mysqltest logs "connect" command differently when PBXT
is the default storage engine. This is probably a bug in mysqltest which
we can't be bothered to investigate at the moment, so add --replace
mysql-test/suite/pbxt/r/mysqlslap.result:
Fix pbxt test suite failures:
- mysqlslap now specifies 'Engine=' in CREATE TABLE instead of using
SET storage_engine=...
mysql-test/suite/pbxt/r/ps_11bugs.result:
Fix pbxt test suite failures:
- Update EXPLAIN results after table elimination
mysql-test/suite/pbxt/r/select.result:
Fix pbxt test suite failures:
- Update EXPLAIN results after table elimination
mysql-test/suite/pbxt/r/union.result:
Fix pbxt test suite failures:
- Update EXPLAIN results after table elimination
mysql-test/suite/pbxt/t/connect.test:
Fix pbxt test suite failures:
- For some reason, mysqltest logs "connect" command differently when PBXT
is the default storage engine. This is probably a bug in mysqltest which
we can't be bothered to investigate at the moment, so add --replace
- innodb-index needs regexp replace for embedded like other similar tests.
- partitions_special_* need to be modified for the extension from 16 to 32
max key parts allowed that was made in MariaDB.
When DNS is not working and returns some address even for non-existing
host names, some test cases fail with wrong error.
Fix by disabling these tests on such systems.
"Merge Monty's fixes from main into release branch" .. cset):
- mysql_get_server_name() is a new client API function and so should
be exported from libmysql[d].
libmysql/libmysql.def:
mysql_get_server_name() is a new client API function and so should
be exported from libmysql[d].
libmysqld/libmysqld.def:
mysql_get_server_name() is a new client API function and so should
be exported from libmysql[d].
- Don't omit the @@debug variable from testcase check, since it can cause real problems.
- Fix some bad merges by reverting to be identical to MySQL 5.1.
mysql-test/include/mtr_check.sql:
Don't omit the @@debug variable from testcase check, since it can cause real problems.
mysql-test/r/mysqlbinlog_row_big.result:
Fix incorrect merge.
mysql-test/r/variables-big.result:
Fix incorrect merge, by reverting to MySQL 5.1 version.
mysql-test/t/mysqlbinlog_row_big.test:
Fix incorrect merge.
mysql-test/t/variables-big.test:
Fix incorrect merge, by reverting to MySQL 5.1 version.
storage/maria/ma_blockrec.c:
GCC warns about const vs. non-const despite cast
(but it is in any case cleaner to avoid the cast completely)
support-files/compiler_warnings.supp:
Silence a wrong compiler warning caused by GCC bug.
mysql-test/r/mysqld_option_err.result:
Test that mysqld --not-known-option --help --verbose gives error
mysql-test/t/mysqld_option_err.test:
Test that mysqld --not-known-option --help --verbose gives error
- mysql_get_server_name()
This returns MySQL or MariaDB depending on the server type
- mariadb_connection()
This returns 1 if you are connected to a MariaDB server
Modifed the MySQL command line client to print out if you are connected to MariaDB or MySQL
Better default prompt (shows server you are connected to and base directory)
client/mysql.cc:
Print out if you are connected to MariaDB or MySQL
Better default prompt (shows server you are connected to and base directory)
Added option \N to prompt to print server name.
configure.in:
Changed maria to MariaDB in version string
include/mysql.h:
Added mysql_get_server_name() and mariadb_connection()
include/mysql.h.pp:
Update for new API functions
libmysql/libmysql.c:
Added client functions:
- mysql_get_server_name()
This returns MySQL or MariaDB depending on the server type
- mariadb_connection()
This returns 1 if you are connected to a MariaDB server
server, as it doesn't work there.
sql/sql_plugin.cc:
Temporary solution: skip PBXT (like we do e.g. for --skip-innodb) in embedded server, as it doesn't work there.