- 07 Feb, 2018 6 commits
-
-
Marko Mäkelä authored
MDEV-14222 Unnecessary 'cascade' memory allocation for every updated row when there is no FOREIGN KEY This reverts the MySQL 5.7.2 change https://github.com/mysql/mysql-server/commit/377774689bf6a16af74182753fe950d514c2c6dd which introduced these problems. MariaDB 10.2.2 inherited these problems in commit 2e814d47. The FOREIGN KEY CASCADE and SET NULL operations implemented as procedural recursion are consuming more than 8 kilobytes of stack (9 stack frames) per iteration in a non-debug GNU/Linux AMD64 build. This is why we need to limit the maximum recursion depth to 15 steps instead of the 255 that it used to be in MySQL 5.7 and MariaDB 10.2. A corresponding change was made in MySQL 5.7.21 in https://github.com/mysql/mysql-server/commit/7b26dc98a624d5cdf79cd5eee455cb03e3bccb5a
-
Marko Mäkelä authored
row_upd_store_v_row(): Declare static row_upd_clust_rec_by_insert(), row_upd_del_mark_clust_rec(): Pass the parameter 'foreign' only #ifdef WITH_WSREP
-
Marko Mäkelä authored
This corruption was introduced in MDEV-13331. It would have been caught by the MySQL 5.7 test innodb.update-cascade which MariaDB was missing until now. row_ins_check_foreign_constraint(): Never replace err == DB_LOCK_WAIT with other values than DB_LOCK_WAIT_TIMEOUT.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
srv_mbr_print(): Remove. Geometry fields are already being output in raw form, and we do not need bogus MBR output for non-spatial indexes.
-
Marko Mäkelä authored
row_ins_cascade_calc_update_vec(): Remove the output parameter fts_col_affected, and instead return whether any fulltext index is affected by the cascade operation. row_ins_foreign_check_on_constraint(): Narrow the scope of some variables. ib_dec_in_dtor: Remove.
-
- 06 Feb, 2018 13 commits
-
-
Igor Babaev authored
If setting user variable was used in the specification of a recursive CTE then Item_func_set_user_var::fix_fields() went into an infinite loop.
-
Igor Babaev authored
does not return error Corrected the code of st_select_lex::find_table_def_in_with_clauses() for a proper identification of CTE references used in embedded CTEs.
-
Igor Babaev authored
When identifying a table name the following should be taken into account: a CTE name cannot be qualified with a database name, otherwise the table name is considered as the name of a non-CTE table.
-
Sergei Golubchik authored
replace with awk (yuck!), avoiding gensub (which wasn't recognized)
-
Sergei Golubchik authored
all mmap-related functions take size_t lengh. mmaped_length was casted to size_t *every single time*
-
Sergei Golubchik authored
conversion from 'my_off_t' to '::size_t', possible loss of data
-
Sergei Golubchik authored
get_rec_bits() must return uchar, it's result is often assigned to uchar. And len is always less than 8.
-
Sergei Golubchik authored
this fixes the crash of main.fulltest
-
Sergei Golubchik authored
because dbug_print_item() can be invoked any time in gdb, also before fix_fields. this fixes a crash of main.win in debug builds
-
Sergei Golubchik authored
it was set before big if() that could decide not to merge and go with materialization. this fixes a crash in main.view test
-
Sergei Golubchik authored
-
Sergei Golubchik authored
in gcc `-Wno-unsupported-something` will not be an error or even a warning, so cmake will think the flag is supported. But if there's any other warning during compilation, for any reason, unknown option will be a warning too. Or an error when -Werror, even if that "other warning" would not be an error on itself. So we need to detect whether `-Wno-unsupported-something` is *really* supported. Luckily, `-Wunsupported-something` will always fail with an error. So, whenever there's a need to detect if -Wno-something is supported, test -Wsomething instead.
-
Sergei Golubchik authored
-
- 05 Feb, 2018 4 commits
-
-
Jan Lindström authored
Problem was that wrong error message was returned when insert returned FK-error and there was no duplicate key to process. row_ins If error from insert was DB_NO_REFERENCED_ROW and there was no duplicate key we should ignore ON DUPLICATE KEY UPDATE and return original error message.
-
Sergei Golubchik authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Suppress some messages that are emitted rarely (when the FIL_PAGE_FILE_FLUSH_LSN of the first page of ibdata1 does not match the latest redo log checkpoint).
-
- 04 Feb, 2018 1 commit
-
-
Elena Stepanova authored
-
- 03 Feb, 2018 5 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Previously, the function could theoretically return an uninitialized value if the system tablespace contained no data files. It should be impossible for InnoDB to start up in such scenario.
-
Marko Mäkelä authored
xtrabackup_init_temp_log(): Remove a redundant variable and limit scope.
-
Marko Mäkelä authored
-
Sergei Golubchik authored
-
- 02 Feb, 2018 11 commits
-
-
Marko Mäkelä authored
Two follow-up tasks were filed for MySQL 5.7.21 changes that were not applied here: MDEV-15179 performance_schema.file_instances does not reflect RENAME TABLE MDEV-14222 Unnecessary 'cascade' memory allocation for every updated row when there is no FOREIGN KEY
-
Marko Mäkelä authored
The merge omitted some InnoDB and XtraDB conflict resolutions, most notably, failing to merge the fix of MDEV-12173. ibuf_merge_or_delete_for_page(), lock_rec_block_validate(): Invoke fil_space_acquire_silent() instead of fil_space_acquire(). This fixes MDEV-12173. wsrep_debug, wsrep_trx_is_aborting(): Removed unused declarations. _fil_io(): Remove. Instead, declare default parameters for the XtraDB fil_io(). buf_read_page_low(): Declare default parameters, and clean up some callers. os_aio(): Correct the macro that is defined when !UNIV_PFS_IO.
-
Vicențiu Ciorbaru authored
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
row_rename_partitions_for_mysql(): Remove. This should only be relevant in an upgrade into MySQL 5.7, which has InnoDB native partitioning.
-
Marko Mäkelä authored
Remove a test that does not apply to MariaDB In MariaDB, there are no high-priority transactions (no tx_priority). This should also mean that all references to TRX_STATE_FORCED_ROLLBACK are dead code.
-
Jimmy Yang authored
Reviewed-by: Sunny Bains <sunny.bains@oracle.com>
-
Marko Mäkelä authored
Bug#23590280 NO WARNING WHEN REDUCING INNODB_BUFFER_POOL_SIZE INSIZE (sic) THE FIRST CHUNK innodb_buffer_pool_size_validate(): Issue a warning if the requested innodb_buffer_pool_size is less than innodb_buffer_pool_chunk_size, because we cannot shrink individual chunks.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Import and adjust the innodb.innodb_buffer_pool_resize tests, except innodb.innodb_buffer_pool_resize_debug, which would time out. buf_pool_clear_hash_index(): Adjust assertions.
-
Sergei Golubchik authored
* use a longer timeout, 10ms is not always enough * stop waiting as long as the data is read, do not unconditionally wait for timeout every time
-