- 18 Feb, 2019 9 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The Create_field::charset can contain garbage for columns that the SQL layer does not consider as being string columns. InnoDB considers BIT a string column for historical reasons (and backward compatibility with old persistent InnoDB metadata), and therefore it checked the charset. The Field::charset() consistently is my_charset_bin for BIT, so we can trust that one.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Fix clang warning: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true The only caller of TABLE::best_range_rowid_filter_for_partial_join() already seems to be assuming that s->table != NULL.
-
mkaruza authored
When node is JOINER and bin-log is enabled but bin-log-index is not set in configuration, we use NULL pointer which causes segfault. Fixed by checking for NULL pointer before using variable.
-
Vladislav Vaintroub authored
-
Teemu Ollakka authored
Calls to wsrep_after_statement() were missing on PS protocol codepath. Added calls after mysqld_stmt_execute() and mysqld_stmt_bulk_execute().
-
Teemu Ollakka authored
Galera versions below 4.x do not generate unique sequence number for view events. Take this into account when writing the SE checkpoint to avoid debug assertion in InnoDB.
-
Daniele Sciascia authored
* Created new binlog-header file * Fixed warning on SELECT INTO DUMPFILE * Re-recorded the test result
-
- 16 Feb, 2019 3 commits
-
-
Marko Mäkelä authored
Field_str::is_equal(): Do not allow instant conversions between BIT (which is stored big-endian) and integer types (which can be stored big-endian or little-endian, depending on storage engine). row_sel_field_store_in_mysql_format_func(): Properly extend narrower integer and DATA_FIXBINARY values to the current format. DATA_FIXBINARY was incorrectly padded with 0x20 instead of 0.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
In tests that directly write InnoDB data file pages, compute the innodb_checksum_algorithm=crc32 checksums, instead of writing the 0xdeadbeef value used by innodb_checksum_algorithm=none. In this way, these tests will not cause failures when executing ./mtr --mysqld=--loose-innodb-checksum-algorithm=strict_crc32
-
- 15 Feb, 2019 11 commits
-
-
Sergei Golubchik authored
-
Igor Babaev authored
-
Alexander Barkov authored
1. Renaming Type_handler_json to Type_handler_json_longtext There will be other JSON handlers soon, e.g. Type_handler_json_varchar. 2. Making the code more symmetric for data types: - Adding a new virtual method Type_handler::Column_definition_validate_check_constraint() - Moving JSON-specific code from sql_yacc.yy to Type_handler_json_longtext::Column_definition_validate_check_constraint() 3. Adding new files sql_type_json.cc and sql_type_json.h and moving Type_handler+JSON related code into these files.
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
instant_alter_column_possible(): Add the other MDEV-17459 work-around condition. The existence of fulltext indexes only prevents instant DROP COLUMN or changing the order of columns. Other forms of instant ALTER TABLE are no problem. Before commit 4e7ee166 that merged the MDEV-18295 fix from 10.3, the work-around of MDEV-17459 in instant_alter_column_possible() was categorically refusing any ALGORITHM=INSTANT if any FULLTEXT INDEX was present. After that commit, a related condition was only present in prepare_inplace_alter_table_dict() but not in the other callers of instant_alter_column_possible().
-
Marko Mäkelä authored
-
Jan Lindström authored
Fix some of the galera_sr suite test failures. Remove tests that are not going to be run because required feature is not supported. modified: mysql-test/suite/galera_sr/disabled.def deleted: mysql-test/suite/galera_sr/r/GCF-574.result modified: mysql-test/suite/galera_sr/r/galera_sr_cc_slave.result modified: mysql-test/suite/galera_sr/r/galera_sr_kill_all_norecovery.result modified: mysql-test/suite/galera_sr/r/galera_sr_load_data.result deleted: mysql-test/suite/galera_sr/r/galera_sr_sbr.result modified: mysql-test/suite/galera_sr/r/mysql-wsrep-features#148.result deleted: mysql-test/suite/galera_sr/r/mysql-wsrep-features#29.result deleted: mysql-test/suite/galera_sr/t/GCF-574.test modified: mysql-test/suite/galera_sr/t/galera_sr_cc_slave.test modified: mysql-test/suite/galera_sr/t/galera_sr_kill_all_norecovery.cnf modified: mysql-test/suite/galera_sr/t/galera_sr_kill_all_norecovery.test modified: mysql-test/suite/galera_sr/t/galera_sr_load_data.test deleted: mysql-test/suite/galera_sr/t/galera_sr_sbr.test modified: mysql-test/suite/galera_sr/t/mysql-wsrep-features#148.test deleted: mysql-test/suite/galera_sr/t/mysql-wsrep-features#29.test
-
Igor Babaev authored
-
Marko Mäkelä authored
dtype_is_string_type(), dtype_is_binary_string_type(), dtype_is_non_binary_string_type(): Define as inline functions that return bool, not ibool.
-
Marko Mäkelä authored
-
Igor Babaev authored
-
- 14 Feb, 2019 13 commits
-
-
Igor Babaev authored
Also adjusted some test files.
-
Vladislav Vaintroub authored
The assertion happens under BACKUP STAGE BLOCK_COMMIT, when a DDL on a temporary table (#sql-xxx) is found. Apparently, assumption that all DDLs are blocked under FTWRL does not hold for BACKUP STAGE, and temporary tables can still have ALTERs The fix is to relax the assertion, and only check for opt_no_lock if backup is *really* inconsistent, i.e either optimized DDL or CREATE/RENAME are done on the tables that were not skipped during backup.
-
Marko Mäkelä authored
Allow ALGORITHM=INSTANT (or avoid touching any data) when changing the collation, or in some cases, the character set, of a non-indexed CHAR or VARCHAR column. There is no penalty for subsequent DDL or DML operations, and compatibility with older MariaDB versions will be unaffected. Character sets may be changed when the old encoding is compatible with the new one. For example, changing from ASCII to anything ASCII-based, or from 3-byte to 4-byte UTF-8 can sometimes be performed instantly. This is joint work with Eugene Kosov. The test cases as well as ALTER_CONVERT_TO, charsets_are_compatible(), Type_handler::Charsets_are_compatible() are his work. The Field_str::is_equal(), Field_varstring::is_equal() and the InnoDB changes were mostly rewritten by me due to conflicts with MDEV-15563. Limitations: Changes of indexed columns will still require ALGORITHM=COPY. We should allow ALGORITHM=NOCOPY and allow the indexes to be rebuilt inside the storage engine, without copying the entire table. Instant column size changes (in bytes) are not supported by all storage engines. Instant CHAR column changes are only allowed for InnoDB ROW_FORMAT=REDUNDANT. We could allow this for InnoDB when the CHAR internally uses a variable-length encoding, say, when converting from 3-byte UTF-8 to 4-byte UTF-8. Instant VARCHAR column changes are allowed for InnoDB ROW_FORMAT=REDUNDANT, and for others only if the size in bytes does not change from 128..255 bytes to more than 256 bytes. Inside InnoDB, this slightly changes the way how MDEV-15563 works and fixes the result of the innodb.instant_alter_extend test. We change the way how ALTER_COLUMN_EQUAL_PACK_LENGTH_EXT is handled. All column extension, type changes and renaming now go through a common route, except when ctx->is_instant() is in effect, for example, instant ADD or DROP COLUMN has been initiated. Only in that case we will go through innobase_instant_try() and rewrite all column metadata. get_type(field, prtype, mtype, len): Convert a SQL data type into InnoDB column metadata. innobase_rename_column_try(): Remove the update of SYS_COLUMNS. innobase_rename_or_enlarge_column_try(): New function, replacing part of innobase_rename_column_try() and all of innobase_enlarge_column_try(). Also changes column types. innobase_rename_or_enlarge_columns_cache(): Also change the column type.
-
Sergei Golubchik authored
move account options from LEX to Account_options structure namely, mqh and ssl_* Also, use LEX_CSTRING for ssl_*/x509_* strings and move setting of ACL_USER::account_locked where it belongs
-
Robert Bindar authored
Add server support for user account locking. This patch extends the ALTER/CREATE USER statements for denying a user's subsequent login attempts: ALTER USER user [, user2] ACCOUNT [LOCK | UNLOCK] CREATE USER user [, user2] ACCOUNT [LOCK | UNLOCK] The SHOW CREATE USER statement was updated to display the locking state of an user. Closes #1006
-
Sergei Golubchik authored
fix mysql_fix_privilege_tables to look for the `user` table in the correct schema when deciding whether to convert it to `global_priv` table make related tests a bit more verbose
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
Too easy to abuse. One tends to use it even when microseconds are not needed and will be ignored.
-
Jan Lindström authored
Cleanup wsrep_schema and remove all references to wsrep_thd_pool
-
Jan Lindström authored
WSREP debug log levels support
-
Daniele Sciascia authored
* Removed all references related to wsrep_thd_pool (which was removed) * Removed unused declarations in wsrep_schema.h * The following would result invalid reads in Wsrep_schema::replay_transaction(): ``` frag_table->field[4]->val_str(&buf); Wsrep_schema_impl::end_index_scan(frag_table); Wsrep_schema_impl::finish_stmt(thd); ret= wsrep_apply_events(thd, rli, buf.c_ptr_safe(), buf.length()); ``` because `buf` was accessed after closing the table. The fix is to perform storage reads using a different THD. * In Wsrep_schema::recover_sr_transactions(), cluster_table was opened for write, however it is only read here. And frag_table was opened for read, wereas write is potentially needed. Also, avoid copy caused by String::c_ptr() to zero terminate the c string, use c_ptr_quick instead.
-
Igor Babaev authored
Due to inconsistent usage of different cost models to calculate the cost of ref accesses we have to make the calculation of the gain promising by usage a range filter more complex.
-
- 13 Feb, 2019 4 commits
-
-
Igor Babaev authored
-
Marko Mäkelä authored
Commit 22feb179 broke the build with performance_schema disabled. dict_col_t::same_charset(): An auxiliary function to dict_col_t::same_format(). Determine if two non-binary string columns have the same character set.
-
Alexey Botchkov authored
-
Daniel Black authored
Remove 'register' quantifer from args too.
-