Commit graph

180888 commits

Author SHA1 Message Date
Otto Kekäläinen
b5edb4ca3a Deb: Add missing files into correct packages and rest in not-installed
There was a lot of files generated by the sources that were not installed
in any package. This fixes most of those issues, but not all. Files still
outside any package are in the not-installed, which is used by dh_install.

Also make sure all configuration files are installed to the correct
location that matches layout used by Debian official packages.
2018-01-16 13:48:00 +02:00
Otto Kekäläinen
dbc9cfa52b Deb: .manpages files should only contain man pages unique to deb packages
All man pages that stem from the actual sources should be installed along
everything else in .install files.
2018-01-16 13:48:00 +02:00
Otto Kekäläinen
711e8c5634 MDEV-12642: Build deb source packages on buildbot, just not on Travis-CI 2018-01-16 13:48:00 +02:00
Otto Kekäläinen
a41192def8 Deb: Fix spelling etc Lintian complaints 2018-01-16 13:48:00 +02:00
Otto Kekäläinen
ed00fd2bce Deb: switch from usr/include/mysql to usr/include/mariadb
Matching libmariadb-dev package contents in official Debian repositories,
the MariaDB Connector/C files should go into a folder using the 'mariadb'
name. For compatibility with sources that expect to find 'mysql' stuff,
create a symlink from include/mysql to include/mariadb.
2018-01-16 13:48:00 +02:00
Otto Kekäläinen
5b3bf57be2 Deb: Install missing man pages 2018-01-16 13:48:00 +02:00
Otto Kekäläinen
be59851ad9 Deb: Match official Debian package libmariadb-dev-compat
Using this package any source that expects MySQL Client libraries should
build without changes. Sources that expect MariaDB Connector C should
build using only libmariadb-dev.

Current MariaDB Connector/C does not build quite identically in
this source tree compared to how it build in Debian official.
The remaining differences are tracked in MDEV-14921.
2018-01-16 13:48:00 +02:00
Otto Kekäläinen
9ef2268eda Deb: Simplify libmariadb.so.3 links
No path is required. These files always reside in the same directory
anyway.
2018-01-16 13:48:00 +02:00
Otto Kekäläinen
65db816c32 Deb: Split libmysqlclient19/20 compat links into a separate package
We already ship libmysqlclient18 that replaces any existing package
with the same name and install symlinks that point to out libmariadb.so.

Instead of creating more packages, we add just one more that does the
same and provides both libmysqlclient19 and -20 replacements symlinks.

This is a clean solution, because systems that only use (and are built
against) libmariadb will not need them and if somebody has done a mistake
in the linker parameters, they will spot it and can easily update the
filename to libmariadb.
2018-01-16 13:48:00 +02:00
Otto Kekäläinen
90f1f72622 Deb: Add missing files to packages
- tokuft_logprint should be shipped in the TokuDB plugin
- mysql_install_db is needed for installing/upgrading the datadir
  so it must be in the server core package so users can roll their
  own upgrades
2018-01-16 13:48:00 +02:00
Otto Kekäläinen
503fcfb80f Deb: Re-remove unnecessary version suffixes from package names
There is no point in having version suffixes in plugin packages. They
will via their control file anyway depend on the correct server or client
version. Having version suffices has no benefit and it just complicates
upgrades when a new major version name package needs to replace all
possible previous version.

This issue was overlooked when merging commit
844a575946 from 10.2 into 10.3, so it
needs to be manually fixed now.
2018-01-16 13:48:00 +02:00
Otto Kekäläinen
9719fb4bef Deb: Re-rename *.files into *.install
The correct format for new Debian packages is to define install lists
as *.install files. This has already been fixed for 10.3, but it when
merging commit c5a525bda2 from 10.2, this
change was overlooked and a file of the old format slipped in.
2018-01-16 13:48:00 +02:00
Otto Kekäläinen
846517d9b7 Deb: Recover include/mariadb wrongly removed in commit 9b10b4181f
The libmariadb-dev package must include this directory so that downstream
developers can intentionally include MariaDB libraries as they want.

This matches the contents of the official Debian libmariadb-dev package.
2018-01-16 13:48:00 +02:00
Otto Kekäläinen
094938255d Deb: sync architecture restrictions from packaging in Debian official 2018-01-16 13:48:00 +02:00
Otto Kekäläinen
e260c6a087 Fix commit 9631d933fb so Travis CI doesn't fail
TokuDB and Mroonga are not built on Travis CI to save time. Previously
their packages were not created due to a hack in debian/rules, that got
removed in commit 9631d933fb. This change complements that commit.
2018-01-16 13:48:00 +02:00
Vladislav Vaintroub
da27dc995e Fix Windows build 2018-01-16 09:18:22 +00:00
Marko Mäkelä
822f4e6c10 Merge 10.2 into bb-10.2-ext 2018-01-16 07:51:02 +02:00
Marko Mäkelä
f5e158183c Follow-up fix to MDEV-14441: Correct a misplaced condition
btr_cur_update_in_place(): The call rw_lock_x_lock(ahi_latch) must
of course be inside the if (ahi_latch) condition. This is a mistake
that I made when backporting the fix-under-development from 10.3.
2018-01-16 07:50:15 +02:00
Sergei Petrunia
0292cd0a27 Better explanation why rpl_row_triggers is disabled. 2018-01-15 21:08:00 +03:00
Marko Mäkelä
0664d633e4 MDEV-14952 Avoid repeated calls to btr_get_search_latch()
btr_cur_search_to_nth_level(), btr_search_guess_on_hash(),
btr_pcur_open_with_no_init_func(), row_sel_open_pcur():
Replace the parameter has_search_latch with the ahi_latch
(passed as NULL if the caller does not hold the latch).

btr_search_update_hash_node_on_insert(),
btr_search_update_hash_on_insert(),
btr_search_build_page_hash_index(): Add the parameter ahi_latch.

btr_search_x_lock(), btr_search_x_unlock(),
btr_search_s_lock(), btr_search_s_unlock(): Remove.
2018-01-15 19:51:09 +02:00
Marko Mäkelä
4beb699a36 MDEV-14952 Avoid repeated calls to btr_get_search_latch()
btr_cur_search_to_nth_level(), row_sel(): Do not bother to yield to
waiting exclusive lock requests on the adaptive hash index latch.
When the btr_search_latch was split into an array of latches
in MySQL 5.7.8 as part of the Oracle Bug#20985298 fix, the "caching"
of the latch across storage engine API calls was removed. Thus,
X-lock requests should have a good chance of becoming served, and
starvation should not be possible.

btr_search_guess_on_hash(): Clean up a debug assertion.
2018-01-15 19:32:48 +02:00
Marko Mäkelä
542ad0fa3f btr_search_check_guess(): Remove the parameter 'mode'
Also, use 32-bit native reads to read the 32-bit aligned
FIL_PAGE_PREV and FIL_PAGE_NEXT reads, to compare them to the
byte order agnostic pattern FIL_NULL (0xffffffff).
2018-01-15 19:32:36 +02:00
Marko Mäkelä
12f804acfa MDEV-14441 Deadlock due to InnoDB adaptive hash index
This is mere code clean-up; the reported problem was already fixed
in commit 3fdd390791.

row_sel(): Remove the variable search_latch_locked.

row_sel_try_search_shortcut(): Remove the parameter
search_latch_locked, which was always passed as nonzero.

row_sel_try_search_shortcut(), row_sel_try_search_shortcut_for_mysql():
Do not expect the caller to acquire the AHI latch. Instead,
acquire and release it inside this function.

row_search_mvcc(): Remove a bogus condition on mysql_n_tables_locked.
When the btr_search_latch was split into an array of latches
in MySQL 5.7.8 as part of the Oracle Bug#20985298 fix, the "caching"
of the latch across storage engine API calls was removed, and
thus it is unnecessary to avoid adaptive hash index searches
during INSERT...SELECT.
2018-01-15 19:18:47 +02:00
Marko Mäkelä
458e33cfbc MDEV-14441 Deadlock due to InnoDB adaptive hash index
This is not fixing the reported problem, but a potential problem that was
introduced in MDEV-11369.

row_sel_try_search_shortcut(), row_sel_try_search_shortcut_for_mysql():
When an adaptive hash index search lands on top of rec_is_default_row(),
we must skip the candidate and perform a normal search. This is because
the adaptive hash index latch only protects the record from being deleted
but does not prevent concurrent inserts into the page. Therefore, it is not
safe to dereference the next-record pointer.
2018-01-15 19:12:30 +02:00
Marko Mäkelä
4ef25dbfd8 Merge bb-10.2-ext into 10.3 2018-01-15 19:11:28 +02:00
Marko Mäkelä
e2e740030d Merge 10.2 into bb-10.2-ext 2018-01-15 19:07:02 +02:00
Marko Mäkelä
3fdd390791 MDEV-14441 InnoDB hangs when setting innodb_adaptive_hash_index=OFF during UPDATE
This race condition is a regression caused by MDEV-12121.

btr_cur_update_in_place(): Determine block->index!=NULL only once
in order to determine whether an adaptive hash index bucket needs
to be exclusively locked and unlocked.

If we evaluated block->index multiple times, and the adaptive hash
index was disabled before we locked the adaptive hash index, then
we would never release the adaptive hash index bucket latch, which
would eventually lead to InnoDB hanging.
2018-01-15 19:02:38 +02:00
Monty
abbce9ed56 Fixed compiler warnings in guess_malloc_library 2018-01-15 16:44:44 +02:00
Marko Mäkelä
39f236a2f5 Merge 10.2 into bb-10.2-ext 2018-01-15 16:41:10 +02:00
Marko Mäkelä
9c6fc7b644 Fix -Wsign-compare introduced by Compilation speed (#546) 2018-01-15 16:38:16 +02:00
Marko Mäkelä
27b6b2625e Merge 10.1 into 10.2 2018-01-15 16:22:35 +02:00
Marko Mäkelä
4794e5b091 Fix a test that always failed on --embedded 2018-01-15 16:19:46 +02:00
Sergei Petrunia
85aea5a12b Update .result for rocksdb.rpl_row_triggers (not the whole test works yet) 2018-01-15 16:50:18 +03:00
Marko Mäkelä
850702da6b MDEV-13626: Merge InnoDB test cases from MySQL 5.7 (part 6)
innodb.truncate_inject: Replacement for innodb_zip.wl6501_error_1

Note: unlike MySQL, in some cases TRUNCATE does not return
an error in MariaDB. This should be fixed in the scope of
MDEV-13564 or similar.
2018-01-15 15:40:28 +02:00
Marko Mäkelä
ec062c6181 MDEV-12121 follow-up: Unbreak the WITH_INNODB_AHI=OFF build 2018-01-15 15:40:28 +02:00
Marko Mäkelä
3d798be1d4 MDEV-14655 Assertion `!fts_index' failed in prepare_inplace_alter_table_dict
MariaDB inherits the MySQL limitation that ALGORITHM=INPLACE cannot
create more than one FULLTEXT INDEX at a time. As part of the MDEV-11369
Instant ADD COLUMN refactoring, MariaDB 10.3.2 accidentally stopped
enforcing the restriction.

Actually, it is a bug in MySQL 5.6 and MariaDB 10.0 that an ALTER TABLE
statement with multiple ADD FULLTEXT INDEX but without explicit
ALGORITHM=INPLACE would return in an error message, rather than
executing the operation with ALGORITHM=COPY.

ha_innobase::check_if_supported_inplace_alter(): Enforce the restriction
on multiple FULLTEXT INDEX.

prepare_inplace_alter_table_dict(): Replace some code with debug
assertions. A "goto error_handled" at this point would result in
another error, because the reference count of ctx->new_table would be 0.
2018-01-15 10:57:16 +02:00
Eugene Kosov
72136ae75c Compilation speed (#546)
Speed up compilation

Standard C++ headers contribute a lot to compilation time. Avoid algorithm
and sstream in frequently used headers.
2018-01-14 20:50:45 +04:00
Marko Mäkelä
2750a02065 Merge bb-10.2-ext into 10.3 2018-01-13 20:37:00 +02:00
Marko Mäkelä
68e5d6a941 Do not truncate integers on 32-bit systems in Rows_event_tracker
commit 3dc3ab1a30 introduced
Rows_event_tracker, using a mismatch of size_t (the native
register width) and my_off_t (the file offset width, usually
64 bits). Use my_off_t both in member fields and member functions.
2018-01-13 20:27:46 +02:00
Marko Mäkelä
70fff3688d Merge bb-10.2-ext into 10.3 2018-01-13 18:25:24 +02:00
Marko Mäkelä
bec2712775 Merge 10.2 into bb-10.2-ext 2018-01-13 18:18:28 +02:00
Marko Mäkelä
fc65577873 MDEV-14887 On a 32-bit system, MariaDB 10.2 mishandles data file sizes exceeding 4GiB
This is a regression that was introduced in MySQL 5.7.6 in
19855664de

fil_node_open_file(): Use proper 64-bit arithmetics for truncating
size_bytes to a multiple of a file extent size.
2018-01-13 18:15:04 +02:00
Monty
09ef28abd7 Fixed BUILD scripts
- Removed extra set -x -v used for debugging
- Fixed that that gcc version tests works for gcc 7
2018-01-13 16:38:43 +02:00
Sergey Vojtovich
0a63b50c7a Cleanup UT_LOW_PRIORITY_CPU/UT_RESUME_PRIORITY_CPU
Server already has HMT_low/HMT_medium.
2018-01-13 13:08:59 +04:00
Sergei Golubchik
2484a2e4c8 cleanup: remove include/rpl_events.inc
introduces 10 years ago, still included only once.
no need to complicate debugging by unnecessary includes.
2018-01-13 02:01:36 +01:00
Sergei Golubchik
bd87c872c0 cleanup: don't generate tests with SP or PS
unless it's a test of SP or PS
2018-01-13 02:01:35 +01:00
Sergei Golubchik
558ee2ee84 fix --embedded tests 2018-01-13 02:01:35 +01:00
Sergei Golubchik
8ee071a22d cleanup: remove redundant check
it's already checked before the update loop (see check_fields()),
and this condition cannot suddenly become false in the middle
of the statement
2018-01-13 02:01:35 +01:00
Sergei Golubchik
826f615fc9 MDEV-14788 System versioning cannot be based on local timestamps, as it is now
followup to be81b00c84
Fix updates and deletes too
2018-01-13 02:01:35 +01:00
Sergei Golubchik
6a8cf407d2 fix tests on windows 2018-01-13 02:01:35 +01:00