- 24 Feb, 2019 3 commits
-
-
Oleksandr Byelkin authored
-
Igor Babaev authored
st_select_lex::pushdown_from_having_into_where upon query with impossible WHERE condition Do not push from HAVING into impossible WHERE
-
Igor Babaev authored
Do not do substitution for best equal field in HAVING conditions. It's not needed.
-
- 23 Feb, 2019 2 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
- 22 Feb, 2019 4 commits
-
-
Oleksandr Byelkin authored
-
sachin authored
-
Sergei Golubchik authored
post-merge fixes
-
Sergei Golubchik authored
sql_field->key_length was 0 for blob fields when a field was being added, but Field_blob::character_octet_length() on subsequent ALTER TABLE's (when the Field object in the old table already existed). This means mysql_prepare_create_table() couldn't reliably detect if the keyseg was a prefix.
-
- 21 Feb, 2019 25 commits
-
-
Sachin authored
This patch implements engine independent unique hash index. Usage:- Unique HASH index can be created automatically for blob/varchar/test column whose key length > handler->max_key_length() or it can be explicitly specified. Automatic Creation:- Create TABLE t1 (a blob unique); Explicit Creation:- Create TABLE t1 (a int , unique(a) using HASH); Internal KEY_PART Representations:- Long unique key_info will have 2 representations. (lets understand this with an example create table t1(a blob, b blob , unique(a, b)); ) 1. User Given Representation:- key_info->key_part array will be similar to what user has defined. So in case of example it will have 2 key_parts (a, b) 2. Storage Engine Representation:- In this case there will be only one key_part and it will point to HASH_FIELD. This key_part will be always after user defined key_parts. So:- User Given Representation [a] [b] [hash_key_part] key_info->key_part ----^ Storage Engine Representation [a] [b] [hash_key_part] key_info->key_part ------------^ Table->s->key_info will have User Given Representation, While table->key_info will have Storage Engine Representation.Representation can be changed into each other by calling re/setup_keyinfo_hash function. Working:- 1. So when user specifies HASH_INDEX or key_length is > handler->max_key_length(), In mysql_prepare_create_table One extra vfield is added (for each long unique key). And key_info->algorithm is set to HA_KEY_ALG_LONG_HASH. 2. In init_from_binary_frm_image values for hash_keypart is set (like fieldnr , field and flags) 3. In parse_vcol_defs, HASH_FIELD->vcol_info is created. Item_func_hash is used with list of Item_fields, When Explicit length is given by user then Item_left is used to concatenate Item_field values. 4. In ha_write_row/ha_update_row check_duplicate_long_entry_key is called which will create the hash key from table->record[0] and then call ha_index_read_map , if we found duplicated hash , we will compare the result field by field.
-
Oleksandr Byelkin authored
-
Sergei Golubchik authored
move the assignment out of a function, so that it wouldn't happen in a subshell
-
Marko Mäkelä authored
ib_counter_element_t: Declare as struct, not union. Based on patch by Vladislav Vaintroub
-
Sergei Golubchik authored
Debian part. Do not ask to set a root password, do not create debian-sys-maint user (but preserve an existing one on upgrades - user scripts might be relying on it). Just create an empty /etc/mysql/debian.cnf for --defaults-file not to fail
-
Sergei Golubchik authored
and, again, *don't use thd->clear_error()* this fixed main.sp_notembedded failure on various amd64 platforms (where ER_STACK_OVERRUN_NEED_MORE happens to fire in open_stat_tables() under Dummy_error_handler)
-
Sergei Golubchik authored
-
Sergei Golubchik authored
After FLUSH PRIVILEGES remember if the connection started under --skip-grant-tables and keep it all-powerful, not a lowly anonymous. One could use this connection to reset passwords as needed. Also fix a crash in SHOW CREATE USER
-
Sergei Golubchik authored
-
Sergei Golubchik authored
post-merge changes: * handle password expiration on old tables like everything else - make changes in memory, even if they cannot be done on disk * merge "debug" tests with non-debug tests, they don't use dbug anyway * only run rpl password expiration in MIXED mode, it doesn't replicate anything, so no need to repeat it thrice * restore update_user_table_password() prototype, it should not change ACL_USER, this is done in acl_user_update() * don't parse json twice in get_password_lifetime and get_password_expired * remove LEX_USER::is_changing_password, see if there was any auth instead * avoid overflow in expiration calculations * don't initialize Account_options in the constructor, it's bzero-ed later * don't create ulong sysvars - they're not portable, prefer uint or ulonglong * misc simplifications
-
Robert Bindar authored
This patch adds support for expiring user passwords. The following statements are extended: CREATE USER user@localhost PASSWORD EXPIRE [option] ALTER USER user@localhost PASSWORD EXPIRE [option] If no option is specified, the password is expired with immediate effect. If option is DEFAULT, global policy applies according to the default_password_lifetime system var (if 0, password never expires, if N, password expires every N days). If option is NEVER, the password never expires and if option is INTERVAL N DAY, the password expires every N days. The feature also supports the disconnect_on_expired_password system var and the --connect-expired-password client option. Closes #1166
-
Sergei Golubchik authored
fix unix_socket tests to work if unix_socket is a built-in
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
* don't suppress output unnecessary * only run system versioning tests with two innodb combinations * show results of delete/update (add SELECTs as needed)
-
Nikita Malyavin authored
* implicit period constraint is hidden and cannot be dropped independently * create...like and create...select support
-
Nikita Malyavin authored
-
Nikita Malyavin authored
* inject portion of time updates into mysql_delete main loop * triggered case emits delete+insert, no updates * PORTION OF `SYSTEM_TIME` is forbidden * `DELETE HISTORY .. FOR PORTION OF ...` is forbidden as well
-
Nikita Malyavin authored
* add syntax `CREATE TABLE ... PERIOD FOR <apptime>` * add table period entity
-
Sergei Golubchik authored
-
Oleksandr Byelkin authored
-
- 20 Feb, 2019 6 commits
-
-
Oleksandr Byelkin authored
-
Vladislav Vaintroub authored
This is done in order to help debugging buildbot failures.
-
Marko Mäkelä authored
This is follow-up to MDEV-18048: Relax a too strict debug assertion 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.
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
Revert the type casts of 58e525e4.
-
Vladislav Vaintroub authored
-