- 05 Jul, 2017 40 commits
-
-
Marko Mäkelä authored
Since MariaDB 10.2.2, temporary table metadata is not written to the InnoDB data dictionary tables. Therefore, the DICT_TF2_TEMPORARY flag cannot be set in SYS_TABLES, except if there exist orphan temporary tables that were created before MariaDB 10.2.2. trx_resurrect_table_locks(): Do not skip temporary tables. If a resurrect transaction modified a temporary table that was created before MariaDB 10.2.2, that table would be treated internally as a persistent table. It is safer to resurrect locks than to skip the table, because the table would be modified on transaction rollback.
-
Marko Mäkelä authored
buf_flush_page_cleaner_coordinator: In the first loop, use an appropriate termination condition, waiting for !recv_writer_thread_active. logs_empty_and_mark_files_at_shutdown(): Signal recv_sys->flush_start in case the recv_writer_thread was never started, or buf_flush_page_cleaner_coordinator failed to notice its termination. innobase_start_or_create_for_mysql(): Remove a redundant, unreachable condition, and properly release resources when aborting startup due to recv_sys->found_corrupt_log.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
for compatibility with MySQL, add 'JSON' as an alias for 'TEXT'
-
Sergei Golubchik authored
with -DPLUGIN_PARTITION=NO and -DPLUGIN_PERFSCHEMA=NO
-
Sergei Golubchik authored
Fix INFORMATION_SCHEMA.COLUMNS.COLUMN_DEFAULT to be standard-compliant, but keep SHOW COLUMNS backward-compatibly unchanged.
-
Sergei Golubchik authored
if we don't need to print field's table name, we surely don't need to print field's db name either
-
Sergei Golubchik authored
Use the correct target name when querying libmariadb.so dependencies. Filter out linker options (no-undefined and the version script)
-
Sergei Golubchik authored
remove double-initialization of MYSQL structure
-
Sergei Golubchik authored
-
Sergei Golubchik authored
remove ANSI_QUOTES when generating partition syntax for frm
-
Sergei Golubchik authored
Remove now-unused part_func_string and subpart_func_string from partition_info.
-
Sergei Golubchik authored
don't print partitioning expression as it was entered by the user, use Item::print() according to the sql_mode and sql_quote_show_create
-
Sergei Golubchik authored
Don't write to a temporary file, use String. Remove strange one-liner "helpers", use String methods. Don't use current_thd, don't allocate memory for 1-byte strings, etc.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
don't do auditing if thd is NULL. Collaterals: * copy-paste bugs server_audit.c * uninitialized user field when thd in NULL
-
Sergei Golubchik authored
when opening 10.1- table that has virtual columns: 1. don't error out if it has vcols over autoinc columns. just issue a warning. 2. set vcol type properly 3. in innodb: use table->s->stored_fields instead of table->s->fields, because that's what was stored in innodb data dictionary
-
Sergei Golubchik authored
and MDEV-13144 regexp on views - crashed mariadb server implement Item_func_regex::build_clone()
-
Sergei Golubchik authored
use correct type for Alter_inplace_info flags.
-
Sergei Golubchik authored
MDEV-11930 Unexpected ER_ERROR_EVALUATING_EXPRESSION warning upon dropping database with a bad table DBUG_EXECUTE_IF was wrong, it used my_error, but didn't do error=1. It's not clear what it was actually testing, what it was supposed to be testing, and what it has to do with bug#43138, so I removed it.
-
Sergei Golubchik authored
CRYPTO_set_mem_functions() works only until the first allocation is done: * remove the second CRYPTO_set_mem_functions() call * check whether the first CRYPTO_set_mem_functions() call worked * stricter memory checks (==1, not >1, etc) * as coc_malloc cannot be removed, make the counter a bit cheaper * only do the check for OpenSSL 1.1 (because of OpenSSL 1.0 bug)
-
Sergei Golubchik authored
-
Sergei Golubchik authored
the array only needs to be reallocated if it's smaller than needed. Being larger is ok. also: remove a duplicated check (merge error)
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
don't use thd->query_id check in background purge threads (it doesn't work, because thd->query_id is never incremented there) instead use thd->open_tables directly, there can be only one table there anyway, and this is the table opened by this purge thread.
-
Sergei Golubchik authored
cannot use unireg_abort() until mutexes are initialized.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Marko Mäkelä authored
On Windows, when tmpdir is not writable, there are only messages like this: 2017-07-05 14:04:25 3860 [ERROR] InnoDB: Unable to create temporary file; errno: 0 On other platforms, there would be two messages for each failure: 2017-07-05 17:23:02 140436573771648 [ERROR] mysqld: Can't create/write to file '/dev/null/nonexistent/ibaajU4U' (Errcode: 20 "Not a directory") 2017-07-05 17:23:02 140436573771648 [ERROR] InnoDB: Unable to create temporary file; errno: 20
-
Vicențiu Ciorbaru authored
Interval function makes use of Item_row. Item_row did not correctly mark with_window_func flag according to its arguments. Fix it by making Item_row aware of this flag.
-
Marko Mäkelä authored
When using innodb_page_size=16k, InnoDB tables that were created in MariaDB 10.1.0 to 10.1.20 with PAGE_COMPRESSED=1 and PAGE_COMPRESSION_LEVEL=2 or PAGE_COMPRESSION_LEVEL=3 would fail to load. fsp_flags_is_valid(): When using innodb_page_size=16k, use a more strict check for .ibd files, with the assumption that nobody would try to use different-page-size files.
-
Marko Mäkelä authored
When using innodb_page_size=16k, InnoDB tables that were created in MariaDB 10.1.0 to 10.1.20 with PAGE_COMPRESSED=1 and PAGE_COMPRESSION_LEVEL=2 or PAGE_COMPRESSION_LEVEL=3 would fail to load. fsp_flags_is_valid(): When using innodb_page_size=16k, use a more strict check for .ibd files, with the assumption that nobody would try to use different-page-size files.
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
This is a regression caused by commit bb60a832 srv_shutdown_all_bg_threads(): If os_thread_count indicates that no threads are running, do not bother checking thread status. This avoids a crash when InnoDB startup is aborted before os_aio_init() has been invoked. (os_aio_all_slots_free() would dereference AIO::s_reads even though it is NULL.)
-
Marko Mäkelä authored
InnoDB I/O and buffer pool interfaces and the redo log format have been changed between MariaDB 10.1 and 10.2, and the backup code has to be adjusted accordingly. The code has been simplified, and many memory leaks have been fixed. Instead of the file name xtrabackup_logfile, the file name ib_logfile0 is being used for the copy of the redo log. Unnecessary InnoDB startup and shutdown and some unnecessary threads have been removed. Some help was provided by Vladislav Vaintroub. Parameters have been cleaned up and aligned with those of MariaDB 10.2. The --dbug option has been added, so that in debug builds, --dbug=d,ib_log can be specified to enable diagnostic messages for processing redo log entries. By default, innodb_doublewrite=OFF, so that --prepare works faster. If more crash-safety for --prepare is needed, double buffering can be enabled. The parameter innodb_log_checksums=OFF can be used to ignore redo log checksums in --backup. Some messages have been cleaned up. Unless --export is specified, Mariabackup will not deal with undo log. The InnoDB mini-transaction redo log is not only about user-level transactions; it is actually about mini-transactions. To avoid confusion, call it the redo log, not transaction log. We disable any undo log processing in --prepare. Because MariaDB 10.2 supports indexed virtual columns, the undo log processing would need to be able to evaluate virtual column expressions. To reduce the amount of code dependencies, we will not process any undo log in prepare. This means that the --export option must be disabled for now. This also means that the following options are redundant and have been removed: xtrabackup --apply-log-only innobackupex --redo-only In addition to disabling any undo log processing, we will disable any further changes to data pages during --prepare, including the change buffer merge. This means that restoring incremental backups should reliably work even when change buffering is being used on the server. Because of this, preparing a backup will not generate any further redo log, and the redo log file can be safely deleted. (If the --export option is enabled in the future, it must generate redo log when processing undo logs and buffered changes.) In --prepare, we cannot easily know if a partial backup was used, especially when restoring a series of incremental backups. So, we simply warn about any missing files, and ignore the redo log for them. FIXME: Enable the --export option. FIXME: Improve the handling of the MLOG_INDEX_LOAD record, and write a test that initiates a backup while an ALGORITHM=INPLACE operation is creating indexes or rebuilding a table. An error should be detected when preparing the backup. FIXME: In --incremental --prepare, xtrabackup_apply_delta() should ensure that if FSP_SIZE is modified, the file size will be adjusted accordingly.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-