- 04 May, 2019 5 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Varun Gupta authored
Need to call split_sum_func if an aggregate function is part of order by or partition by clause so that we have the required fields inside the temporary table, as all the fields inside the partition by and order by clause of the window function needs to be there in the temp table used for window function computation.
-
Varun Gupta authored
The issue here is that for a window function in the ORDER BY clause, we were not creating an extra field in the temporary table for the window function (which is contained in an expression). So a call to split_sum_func is added to handle this case Also we need to update all items that contain a window function in the temp table during window function computation as filesort would need these values to be updated to calculate the ORDER BY clause of the select.
-
Varun Gupta authored
For degenerate joins we may have JOIN::table_list as NULL, so instead of using JOIN::top_join_tab_count use the function JOIN::exec_join_tab_cnt to get the number of tables joined at the top level.
-
- 03 May, 2019 3 commits
-
-
Marko Mäkelä authored
The accessor dtuple_get_nth_v_field() was defined differently between debug and release builds in MySQL 5.7.8 in mysql/mysql-server@c47e1751b742454de553937039bbf2bcbe3c6bc7 and a debug assertion to document or enforce the questionable assumption tuple->v_fields == &tuple->fields[tuple->n_fields] was missing. This was apparently no problem until MDEV-11369 introduced instant ADD COLUMN to MariaDB Server 10.3. With that work present, in one test case, trx_undo_report_insert_virtual() could in release builds fetch the wrong value for a virtual column. We replace many of the dtuple_t accessors with const-preserving inline functions, and fix missing or misleadingly applied const qualifiers accordingly.
-
Marko Mäkelä authored
log_checkpoint(), log_make_checkpoint_at(): Remove the parameter write_always. It seems that the primary purpose of this parameter was to ensure in the function recv_reset_logs() that both checkpoint header pages will be overwritten, when the function is called from the never-enabled function recv_recovery_from_archive_start(). create_log_files(): Merge recv_reset_logs() to its only caller. Debug instrumentation: Prefer to flush the redo log, instead of triggering a redo log checkpoint. page_header_set_field(): Disable a debug assertion that will always fail due to MDEV-19344, now that we no longer initiate a redo log checkpoint before an injected crash. In recv_reset_logs() there used to be two calls to log_make_checkpoint_at(). The apparent purpose of this was to ensure that both InnoDB redo log checkpoint header pages will be initialized or overwritten. The second call was removed (without any explanation) in MySQL 5.6.3: mysql/mysql-server@4ca37968da54ddc6b3b6628f41428ddba1c79bb8 In MySQL 5.6.8 WL#6494, starting with mysql/mysql-server@00a0ba8ad92569fcf08212b3b8cf046dc8a0ce10 the function recv_reset_logs() was not only invoked during InnoDB data file initialization, but also during a regular startup when the redo log is being resized. mysql/mysql-server@45e91679832219e2593c77185342f11f85232b58 in MySQL 5.7.2 removed the UNIV_LOG_ARCHIVE code, but still did not remove the parameter write_always.
-
Eugene Kosov authored
Disable (hopefully temprorary) this check. Also add tests for some serialized functions.
-
- 02 May, 2019 5 commits
-
-
Vladislav Vaintroub authored
on tablespace files Fix is to always add Full Control for NetworkService account, for every file that copyback/moveback copies around.
-
Oleksandr Byelkin authored
-
Daniel Bartholomew authored
-
Vladislav Vaintroub authored
If required privilege is missing, dump the output from "SHOW GRANTS" into mariabackup log. This will help troubleshooting, and make the bug reproducible.
-
Thirunarayanan Balathandayuthapani authored
The statement SET GLOBAL innodb_encryption_rotate_key_age=0; would have the unwanted side effect that ENCRYPTION=DEFAULT tablespaces would no longer be encrypted or decrypted according to the setting of innodb_encrypt_tables. We implement a trigger, so that whenever one of the following is executed: SET GLOBAL innodb_encrypt_tables=OFF; SET GLOBAL innodb_encrypt_tables=ON; SET GLOBAL innodb_encrypt_tables=FORCE; all wrong-state ENCRYPTION=DEFAULT tablespaces will be added to fil_system_t::rotation_list, so that the encryption will be added or removed. Note: This will *NOT* happen automatically after a server restart. Before reading the first page of a data file, InnoDB cannot know the encryption status of the data file. The statement SET GLOBAL innodb_encrypt_tables will have the side effect that all not-yet-read InnoDB data files will be accessed in order to determine the encryption status. innodb_encrypt_tables_validate(): Stop disallowing SET GLOBAL innodb_encrypt_tables when innodb_encryption_rotate_key_age=0. This reverts part of commit 50eb40a2 that addressed MDEV-11738 and MDEV-11581. fil_system_t::read_page0(): Trigger a call to fil_node_t::read_page0(). Refactored from fil_space_get_space(). fil_crypt_rotation_list_fill(): If innodb_encryption_rotate_key_age=0, initialize fil_system->rotation_list. This is invoked both on SET GLOBAL innodb_encrypt_tables and on SET GLOBAL innodb_encryption_rotate_key_age=0. fil_space_set_crypt_data(): Remove. fil_parse_write_crypt_data(): Simplify the logic. This is joint work with Marko Mäkelä.
-
- 01 May, 2019 6 commits
-
-
Varun Gupta authored
To read histograms for a table, we should check if the allocation of statistics was done or not, if not done we should not try to read histograms for such a table.
-
Varun Gupta authored
to the patch for MDEV-17605
-
Anel Husakovic authored
MDEV-17654 Incorrect syntax returned for column with CHECK constraint in the "SHOW CREATE TABLE ..." result Prepend COMMENT before CHECK constraint in SHOW CREATE Closes #924
-
Daniel Black authored
The working directory, resource limits and core pattern will aid the user finding a core file in the case of failure. While the core file size is most relevant however other resource limits may give a clue as the the cause of the fatal signal so include them also. As signal handler functions are limited, proc filesystem reads/ readlink calls are used instead of the more obvious getcwd/getrlimits functions which aren't listed as signal safe. Results in output of the form: Writing a core file: working directory at /tmp/datadir Resource Limits: Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size unlimited unlimited bytes Max resident set unlimited unlimited bytes Max processes 47194 47194 processes Max open files 1024 4096 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 47194 47194 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us Core pattern: |/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I Segmentation fault (core dumped) Closes #537
-
Sergei Golubchik authored
-
Aleksey Midenkov authored
-
- 30 Apr, 2019 6 commits
-
-
Elena Stepanova authored
-
Nikita Malyavin authored
use s->fields instead of s->stored_fields. extra_null_bitmap is allocated in Table_triggers_list::prepare_record_accessors with respect to virtual fields, so it will not overflow Closes #1292
-
Oleksandr Byelkin authored
MDEV-14572: Assertion `! is_set()' failed in Diagnostics_area::set_eof_status upon EXPLAIN UPDATE in PS Restore EXPAIN flag in SELECT_LEX before execution multi-update by flag in LEX (the same but in other way made before INSERT/DELETE/SELECT) Without it, mysql_update() didn't know that there will be EXPLAIN result set and was sending OK at the end of the update, which conflicted with the EOF sent later by EXPLAIN.
-
Vladislav Vaintroub authored
-
Alexander Barkov authored
The patch for MDEV-18738 fixed this problem. Adding tests only.
-
Alexander Barkov authored
copy_if_not_alloced() did not handle situations when "from" is a constant string pointing to a substring of "to", so this code part freed "to" but then tried to copy its old (already freed) content to a new buffer: if (to->realloc(from_length)) return from; if ((to->str_length=MY_MIN(from->str_length,from_length))) memcpy(to->Ptr,from->Ptr,to->str_length); Adding a new code piece that catches such constant substrings and propery reallocs "to" to preserve its important part referenced by "from".
-
- 29 Apr, 2019 12 commits
-
-
Daniel Bartholomew authored
-
Marko Mäkelä authored
This reverts commit 61f370a3 and implements a simpler fix that is straightforward to merge to 10.3. lock_print_info: Renamed from PrintNotStarted. Dump the entire contents of trx_sys->mysql_trx_list. lock_print_info_rw_recovered: Like lock_print_info, but dump only recovered transactions in trx_sys->rw_trx_list. lock_print_info_all_transactions(): Dump both trx_sys->mysql_trx_list and trx_sys->rw_trx_list. TrxLockIterator, TrxListIterator, lock_rec_fetch_page(): Remove. This is a partial backport of the 10.3 commit a447980f which removed the race-condition-prone ability of the InnoDB monitor to read relevant pages into the buffer pool for some record locks.
-
Marko Mäkelä authored
In InnoDB error messages, replace the hyperlink URLs to point to the MariaDB knowledge base.
-
Marko Mäkelä authored
ut_list_validate(), ut_list_map(): Add variants with const Functor& so that these functions can be called with an rvalue. Remove wrapper macros, and add #ifdef UNIV_DEBUG around debug-only code.
-
Marko Mäkelä authored
-
Eugene Kosov authored
MDEV-18429 Consistent non-locking reads do not appear in TRANSACTIONS section of SHOW ENGINE INNODB STATUS lock_print_info_all_transactions(): print transactions which are started but not in RW or RO lists. print_not_started(): Replaces PrintNotStarted. Collect the skipped transactions.
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
fil_node_t::read_page0(): Do not replace up-to-date metadata with a possibly old version of page 0 that is being reread from the file. A more up-to-date page 0 could still exists in the buffer pool, waiting to be written back to the file.
-
Marko Mäkelä authored
BtrBulk::finish(): On error, the B-tree can be corrupted. Only upon successful completion, it makes sense to validate the index.
-
Alexander Barkov authored
This problem was earlier fixed, possibly by f8a800be and is not repeatable in 10.1-10.4 any more. Adding tests only.
-
Marko Mäkelä authored
-
- 28 Apr, 2019 3 commits
-
-
Alexey Botchkov authored
-
Alexey Botchkov authored
The 'SET server_audit_logging ' statements should be logged no matter what.
-
Alexey Botchkov authored
Since this limit is imposed by the SHOW_VAR_FUNC_BUFF_SIZE, we just launch the error message.
-