mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
8e4566e912
We should assume that the store engine will report the first duplicate key for this case. Old code of suppression of unsafe logging error with LIMIT didn't work, because of wrong usage of my_interval_timer(). Suppress unsafe logging errors to the error log if we get too many unsafe logging errors in a short time. This is to not overflow the error log with meaningless errors. - Each error code is suppressed and counted separately. - We do a 5 minute suppression of new errors if we get more than 10 errors in that time. Only print unsafe logging errors if log_warnings > 1. mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result: Update test results as INSERT ... ON DUPLICATE KEY UPDATE doesn't get logged anymore mysql-test/suite/binlog/r/binlog_unsafe.result: Update test results as INSERT ... ON DUPLICATE KEY UPDATE doesn't get logged anymore mysql-test/suite/engines/README: Fixed typos mysql-test/suite/rpl/r/rpl_known_bugs_detection.result: Update test results as INSERT ... ON DUPLICATE KEY UPDATE doesn't get logged anymore sql/sql_base.cc: Don't log warning if there are two unique keys used with INSERT .. ON DUPLICATE KEY UPDATE. We should assume that the store engine will report the first duplicate key for this case. sql/sql_class.cc: Suppress error in binary log if we get too many unsafe logging errors in a short time. Only print unsafe logging errors if log_warnings > 1
67 lines
3.2 KiB
Text
67 lines
3.2 KiB
Text
This directory includes a set of three test suites aimed as testing
|
|
functionality in an engine independent way, that is - the tests should
|
|
work identically against different engines.
|
|
|
|
The following suites are included:
|
|
|
|
1) 'funcs' suite
|
|
-------------
|
|
A collection of functional tests covering basic engine and server
|
|
functionality that can be run against any engine.
|
|
|
|
To run the test suite:
|
|
cd INSTALL_DIR/mysql-test
|
|
run: perl ./mysql-test-run.pl --suite=engines/funcs --mysqld=--default-storage-engine=<engine>
|
|
|
|
2) 'iuds' suite
|
|
------------
|
|
Similar to the above focused on insert/update/delete operations of different data types.
|
|
|
|
To run the test suite:
|
|
cd INSTALL_DIR/mysql-test
|
|
run: perl ./mysql-test-run.pl --suite=engines/iuds --mysqld=--default-storage-engine=<engine>
|
|
|
|
3) 'rr_trx' suite (transactional engines only)
|
|
--------------
|
|
A scenario of multiple client connections verifying transactions with repeatable read isolation level
|
|
|
|
To run the test suite with innodb:
|
|
cd INSTALL_DIR/mysql-test
|
|
run: perl ./suite/engines/rr_trx/run_stress_tx_rr.pl --engine=<engine> [--duration=<nn>]
|
|
[--threads=<nn>] [--try] [--help]
|
|
|
|
This test is can be run against any transactional engine. However scripts need to be modified in order
|
|
to support such engines (current scripts support only InnoDB).
|
|
In order to add support for a new engine, you will need to modify scripts as follows:
|
|
1) cd to INSTALL_DIR/mysql-test/suite/engines/rr_trx
|
|
2) Modify the 'run_stress_rr.pl' file by adding an 'elsif' section for your engine and have it
|
|
include specific values required to be passed as startup parameters to the MySQL server by
|
|
specifying them using "--mysqld" options (see InnoDB example).
|
|
3) Copy the 'init_innodb.txt' file to 'init_<engine>.txt file and change its content to be "init_<engine>".
|
|
4) In the 't' directory copy the "init_innodb.test" file to "init_<engine>.test" and change the value of
|
|
the '$engine' variable to <engine>.
|
|
5) In the 'r' directory copy "the init_innodb.result" file to "init_<engine>.result" and change references
|
|
to 'InnoDB' to <engine>.
|
|
|
|
|
|
Known Issues
|
|
------------
|
|
1) The following tests in the 'iuds' suite:
|
|
- delete_decimal
|
|
- insert_decimal
|
|
- update_decimal
|
|
will return a 'Warning 1264 - Out of range value...' warning if run in a 32-bit environment.
|
|
Add the '--force' option to prevent the test run from aborting.
|
|
|
|
2) The following tests in the 'funcs' suite will fail when run against the innodb_plugin:
|
|
- crash_manycolumns_string (bug 50495)
|
|
- ix_unique_lob (bug 52056, masked by an 'Out of memory error' on some 32-bit platforms)
|
|
- ix_unique_string_length (bug 52056, masked by an 'Out of memory error' on some 32-bit platforms)
|
|
Add the '--force' option to prevent the test run from aborting.
|
|
|
|
3) Some of the rpl_xxx tests in the 'funcs' suite require a specific
|
|
binlog_format setting and will be skipped otherwise.
|
|
|
|
4) Some of the rpl_xxx tests in the 'funcs' suite will report a
|
|
'Statement unsafe for replication' warning when run against a
|
|
server configured to use statement based replication.
|