1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00
Commit Graph

23265 Commits

Author SHA1 Message Date
Marko Mäkelä
ba573c4736 MDEV-21133 follow-up: More my_assume_aligned hints
fsp0pagecompress.h: Remove.
Invoke fil_page_get_type() and FSP_FLAGS_GET_PAGE_COMPRESSION_LEVEL
directly.

log_block_get_flush_bit(), log_block_set_flush_bit():
Access the byte directly.

dict_sys_read_row_id(): Remove (unused function).
2020-05-07 12:25:00 +03:00
Marko Mäkelä
7bcaa541aa Merge 10.4 into 10.5 2020-05-05 21:16:22 +03:00
Eugene Kosov
36b8ac2c0d remove double std::map lookup 2020-05-05 21:15:21 +03:00
Sergei Golubchik
67aaf51cf9 cleanup: ha_external_unlock() helper
as mentioned in f9f33b85be and generally to make it
easier to talk about
2020-05-05 19:41:12 +02:00
Marko Mäkelä
2c3c851d2c Merge 10.3 into 10.4 2020-05-05 20:33:10 +03:00
Marko Mäkelä
474290540a MDEV-22465: DROP indexed COLUMN is wrongly claimed to be ALGORITHM=INSTANT
ha_innobase::check_if_supported_inplace_alter(): Do not allow
ALGORITHM=INSTANT for operations that avoid a table rebuild
but involve dropping (or creating) secondary indexes.
2020-05-05 20:32:14 +03:00
Eugene Kosov
89ff4176c1 MDEV-22437 make THR_THD* variable thread_local
Now all access goes through _current_thd() and set_current_thd()
functions.

Some functions like THD::store_globals() can not fail now.
2020-05-05 18:13:31 +03:00
Kentoku SHIBA
90aad47dd9 MDEV-20502 Queries against spider tables return wrong values for columns following constant declarations.
Add test cases.
2020-05-05 22:45:17 +09:00
Kentoku SHIBA
69925c0d2e MDEV-20502 Queries against spider tables return wrong values for columns following constant declarations.
Add test cases.
2020-05-05 22:43:45 +09:00
Marko Mäkelä
64488a6f2d Cleanup: Remove global functions or redundant parameters
fil_flush_file_spaces(): Remove the constant parameter.

buf_flush_start(), buf_flush_end(): Use static linkage.

fil_page_get_prev(), fil_page_get_next(), fil_addr_is_null(): Remove.
2020-05-05 07:06:37 +03:00
Marko Mäkelä
97261cbb7a Merge 10.4 into 10.5 2020-05-04 22:07:18 +03:00
Marko Mäkelä
1ed98782e7 MDEV-22452: Fix cmake -DWITH_WSREP=OFF
commit 5e7e7153b4 accidentally
broke the build without WSREP, by misplacing an #endif.
2020-05-04 22:06:31 +03:00
Marko Mäkelä
8648b9bed8 Merge 10.2 into 10.3 2020-05-04 22:06:00 +03:00
Marko Mäkelä
1cccd3c7cc MDEV-7962: Fix cmake WITH_WSREP=OFF
commit d467bb7e5e accidentally
broke the build without WSREP, by misplacing an #endif.
2020-05-04 22:01:26 +03:00
Marko Mäkelä
3f65ce5781 Merge 10.1 into 10.2 2020-05-04 19:00:21 +03:00
Marko Mäkelä
d467bb7e5e MDEV-7962 post-push fixes
This is a partial backport of
commit 5e7e7153b4 from 10.4.

assert_trx_is_free(): Assert !is_wsrep().

trx_init(): Do not initialize trx->wsrep, because it must have been
initialized already.

trx_commit_in_memory(): Invoke wsrep_commit_ordered(). This call
was being skipped, because the transaction object had already been
freed to the pool.

trx_rollback_for_mysql(), innobase_commit_low(),
innobase_rollback_trx(): Always reset trx->wsrep.
2020-05-04 18:57:55 +03:00
Marko Mäkelä
4337a3b5f9 Merge 10.4 into 10.5 2020-05-04 18:43:00 +03:00
Marko Mäkelä
5e7e7153b4 MDEV-22452: Missing call to wsrep_commit_ordered in trx_t::commit()
This is a follow-up fix to the changes that were made in MDEV-7962.

assert_trx_is_free(): Assert !is_wsrep().

trx_init(): Do not initialize trx->wsrep, because it must have been
initialized already.

trx_t::commit_in_memory(): Invoke wsrep_commit_ordered(). This call
was being skipped, because the transaction object had already been
freed to the pool.

trx_rollback_for_mysql(), innobase_commit_low(),
innobase_close_connection(): Always reset trx->wsrep.
2020-05-04 18:31:30 +03:00
Oleksandr Byelkin
7fb73ed143 Merge branch '10.2' into 10.3 2020-05-04 16:47:11 +02:00
Thirunarayanan Balathandayuthapani
a1eb151327 MDEV-22410 Change the error when table schema mismatch happens
- InnoDB gives "table is marked as crashed and should be repaired" when
table schema mismatch.
2020-05-04 19:11:39 +05:30
Thirunarayanan Balathandayuthapani
42bba9782b MDEV-22446 InnoDB aborts while adding instant column for discarded tablespace
- Instant alter should change the metadata alone when table is
discarded. It shouldn't try to add metadata record in clustered index.
Also make the clustered index to non-instant format.
2020-05-04 16:23:34 +05:30
Thirunarayanan Balathandayuthapani
2748c4993c MDEV-19092 Server crash when renaming the column when
FOREIGN_KEY_CHECKS is disabled

- Referenced index can be null While renaming the referenced column name.
In that case, rename the referenced column name in dict_foreign_t and
find the equivalent referenced index.
2020-05-04 14:33:45 +05:30
Oleksandr Byelkin
ca091e6372 Merge branch '10.1' into 10.2 2020-05-02 08:44:17 +02:00
Oleksandr Byelkin
4fc8961d49 Merge remote-tracking branch 'connect/10.1' into 10.1 2020-04-30 18:57:45 +02:00
Oleksandr Byelkin
da1fbcb665 Merge branch 'merge-tokudb-5.6' into 10.1 2020-04-30 18:56:55 +02:00
Oleksandr Byelkin
15db581ecb 5.6.47-87.0 2020-04-30 18:29:36 +02:00
Oleksandr Byelkin
23c6fb3e62 Merge branch '5.5' into 10.1 2020-04-30 17:36:41 +02:00
Eugene Kosov
7f9dc0d84a split log_t::buf into two buffers
Maybe this patch will help catch problems like buffer overflow.

log_t::first_in_use: removed

log_t::buf: this is where mtr_t are supposed to append data
log_t::flush_buf: this is from server writes to a file

Those two buffers are std::swap()ped when some thread is gonna write
to a file
2020-04-30 11:56:16 +03:00
Marko Mäkelä
f544a712c8 Cleanup: Reduce que_thr_t, que_fork_t, trx_lock_t size
que_thr_t::magic_n: Remove. Access to freed data is best caught
by AddressSanitizer.

que_thr_t::start_running(): Replaces que_thr_move_to_run_state_for_mysql()
and que_thr_move_to_run_state(), which were identical non-inline functions.

que_thr_t::stop_no_error(): Replaces que_thr_stop_for_mysql_no_error().

que_fork_t::n_active_thrs, trx_lock_t::n_active_thrs: Make debug-only.

que_fork_t::set_active(bool active): Update n_active_thrs.
2020-04-30 10:43:43 +03:00
Marko Mäkelä
3e6722d88d Cleanup: More trx_t member functions
trx_t::rollback(): Renamed from trx_rollback_to_savepoint().

trx_t::rollback_low(): Renamed from trx_rollback_to_savepoint_low().

fts_sql_commit(): Defined as an alias of trx_commit_for_mysql().
fts_sql_rollback(): Defined as an alias of trx_t::rollback().

fts_rename_aux_tables_to_hex_format(): Fix the error handling
that likely never worked because we failed to roll back the
first transaction.
2020-04-29 16:00:17 +03:00
Marko Mäkelä
496d0372ef Merge 10.4 into 10.5 2020-04-29 15:40:51 +03:00
Sergei Golubchik
a13157a561 don't enable -Werror in ft-index 2020-04-29 14:08:54 +02:00
Marko Mäkelä
5ba2aa1ddc MDEV-7962: Remove one more wsrep_on()
trx_rollback_to_savepoint(): Invoke trx_t::is_wsrep().
2020-04-29 14:54:36 +03:00
Daniel Black
ba2061da52 MDEV-21595: innodb offset_t rename to rec_offs
thanks to:

perl -i -pe 's/\boffset_t\b/rec_offs/g' $(git grep -lw offset_t storage/innobase)
2020-04-29 12:02:47 +03:00
Marko Mäkelä
cfbbf5424b MDEV-7962: Follow-up fix for 10.4
Replace wsrep_on() with trx_t::is_wsrep() where possible.

Also, rename some functions to member functions and
remove unused DBUG_EXECUTE_IF instrumentation:

trx_t::commit(): Renamed from trx_commit().

trx_t::commit_low(): Renamed from trx_commit_low().

trx_t::commit_in_memory(): Renamed from trx_commit_in_memory().
2020-04-29 11:50:03 +03:00
Marko Mäkelä
0632b8034b Merge 10.3 into 10.4 2020-04-29 09:05:15 +03:00
Marko Mäkelä
1fbdcada73 Merge 10.2 into 10.3 2020-04-28 22:29:13 +03:00
Marko Mäkelä
dd5c307cb0 MDEV-22394 Merge new release of InnoDB 5.7.30 to 10.2 2020-04-28 19:40:32 +03:00
Marko Mäkelä
2644e52fdb MDEV-22384 Wrong estimate of affected BLOB columns in update of PRIMARY KEY
During the UPDATE of PRIMARY KEY columns, we may miscalculate the
size of the clustered index record.

row_upd_clust_rec_by_insert(): Pass the total number of off-page columns,
which may include such columns that were inherited from the record
and not created as part of the UPDATE operation.

This is based on
mysql/mysql-server@490c45e8c8
which is a follow-up to
mysql/mysql-server@1fa475b85d
which we filed and fixed as MDEV-21511.

No test case was provided by Oracle.
2020-04-28 19:39:51 +03:00
Marko Mäkelä
547cb280b8 Merge 10.1 into 10.2 2020-04-28 19:39:40 +03:00
Marko Mäkelä
fae70d6b1c Cleanup: Declare rtr_get_father_node() statically 2020-04-28 19:37:07 +03:00
Thirunarayanan Balathandayuthapani
5193c1b542 MDEV-22369 Assertion `err == DB_SUCCESS' failed. in btr_block_get_func during crash recovery
- buf_page_get_gen() fails to set error value when it initializes the
page with redo logs.
2020-04-28 19:23:51 +05:30
Marko Mäkelä
713e427b2e InnoDB 5.6.48 2020-04-28 16:20:19 +03:00
Marko Mäkelä
7041807476 MDEV-22393 Corruption for SET GLOBAL innodb_ string variables
Several MYSQL_SYSVAR_STR parameters that employ both a validate
function callback fail to copy the string for saving the
validated value. The affected variables include the following:

innodb_ft_aux_table
innodb_ft_server_stopword_table
innodb_ft_user_stopword_table
innodb_buffer_pool_filename

The test case is an enhanced version of
mysql/mysql-server@0b0c30641f
and the code changes are inspired by their fixes.

We are also importing and adjusting the test innodb_fts.stopword
to get coverage for the variable innodb_ft_user_stopword_table.

buf_dump(), buf_load(): Protect srv_buf_dump_filename with
LOCK_global_system_variables.

fts_load_user_stopword(): Minor cleanup

fts_load_stopword(): Remove the parameter global_stopword_table.

innobase_fts_load_stopword(): Protect innodb_server_stopword_table
against concurrent SET GLOBAL.
2020-04-28 16:09:07 +03:00
Eugene Kosov
0cd2b4c249 MDEV-22177 more fsync() -> fdatasync() in InnoDB
Replace all fsync() with fdatasync() when possible (e.g. On Linux)

InnoDB doesn't care about file timestamps. So, to achieve a better
performance it makes sense to use fdatasync() everywhere.

file_io::flush(): renamed from flush_data_only()

os_file_flush_data(): removed

os_file_sync_posix(): renamed from os_file_fsync_posix(). Now it uses
fdatasync() when it's available.
2020-04-28 12:15:00 +03:00
Marko Mäkelä
cce1b6e245 MDEV-22392 Race condition on SET GLOBAL innodb_buffer_pool_evict='uncompressed'
innodb_buffer_pool_evict_uncompressed(): Restart the loop when
prev_block might not enjoy mutex protection.

This is based on
mysql/mysql-server@eccaecac07
2020-04-28 11:46:29 +03:00
Marko Mäkelä
cf64d27bad Remove a duplicated copyright message 2020-04-28 11:40:04 +03:00
Thirunarayanan Balathandayuthapani
c755974775 MDEV-19611 INPLACE ALTER does not fail on bad implicit default value
- Inplace alter shouldn't set default date column as '0000-00-00' when
table is not empty. So mysql_inplace_alter_table() copied
alter_ctx.error_if_not_empty to a new field of Alter_inplace_info.
In ha_innobase::check_if_supported_inplace_alter() should check the
error_if_not_empty flag and return INPLACE_NOT_SUPPORTED if the table
is not empty
2020-04-28 11:59:32 +05:30
Marko Mäkelä
b63446984c Merge 10.3 into 10.4 2020-04-27 17:38:17 +03:00
Marko Mäkelä
3568fad5c9 Merge 10.2 into 10.3 2020-04-27 16:06:26 +03:00