- 08 Feb, 2018 1 commit
-
-
Alexander Barkov authored
-
- 07 Feb, 2018 10 commits
-
-
Monty authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Daniel Black authored
If the CRYPTO_set_mem_functions fails just return success from check_openssl_compatibility. The only case where CRYPTO_set_mem_functions fails is the allow_customize==0 (aka FIPS mode). The check_openssl_compatibility isn't able to complete unless this function returns success. ref: https://github.com/openssl/openssl/blob/OpenSSL_1_1_0g/crypto/mem.c#L34
-
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 14 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.
-
Marko Mäkelä authored
dict_tf_is_valid(): Allow no-rollback tables in ROW_FORMAT=REDUNDANT.
-
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 5 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
-
Alexander Barkov authored
Applying https://github.com/MariaDB/server/pull/594 to bb-10.2-ext
-
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 3 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
When storing '0001-01-01 10:20:30x', execution went throw the last code branch in Field_time::store_TIME_with_warning(), around the test for (ltime->year || ltime->month). This then resulted into wrong results because: 1. Field_time::store_TIME() does not check YYYYMM against zero. It assumes that ltime->days and ltime->hours are already properly set. So it mixed days to hours, even when YYYYMM was not zero. 2. Field_time_hires::store_TIME() does not check YYYYMM against zero. It assumes that ltime->year, ltime->month, ltime->days and ltime->hours are already properly set. So it always mixed days and even months(!) and years(!) to hours, using pack_time(). This gave even worse results comparing to #2. 3. Field_timef::store_TIME() did not check the entire YYYYMM for being zero. It only checked MM, but did not check YYYY. In case of a zero MM, it mixed days to hours, even if YYYY was not zero. The wrong code was in TIME_to_longlong_time_packed(). In the new reduction Field_time::store_TIME_with_warning() is responsible to prepare the YYYYYMMDD part properly in all code branches (with trailing garbage like 'x' and without trailing garbage). It was reorganized into a more straightforward style. Field_time:store_TIME(), Field_time_hires::store_TIME() and TIME_to_longlong_time_packed() were fixed to do a DBUG_ASSERT on non-zero ltime->year or ltime->month. The code testing ltime->month was removed from TIME_to_longlong_time_packed(), as it's now properly done on the caller level. Truncation was moved from Field_timef::store_TIME() to Field_time::store_TIME_with_warning(). So now all thee methods Field_time*::store_TIME() assume a properly set input value: - Only zero ltime->year and ltime->month are allowed. - The value must be already properly truncated according to decimals() (this will help to add rounding soon, see MDEV-8894) A "const" qualifier was added to the argument of Field_time*::store_TIME().
-
Elena Stepanova authored
-
- 03 Feb, 2018 6 commits
-
-
Alexander Barkov authored
-
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 1 commit
-
-
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
-