summaryrefslogtreecommitdiff
path: root/mysql-test/suite
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-17697 Broken versioning info after instant drop columnAleksey Midenkov2018-12-282-0/+35
| | | | Closes #986
* MDEV-18098 Crash after rollback of instant DROP COLUMNMarko Mäkelä2018-12-282-1/+19
| | | | dict_table_t::rollback_instant(): Restore dict_index_t::n_core_fields.
* MDEV-18076/MDEV-18077 Crash on AUTO_INCREMENT column after instant DROPMarko Mäkelä2018-12-272-1/+40
| | | | | | | | | The fix for MDEV-17901 did not cover cases where the AUTO_INCREMENT column was not dropped, but some other columns before it were. commit_cache_norebuild(): Revert the MDEV-17901 fix. dict_index_t::clear_instant_alter(): Update table->persistent_autoinc.
* MDEV-18033/MDEV-18034: Assertion failed on NOT NULL removalMarko Mäkelä2018-12-272-1/+23
| | | | | | | | | | innobase_instant_try(): Only try to update the hidden metadata record if the number of columns is changing (increasing) or a metadata BLOB is being added due to permuting or dropping columns for the first time. dict_table_t::instant_column(), ha_innobase_inplace_ctx::instant_column(): Return whether the metadata record needs to be updated.
* MDEV-17959 Assertion `opt_bootstrap || mysql_parse_status || ↵Alexander Barkov2018-12-272-0/+18
| | | | thd->lex->select_stack_top == 0' failed in parse_sql upon DELETE HISTORY under ORACLE mode
* MDEV-18048: Relax a too strict debug assertionMarko Mäkelä2018-12-212-1/+19
| | | | | | | | | | This assertion should have been relaxed when implementing the first part of MDEV-15563: instant removal of NOT NULL attribute for ROW_FORMAT=REDUNDANT tables. For ROW_FORMAT=REDUNDANT, there is no bitmap of null columns; the null flags are encoded in the end offset of each field. We do not really care about the number of fields that can be NULL.
* MDEV-18035 Failing assertion on DELETEMarko Mäkelä2018-12-212-0/+22
| | | | | instant_alter_column_possible(): Do not allow instant removal of NOT NULL attribute from a column that belongs to the key of the clustered index.
* MDEV-18009 Missing redo log flush in innodb.instant_alter_crashMarko Mäkelä2018-12-202-13/+27
| | | | | | Ensure that the 'auxiliary transactions' that are there for flushing the incomplete undo log of the to-be-recovered DDL transactions are actually making modifications.
* Merge 10.3 into 10.4Marko Mäkelä2018-12-184-0/+446
|\
| * Merge pull request #1031 from tempesta-tech/sysprg/MDEV-17786Jan Lindström2018-12-184-0/+446
| |\ | | | | | | DEV-17786: Add mariabackup test case for galera_sst_xtrabackup-v2_data_dir
| | * DEV-17786: Add mariabackup test case for galera_sst_xtrabackup-v2_data_dirJulius Goryavsky2018-12-134-0/+446
| | | | | | | | | | | | | | | | | | | | | | | | | | | Currently there is no test file in the project that would check the operation of the matiabackupt SST script with the innodb_data_home_dir parameter. This fix adds this test to the galera test suite. https://jira.mariadb.org/browse/MDEV-17786
* | | Merge 10.3 into 10.4Marko Mäkelä2018-12-1832-295/+304
|\ \ \ | |/ /
| * | Merge 10.2 into 10.3Marko Mäkelä2018-12-1832-295/+304
| |\ \
| | * \ Merge 10.1 into 10.2Marko Mäkelä2018-12-177-31/+11
| | |\ \
| | | * | Follow-up to MDEV-12112: corruption in encrypted table may be overlookedMarko Mäkelä2018-12-172-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The initial fix only covered a part of Mariabackup. This fix hardens InnoDB and XtraDB in a similar way, in order to reduce the probability of mistaking a corrupted encrypted page for a valid unencrypted one. This is based on work by Thirunarayanan Balathandayuthapani. fil_space_verify_crypt_checksum(): Assert that key_version!=0. Let the callers guarantee that. Now that we have this assertion, we also know that buf_page_is_zeroes() cannot hold. Also, remove all diagnostic output and related parameters, and let the relevant callers emit such messages. Last but not least, validate the post-encryption checksum according to the innodb_checksum_algorithm (only accepting one checksum for the strict variants), and no longer try to validate the page as if it was unencrypted. buf_page_is_zeroes(): Move to the compilation unit of the only callers, and declare static. xb_fil_cur_read(), buf_page_check_corrupt(): Add a condition before calling fil_space_verify_crypt_checksum(). This is a non-functional change. buf_dblwr_process(): Validate the page only as encrypted or unencrypted, but not both.
| | | * | Merge pull request #1026 from codership/10.1-galera-defaultsJan Lindström2018-12-172-24/+0
| | | |\ \ | | | | | | | | | | | | Remove provider defaults check from 'galera_defaults' MTR test
| | | | * | Remove provider defaults check from 'galera_defaults' MTR testAlexey Yurchenko2018-12-142-24/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From time to time Galera adds new parameters or changes defaults to existing ones. Every time this happens galera_defaults test needs a fix (and a commit) because it insists on checking these defaults. This is making life hard because any Galera update may require a fix to MariaDB code even though it is totally unrelated and defeats the whole idea of a provider living its own life. This commit removes checking for provider defaults to avoid false positive failures on MariaDB side.
| | | * | | MDEV-17771: Add Galera ist and sst tests using mariabackupJan Lindström2018-12-173-0/+6
| | | |/ / | | | | | | | | | | | | | | | Add check that file key management plugin is found.
| | * | | MDEV-14576 Include full name of object in message about incorrect value for ↵Alexey Botchkov2018-12-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | column. galera_prepared_statement test fixed.
| | * | | MDEV-14576 Include full name of object in message about incorrect value for ↵Alexey Botchkov2018-12-1617-132/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | column. The error message modified. Then the TABLE_SHARE::error_table_name() implementation taken from 10.3, to be used as a name of the table in this message.
| | * | | MDEV-14975 mariabackup starts with unprivileged user.Vladislav Vaintroub2018-12-142-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ported privilege checking from xtrabackup. Now, mariabackup would terminate early if either RELOAD or PROCESS privilege is not held, not at the very end of backup The behavior can be disabled with nre setting --check-privileges=0. Also , --no-lock does not need all of these privileges, since it skips FTWRL and SHOW ENGINE STATUS INNODB.
* | | | | Enabling innodb.innodb-alter-table, main.column_compression_parts andVarun Gupta2018-12-151-1/+0
| | | | | | | | | | | | | | | | | | | | main.partition_explicit_prune
* | | | | Merge 10.3 into 10.4Marko Mäkelä2018-12-1414-1289/+65
|\ \ \ \ \ | |/ / / /
| * | | | Merge 10.2 into 10.3Marko Mäkelä2018-12-143-0/+65
| |\ \ \ \ | | |/ / /
| | * | | Merge 10.1 into 10.2Marko Mäkelä2018-12-143-0/+63
| | |\ \ \ | | | |/ /
| | | * | MDEV-12112 corruption in encrypted table may be overlookedMarko Mäkelä2018-12-143-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After validating the post-encryption checksum on an encrypted page, Mariabackup should decrypt the page and validate the pre-encryption checksum as well. This should reduce the probability of accepting invalid pages as valid ones. This is a backport and refactoring of a patch that was originally written by Thirunarayanan Balathandayuthapani for the 10.2 branch.
| * | | | Merge 10.2 into 10.3Marko Mäkelä2018-12-1411-1289/+0
| |\ \ \ \ | | |/ / /
| | * | | MDEV-17958: Make innochecksum follow the build optionMarko Mäkelä2018-12-1411-1292/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Innochecksum was being built as if WITH_INNODB_BUG_ENDIAN_CRC32:BOOL=OFF had been specified. Also, clean up tests: innodb.innochecksum: Useless; superceded by innodb_zip.innochecksum. innodb.innodb_zip_innochecksum: Remove; duplicated innodb_zip.innochecksum. innodb.innodb_zip_innochecksum2: Remove; duplicated innodb_zip.innochecksum_2. innodb.innodb_zip_innochecksum3: Remove; duplicated innodb_zip.innochecksum_3. No test case was added. I tested manually by adding debug instrumentation to both innochecksum and buf_page_is_checksum_valid_crc32() to make innochecksum write the buggy crc32, and to get warnings for falling back to the buggy checksum. Automating this would require that tests be adjusted depending on the build options.
* | | | | MDEV-15563: Instantly change a column to NULLMarko Mäkelä2018-12-134-1/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow instant changes of columns in ROW_FORMAT=REDUNDANT from NOT NULL to NULL. Later, this may be implemented for ROW_FORMAT=COMPACT or DYNAMIC, but in that case any indexes on the table must be rebuilt. dict_table_t::prepare_instant(): Add some debug assertions, and relax a debug assertion so that the number of fields is allowed not to change. dict_index_t::instant_add_field(): Relax a debug assertion, allowing a column to change from NOT NULL to NULL. dict_table_t::instant_column(): Add debug assertions. instant_alter_column_possible(): Allow ALTER_COLUMN_NULLABLE when applicable. innodb_insert_sys_columns(): Add the parameter bool update=false to run UPDATE instead of INSERT. innobase_instant_add_col(): Remove; let the only caller invoke innodb_insert_sys_columns() directly. innobase_instant_try(): Update the SYS_COLUMNS record if the column is changed. Only convert the table to the instant ALTER TABLE format if necessary. For ALTER_COLUMN_NULLABLE in ROW_FORMAT=REDUNDANT, there is no data format change.
* | | | | Merge 10.3 into 10.4Marko Mäkelä2018-12-1310-234/+80
|\ \ \ \ \ | |/ / / /
| * | | | Merge 10.2 into 10.3Marko Mäkelä2018-12-1310-234/+80
| |\ \ \ \ | | |/ / /
| | * | | MDEV-17989 InnoDB: Failing assertion: dict_tf2_is_valid(flags, flags2)Marko Mäkelä2018-12-133-3/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With innodb_default_row_format=redundant, InnoDB would crash when using table options that are incompatible with ROW_FORMAT=REDUNDANT. create_table_info_t::m_default_row_format: Cache the value of innodb_default_row_format. create_table_info_t::check_table_options(): Validate ROW_TYPE_DEFAULT with m_default_row_format. create_table_info_t::innobase_table_flags(): Use the cached m_default_row_format. create_table_info_t: Never read m_form->s->row_type. Use m_create_info->row_type instead. dict_tf_set(): Never set invalid flags for ROW_FORMAT=REDUNDANT. ha_innobase::truncate(): Set info.row_type based on the ROW_FORMAT of the current table.
| | * | | Merge 10.1 into 10.2Marko Mäkelä2018-12-135-232/+12
| | |\ \ \ | | | |/ /
| | | * | Merge 10.0 into 10.1Marko Mäkelä2018-12-134-232/+8
| | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, apply the MDEV-17957 changes to encrypted page checksums, and remove error message output from the checksum function, because these messages would be useless noise when mariabackup is retrying reads of corrupted-looking pages, and not that useful during normal server operation either. The error messages in fil_space_verify_crypt_checksum() should be refactored separately.
| | * | | | MDEV-17885 TRUNCATE on temporary table causes ER_GET_ERRNOMarko Mäkelä2018-12-122-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ha_innobase::truncate(): Because CREATE TEMPORARY TABLE allows invalid table options when innodb_file_per_table=1, do allow them also in TRUNCATE for temporary tables.
* | | | | | MDEV-16266 - New command FLUSH SSL to reload server's SSL ↵Vladislav Vaintroub2018-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | certificate(private key,CRL,etc)
* | | | | | Merge 10.3 into 10.4Marko Mäkelä2018-12-1210-37/+76
|\ \ \ \ \ \ | |/ / / / /
| * | | | | Merge 10.2 into 10.3Marko Mäkelä2018-12-126-26/+76
| |\ \ \ \ \ | | |/ / / /
| | * | | | MDEV-17815 Assertion failed in btr_node_ptr_max_size for CHAR(0)Marko Mäkelä2018-12-122-2/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | btr_node_ptr_max_size(): Treat CHAR(0) from SQL as a special case. The InnoDB internal SQL parser maps the type "CHAR" to DATA_VARCHAR, but MariaDB does allow CHAR(0) with an empty value, and does enforce the length limitation.
| | * | | | Merge 10.1 into 10.2Marko Mäkelä2018-12-124-24/+52
| | |\ \ \ \ | | | |/ / /
| | | * | | Merge 10.0 into 10.1Marko Mäkelä2018-12-122-0/+63
| | | |\ \ \ | | | | |/ /
| | | | * | MDEV-17833 ALTER TABLE is not enforcing prefix index size limitEugene Kosov2018-12-112-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ha_innobase::prepare_inplace_alter_table(): check max column length for every index in a table, not just added in this particular ALTER TABLE with ADD INDEX ones.
| * | | | | MDEV-17778: Alter table leads to a truncation warning with ANALYZE commandVarun Gupta2018-12-101-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Alter statement changed the THD structure by setting the value to FIELD_CHECK_WARN and then not resetting it back. This led ANALYZE to throw a warning which previously it didn't.
* | | | | | MDEV-17763 Assertion `len == 20U' failed in rec_convert_dtuple_to_rec_comp ↵Marko Mäkelä2018-12-122-1/+142
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | on DROP COLUMN btr_cur_pessimistic_insert(): Convert the metadata field of the metadata record into BLOB before inserting, just like btr_cur_optimistic_insert() does.
* | | | | | MDEV-17658 change the structure of mysql.user tableSergei Golubchik2018-12-1278-2221/+832
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement User_table_json. Fix scripts to use mysql.global_priv. Fix tests.
* | | | | | MDEV-17658 change the structure of mysql.user tableSergei Golubchik2018-12-123-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce User_table_tabular(mysql.user) and User_table_json(mysql.global_priv). The latter is not implemented. Automatic fallback to the old implementation works. Results change because privilege tables are opened in a different order now.
* | | | | | cleanup: refactor grant table classes in sql_acl.ccSergei Golubchik2018-12-122-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | move all backward compatibility related code into User_table, the caller should not know or care anymore. Other tables (Db_table, etc) are *not* refactored. For consistency with other updates, setting a default role no longer errors out when the mysql.user table is too old.
* | | | | | MDEV-5313 Improving audit api.Alexey Botchkov2018-12-124-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | Service added to handle json.
* | | | | | MDEV-17901 Crash after instant DROP COLUMN of AUTO_INCREMENT columnMarko Mäkelä2018-12-112-1/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We failed to reset the dict_table_t::persistent_autoinc after instantly dropping an AUTO_INCREMENT column, causing a bogus call to row_parse_int() on a subsequent insert.
* | | | | | Updated the result for innodb.innodb_mysqlVarun Gupta2018-12-101-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The result is updated here because by changing the defaults for use_stat_tables EITs statistcs are providing more accurate statistics than INNODB statistics.