- 06 Nov, 2018 4 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
main.derived_cond_pushdown: Move all 10.3 tests to the end, trim trailing white space, and add an "End of 10.3 tests" marker. Add --sorted_result to tests where the ordering is not deterministic. main.win_percentile: Add --sorted_result to tests where the ordering is no longer deterministic.
-
Marko Mäkelä authored
Remove trailing white space, and use lower case for "eval" and "let". Add an "End of 10.2 tests" marker to ease future merges.
-
Marko Mäkelä authored
-
- 05 Nov, 2018 9 commits
-
-
Sergei Petrunia authored
Part#2: take into account that join nest that we are marking as constant might already have constant tables in it. Don't count these tables twice.
-
Sergei Petrunia authored
Update .result files after the previous patch
-
Sergei Petrunia authored
Continuation of the fix: Make condition selectivity estimate use the right estimate, too.
-
Sergei Petrunia authored
Reuse the fix for MDEV-17518 here, too.
-
Sergei Petrunia authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The relevant InnoDB/XtraDB fixes up to 5.6.42 had already been applied to MariaDB in commit 30c3d6db. Revert some changes that appeared in the merge commit 87d852f1.
-
Marko Mäkelä authored
-
Eugene Kosov authored
Problem affects INPLACE ALTER rename columns. innobase_rename_column_try(): some strcmp() was replaced with my_strcasecmp(), queries to update data dictionary was updated to not match column name case.
-
- 04 Nov, 2018 2 commits
-
-
Sergei Golubchik authored
MDEV-17349 Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index))' failed on concurrent SELECT and DELETE after RENAME from table with index on virtual column Race condition. field->flags were copied from s->field->flags during field->clone(), early in open_table_from_share(). But s->field->flags were getting their PART_INDIRECT_KEY_FLAG bit much later in TABLE::mark_columns_used_by_virtual_fields() and only once per share. If two threads were executing the code between field->clone() and mark_columns_used_by_virtual_fields() at the same time, only one would get PART_INDIRECT_KEY_FLAG bits in field[].
-
Alexander Barkov authored
C++ does not guarantee the order of parameter evaluation. It was wrong to pass item->val_int() and item->null_value at the same time to any function or constructor. Adding a new helper class Longlong_null, and new methods Item::to_longlong_null() and Item_func_hybrid_field_type::to_longlong_null_op(), which make sure to properly call val_int()/int_op() and test null_value. Reorganizing the rest of the code accordingly.
-
- 03 Nov, 2018 1 commit
-
-
Alexey Botchkov authored
LOCK view WRITE shouldn't block FLUSH view. So we set the view's mdl_request type to it's tables.
-
- 02 Nov, 2018 4 commits
-
-
Marko Mäkelä authored
thd_rpl_stmt_based(): A new predicate to check if statement-based replication is active. (This can also hold when replication is not in use, but binlog is.) que_thr_stop(), row_ins_duplicate_error_in_clust(), row_ins_sec_index_entry_low(), row_ins(): On a duplicate key error, only lock all index records when statement-based replication is in use.
-
Daniel Bartholomew authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 01 Nov, 2018 12 commits
-
-
Vicențiu Ciorbaru authored
Users expect window functions to produce a certain ordering of rows in the final result set. Although the standard does not require this, we already have the filesort result done for when we computed the window function. If there is no ORDER BY attached to the query, just keep it till the SELECT is completely evaluated and use that to print the result. Update test cases as many did not take care to guarantee a stable result.
-
Marko Mäkelä authored
ha_innobase::check_if_supported_inplace_alter(): Remove a redundant condition and defer some computations. If INNOBASE_ALTER_VERSIONED_REBUILD is set, innobase_need_rebuild() will necessarily hold. Therefore, it is not necessary to assign need_rebuild at the start of the function.
-
Daniel Bartholomew authored
-
Sergei Golubchik authored
set both `password` and `authentication_string` columns in `mysql`.`user` table for now. Suppress the "password was ignored" warning if the password is the same as the authentication string
-
Aleksey Midenkov authored
MDEV-17038 ALTER TABLE CHANGE COLUMN c1 c1 bigint NOT NULL - generates error if table uses SYSTEM VERSIONING * Fine-grained inplace skipping by INNOBASE_ALTER_VERSIONED_REBUILD; * Fixed column WITHOUT SYSTEM VERSIONING + ADD COLUMN; * Fixed instant field change (MDEV-16330); * Revisited test versioning.online; * Merged the test versioning.trx_id_versioning_attribute_persistence to versioning.online; * Renamed some versioning functions: ** change_fields_versioning_cache() -> vers_change_fields_cache() ** change_field_versioning_try() -> vers_change_field_try() Skip condition moved out of func. Closes tempesta-tech/mariadb#414 Closes tempesta-tech/mariadb#540 Related to tempesta-tech/mariadb#281
-
Andrei Elkin authored
which did not always correctly simulated io-cache::end_of_file. The error was caused by implicit cast to unsigned of an intemediate term in a formula.
-
Alexander Barkov authored
It seems Item_cache_time::val_datetime_packed() is never caller in the current code. Fixing it to use to_packed() rather than to_longlong() anyway.
-
Marko Mäkelä authored
The parameters bool sync=true, bool read_only=false of mtr_t::start() were added in https://github.com/mysql/mysql-server/commit/eca5b0fc17a5bd6d4833d35a0d08c8549dd3b5ec (MySQL 5.7.3). The parameter read_only was never used anywhere. The parameter sync was only copied around, and would be returned by the unused function mtr_t::is_async(). We do not need this dead code in MariaDB.
-
Marko Mäkelä authored
At the start of the function, we already dereferenced node, so the checks for NULL are unnecessary and redundant.
-
Varun Gupta authored
For index merge union[or sort union], the estimates are not taken into account while calculating the selectivity of a condition. So instead of showing the estimates of the index merge union[or sort union], it shows estimates equal to all the records of the table. The fix for the issue is to include the selectivity of index merge union[or sort union] while calculating the selectivity of a condition.
-
Jan Lindström authored
branch.
-
Jan Lindström authored
-
- 31 Oct, 2018 8 commits
-
-
Elena Stepanova authored
-
Sergei Golubchik authored
-
Vladislav Vaintroub authored
Query INFORMATION_SCHEMA.INNODB_SYS_TABLES only once, and cache results. As a small cleanup, remove mdl_lock_con_mutex, the MDL handling connection is never accessed by multiple threads at the same time.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
sql\sql_acl.cc(3114): error C2220: warning treated as error - no 'object' file generated sql\sql_acl.cc(3114): warning C4390: ';': empty controlled statement found; is this the intent?
-
Sergei Golubchik authored
Support SET PASSWORD for authentication plugins. Authentication plugin API is extended with two optional methods: * hash_password() is used to compute a password hash (or digest) from the plain-text password. This digest will be stored in mysql.user table * preprocess_hash() is used to convert this digest into some memory representation that can be later used to authenticate a user. Build-in plugins convert the hash from hexadecimal or base64 to binary, to avoid doing it on every authentication attempt. Note a change in behavior: when loading privileges (on startup or on FLUSH PRIVILEGES) an account with an unknown plugin was loaded with a warning (e.g. "Plugin 'foo' is not loaded"). But such an account could not be used for authentication until the plugin is installed. Now an account like that will not be loaded at all (with a warning, still). Indeed, without plugin's preprocess_hash() method the server cannot know how to load an account. Thus, if a new authentication plugin is installed run-time, one might need FLUSH PRIVILEGES to activate all existing accounts that were using this new plugin.
-
Sergei Golubchik authored
* remove dead code (from .yy) * remove redundant commands from the test * extract common code into a reusable function (get_auth_plugin, push_new_user) * rename update_user_table->update_user_table_password * simplify acl_update_user * don't strdup a string that's already in a memroot (in ACL_ROLE::ACL_ROLE(ACL_USER*)) * create parent_grantee and role_grants dynamic arrays with size 0. to avoid any memory allocations when roles aren't used.
-
Sergei Golubchik authored
Don't distinguish between a "password hash" and "authentication string" anymore. Now both are stored in mysql.user.authentication_string, both are handled identically internally. A "password hash" is just how some particular plugins interpret authentication string. Set mysql.user.plugin even if there is no password. The server will use mysql_native_password plugin in these cases, let's make it expicit. Remove LEX_USER::pwhash.
-