Commit graph

177226 commits

Author SHA1 Message Date
Sergei Petrunia
c35a5884b0 Mark rocksdb.bulk_load and rocksdb.add_index_inplace_sstfilewriter as big
They use much more disk space than all other tests in rocksdb test suite
2017-04-02 14:51:59 +03:00
Sergei Petrunia
0aa056f642 Disable persistent_cache.test due to upstream MyRocks issue #579. 2017-04-02 13:12:19 +03:00
Sergei Petrunia
20d9fbcf9a MDEV-12424: binlog_encryption.encrypted_* tests fail with Can't locate autodie.pm error
Don't use Perl autodie module as there are platforms where it is not present
2017-04-02 12:18:23 +03:00
Sergei Golubchik
238c6700dd include C/C fix for binding of int values to string variables
fixes many test failures in optimized builds in --ps-protocol
2017-04-01 19:32:36 +02:00
Sergei Golubchik
190591968e vcol.wrong_arena fails in fulltest
vcols in the table definition are intentionaly bad and produce
warnings when a table is opened. In some cases (depending on the
TDC/TC state as left by earlier tests) a table might be opened in the
middle of the test, resulting in spurious warnings. Suppress them.

Also, don't run main.mdev-504 for ps-protocol at all (instead of
disabling ps-protocol inside the test, but still running the test)
2017-04-01 19:32:36 +02:00
Sergei Golubchik
e68f7402c5 Avoid TARGET_LINK_LIBRARIES() for plugins
as a plugin can be disabled, so the target doesn't necessarily exist
2017-04-01 19:32:26 +02:00
Sergei Golubchik
22d8bb2706 MDEV-12421 Check constraint with query crashes server and renders DB unusable
parse CHECK constraint *before* Column_definition validity checks
2017-04-01 18:59:29 +02:00
Vladislav Vaintroub
9501c7d06e Merge branch 'bb-10.2-mariarocks' into bb-10.2-mariarocks-wlad 2017-04-01 16:05:08 +00:00
Vladislav Vaintroub
a194390eb8 Allow to specify C runtime library used for compilation.
Default to static release (previously static debug was used in debug
builds, but not is appears to be too slow)
2017-04-01 16:00:31 +00:00
Sergei Petrunia
74889de426 Apply a workaround for MyRocks upstream issue #569
We are hitting this
https://github.com/facebook/mysql-5.6/issues/569
and we are not ready to merge the fix currently
2017-04-01 16:11:19 +03:00
Vladislav Vaintroub
ba85f519b9 Fixes for innodb crash recovery tests from Serg 2017-04-01 12:39:09 +00:00
Vladislav Vaintroub
df92ba3459 MariaRocks : Fix looking up sst_dump 2017-04-01 11:51:24 +00:00
Vladislav Vaintroub
92c24fda08 Fix result files 2017-04-01 14:15:18 +03:00
Vladislav Vaintroub
980905c884 Fix result files 2017-04-01 11:01:36 +00:00
Vladislav Vaintroub
e6a28b298d Merge branch 'bb-10.2-mariarocks' into bb-10.2-mariarocks-wlad 2017-04-01 10:55:54 +00:00
Vladislav Vaintroub
58bff40d6c Enable MariaRocks test on Buildbot 2017-04-01 10:47:06 +00:00
Vladislav Vaintroub
62ba511314 Fix the build on Windows.
Restore MYSQL_SYSVAR_UINT64_T and MYSQL_SYSVAR_SIZE_T in
plugin.h
2017-04-01 10:37:36 +00:00
Sergei Petrunia
9cdc6bcfe4 Update test results after changes in search_pattern_in_file.inc 2017-04-01 12:56:45 +03:00
Vicențiu Ciorbaru
321f5d9d70 Fix debian architecture parsing 2017-04-01 10:17:26 +03:00
Sergei Petrunia
788382f77a Fix coompilation on windows
Some Windows enviroments don't have uint64_t, and we dont really need
that type. Assume 64-bit integers take 8 bytes.
2017-04-01 06:32:20 +03:00
Sergei Golubchik
6315426565 restore libmariadb state
that was destroyed in a previous commit
2017-03-31 19:56:15 +02:00
Sergei Golubchik
16a99c5ad9 MariaRocks tests: various cleanups
remove hard-coded paths (that assumed we're in a source tree)
remove various shell/perl/awk/whatsnot scripts, use mysqltest and perl
remove numerous --exec /some/unix/tool commands, use mysqltest and perl
2017-03-31 19:28:58 +02:00
Sergei Golubchik
b2865a437f search_pattern_in_file.inc changes
1. Special mode to search in error logs: if SEARCH_RANGE is not set,
   the file is considered an error log and the search is performed
   since the last CURRENT_TEST: line
2. Number of matches is printed too. "FOUND 5 /foo/ in bar".
   Use greedy .* at the end of the pattern if number of matches
   isn't stable. If nothing is found it's still "NOT FOUND",
   not "FOUND 0".
3. SEARCH_ABORT specifies the prefix of the output.
   Can be "NOT FOUND" or "FOUND" as before,
   but also "FOUND 5 " if needed.
2017-03-31 19:28:58 +02:00
Sergei Golubchik
d6d994bf42 remove two redundant *.inc files to restart a server
namely, restart_mysqld_with_option.inc and kill_and_restart_mysqld.inc -
use restart_mysqld.inc instead.

Also remove innodb_wl6501_crash_stripped.inc that wasn't used anywhere.
2017-03-31 19:28:58 +02:00
Sergei Golubchik
143e771dee ha_start_consistent_snapshot() did not check for errors 2017-03-31 19:28:58 +02:00
Sergei Golubchik
6e899642fe move rocksdb specific changes into rocksdb 2017-03-31 19:28:57 +02:00
Sergei Golubchik
9ce639af52 don't export all charsets to plugins
don't use internal server collation symbol names, use collation
properties and collation IDs, they are much more stable.
2017-03-31 19:22:20 +02:00
Sergei Golubchik
76a262cdf8 remove my_hash_const_element(), use Hash_set in C++ code 2017-03-31 19:22:19 +02:00
Sergei Golubchik
63798a6ea8 remove DB_TYPE_ROCKSDB 2017-03-31 19:22:19 +02:00
Sergei Golubchik
ac8218a0be fix Ninja builds for AWS SDK
specify BUILD_BYPRODUCTS, ninja needs it
2017-03-31 18:20:17 +02:00
Sergei Golubchik
31896aa6e2 put all aws_key_management plugin files into plugin/aws_key_management
that is, download AWS SDK there, not into the builddir root.
and .gitignore them all.
2017-03-31 18:17:53 +02:00
Vladislav Vaintroub
9de7386f6f AWS KMS plugin : Fix building in case AWS C++ SDK was preinstalled
into non-standard compiler/linker path (e.g vcpkg on Windows).

Also fix linking with static preinstalled aws c++ sdk libraries
2017-03-31 16:01:37 +00:00
Marko Mäkelä
124bae082b MDEV-12289 Keep 128 persistent rollback segments for compatibility and performance
InnoDB divides the allocation of undo logs into rollback segments.
The DB_ROLL_PTR system column of clustered indexes can address up to
128 rollback segments (TRX_SYS_N_RSEGS). Originally, InnoDB only
created one rollback segment. In MySQL 5.5 or in the InnoDB Plugin
for MySQL 5.1, all 128 rollback segments were created.

MySQL 5.7 hard-codes the rollback segment IDs 1..32 for temporary undo logs.
On upgrade, unless a slow shutdown (innodb_fast_shutdown=0)
was performed on the old server instance, these rollback segments
could be in use by transactions that are in XA PREPARE state or
transactions that were left behind by a server kill followed by a
normal shutdown immediately after restart.

Persistent tables cannot refer to temporary undo logs or vice versa.
Therefore, we should keep two distinct sets of rollback segments:
one for persistent tables and another for temporary tables. In this way,
all 128 rollback segments will be available for both types of tables,
which could improve performance. Also, MariaDB 10.2 will remain more
compatible than MySQL 5.7 with data files from earlier versions of
MySQL or MariaDB.

trx_sys_t::temp_rsegs[TRX_SYS_N_RSEGS]: A new array of temporary
rollback segments. The trx_sys_t::rseg_array[TRX_SYS_N_RSEGS] will
be solely for persistent undo logs.

srv_tmp_undo_logs. Remove. Use the constant TRX_SYS_N_RSEGS.

srv_available_undo_logs: Change the type to ulong.

trx_rseg_get_on_id(): Remove. Instead, let the callers refer to
trx_sys directly.

trx_rseg_create(), trx_sysf_rseg_find_free(): Remove unneeded parameters.
These functions only deal with persistent undo logs.

trx_temp_rseg_create(): New function, to create all temporary rollback
segments at server startup.

trx_rseg_t::is_persistent(): Determine if the rollback segment is for
persistent tables.

trx_sys_is_noredo_rseg_slot(): Remove. The callers must know based on
context (such as table handle) whether the DB_ROLL_PTR is referring to
a persistent undo log.

trx_sys_create_rsegs(): Remove all parameters, which were always passed
as global variables. Instead, modify the global variables directly.

enum trx_rseg_type_t: Remove.

trx_t::get_temp_rseg(): A method to ensure that a temporary
rollback segment has been assigned for the transaction.

trx_t::assign_temp_rseg(): Replaces trx_assign_rseg().

trx_purge_free_segment(), trx_purge_truncate_rseg_history():
Remove the redundant variable noredo=false.
Temporary undo logs are discarded immediately at transaction commit
or rollback, not lazily by purge.

trx_purge_mark_undo_for_truncate(): Remove references to the
temporary rollback segments.

trx_purge_mark_undo_for_truncate(): Remove a check for temporary
rollback segments. Only the dedicated persistent undo log tablespaces
can be truncated.

trx_undo_get_undo_rec_low(), trx_undo_get_undo_rec(): Add the
parameter is_temp.

trx_rseg_mem_restore(): Split from trx_rseg_mem_create().
Initialize the undo log and the rollback segment from the file
data structures.

trx_sysf_get_n_rseg_slots(): Renamed from
trx_sysf_used_slots_for_redo_rseg(). Count the persistent
rollback segment headers that have been initialized.

trx_sys_close(): Also free trx_sys->temp_rsegs[].

get_next_redo_rseg(): Merged to trx_assign_rseg_low().

trx_assign_rseg_low(): Remove the parameters and access the
global variables directly. Revert to simple round-robin, now that
the whole trx_sys->rseg_array[] is for persistent undo log again.

get_next_noredo_rseg(): Moved to trx_t::assign_temp_rseg().

srv_undo_tablespaces_init(): Remove some parameters and use the
global variables directly. Clarify some error messages.

Adjust the test innodb.log_file. Apparently, before these changes,
InnoDB somehow ignored missing dedicated undo tablespace files that
are pointed by the TRX_SYS header page, possibly losing part of
essential transaction system state.
2017-03-31 18:53:04 +03:00
Vladislav Vaintroub
dd3b7ad10f MariaRocks : Run rocksdb suite on Windows 2017-03-31 14:06:28 +00:00
Sergei Golubchik
0b9a13a8fc update C/C to fix main.mysql_client_test_nonblock failures 2017-03-31 15:03:02 +02:00
Alexander Barkov
f00a314f9a Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext 2017-03-31 16:40:29 +04:00
Sergei Golubchik
6fbcf4134a properly close the table in fill_schema_table_from_frm()
this closes the memory leak, that started to appear after da5c3e03f6
2017-03-31 14:16:28 +02:00
Alexander Barkov
2f3d4bd566 MDEV-12416 OOM in create_virtual_tmp_table() makes the server crash 2017-03-31 15:18:28 +04:00
Alexander Barkov
e191833d75 MDEV-12415 Remove sp_name::m_qname 2017-03-31 14:26:43 +04:00
Sergei Petrunia
54a892e133 Post-merge fixes 2017-03-31 01:32:59 +03:00
Sergei Petrunia
5210c69e71 Merge 10.2 into bb-10.2-mariarocks 2017-03-31 01:14:00 +03:00
Marko Mäkelä
a0c79bcf00 Rename InnoDB transaction undo logging predicates.
trx::has_logged_persistent(): Renamed from trx_is_redo_rseg_updated().
Determines if a transaction has generated any persistent undo log.

trx::has_logged(): Renamed from trx_is_rseg_updated().
Determines if a transaction has generated any undo log.
2017-03-30 14:35:19 +03:00
Marko Mäkelä
d1374c5b77 MDEV-12345 post-merge fix. 2017-03-30 14:34:45 +03:00
Sergei Golubchik
72c6af8d1a disable failing test, see MDEV-11420 2017-03-30 13:12:57 +02:00
Sergei Golubchik
da4d71d10d Merge branch '10.1' into 10.2 2017-03-30 12:48:42 +02:00
Sergei Golubchik
9ec8500998 update libmariadb, enable C/C unit tests 2017-03-30 09:27:03 +02:00
Sergei Golubchik
8599f16b9d fix mysql-test unit suite to work for out-of-source builds 2017-03-30 09:12:33 +02:00
Jacob Mathew
3c422e60bb MDEV-11115 CHECK constraints are not shown in I_S.TABLE_CONSTRAINTS
Added CHECK constraints to I_S.TABLE_CONSTRAINTS.
Fixed a bug regarding virtual column definitions whose name is the field name.
Added test case: check_constraint_show
2017-03-29 12:07:33 -07:00
Alexander Barkov
0d8dc74d30 Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext 2017-03-29 20:51:54 +04:00
Igor Babaev
4ebdef2bcd Fixed bug mdev-12336.
The function Item::split_sum_func2() incorrectly processed the function
items with window functions that were not window functions themselfes
and were used as arguments of other functions.
2017-03-29 08:46:00 -07:00