- 26 Jun, 2019 5 commits
-
-
Eugene Kosov authored
os0once.h: remove as not used now
-
Eugene Kosov authored
zip_pad_info_t::mutex_created: remove along with corresponding stuff zip_pad_info_t::mutex: make member value instead of a pointer
-
Eugene Kosov authored
dict_table_t::stats_latch_created: remove along with related stuff dict_table_t::stats_latch: make value member, not pointer. And always lock this for simplicity, even to stats cloned table. based on the work of Sergey Vojtovich
-
Sergey Vojtovich authored
Get rid of os_once.
-
Sachin authored
MDEV-19049 Server crashes in check_duplicate_long_entry_key, ASAN stack-buffer-overflow in Field_blob::get_key_image Long Unique keys should always be last unique key.
-
- 25 Jun, 2019 3 commits
-
-
Vladislav Vaintroub authored
Limit lines to ~16K
-
Igor Babaev authored
The bug occured when the optimizer decided to use a rowid filter built by a range index scan to access an InnoDB table with generated clustered index. When a table is accessed by a secondary index Idx employing a rowid filter the the value of pk contained in the found index tuple is checked against the filter. A call of the handler function position is supposed to put the pk value into the handler::ref buffer. However for generated clustered primary keys it did not happened. The patch fixes this problem.
-
Ian Gilfillan authored
-
- 22 Jun, 2019 3 commits
-
-
Eugene Kosov authored
Make Field::is_equal() const and return bool as it's a naturally fitting type for it. Also it's agrument was narrowed to Column_definition. InnoDB can change type of some columns by itself. InnoDB-specific code used to reside in Field_xxx:is_equal() methods. Now engine-specific stuff was moved to a virtual methods of handler::can_convert{string,varstring,blob,geom}. These methods are called by Field::can_be_converted_by_engine() which is a double dispatch pattern. Some InnoDB-specific code still resides in compare_keys_but_name(). It should be moved from here someday to handler::compare_key_parts(...) or similar. IS_EQUAL_WITH_REINTERPRET_COMPATIBLE_CHARSET IS_EQUAL_WITH_REINTERPRET_COMPATIBLE_CHARSET_BUT_COLLATE: both was removed IS_EQUAL_NO, IS_EQUAL_YES are not needed now and should be removed along with deprecated handler::check_if_incompatible_data(). HA_EXTENDED_TYPES_CONVERSION: was removed as such logic is not needed now by server code. ALTER_COLUMN_EQUAL_PACK_LENGTH: was renamed to a more generic ALTER_COLUMN_TYPE_CHANGE_BY_ENGINE
-
Eugene Kosov authored
Patch is about two cases: 1) On some collate changes it's possible to rebuild only secondary indexes 2) For non-indexed columns collate can be changed INSTANTly Implemented mostly in Field_{string,varstring,blob}::is_equal(). Make this method return how exactly collationa differs. This information is later used by fill_alter_inplace_info() to pass correct info to engine.
-
Vladislav Vaintroub authored
-
- 21 Jun, 2019 1 commit
-
-
Alexander Barkov authored
-
- 20 Jun, 2019 2 commits
-
-
Varun Gupta authored
Introduced the convert_to_printable_required_length to return the correct length(taking into consideration of dots in the case of error messages).
-
Alexander Barkov authored
-
- 19 Jun, 2019 2 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 18 Jun, 2019 7 commits
-
-
Daniel Bartholomew authored
-
Michael Widenius authored
The test cases for the MDEV found several independent bugs in MariaDB server and Aria: - If a temporary table was marked as crashed, it could never be deleted. - Opening of a crashed temporary table gave an error message but the error was never forwarded to the caller which caused an assert() in my_ok() - init_read_record() did mmap of all temporary tables, which is probably not a good idea as this area can potentially be very big. Changed code to only mmap internal temporary tables. - mmap-ed tables where not unmapped in case of repair/optimize which caused bad data in table and crashes if the original table files where replaced with new ones (as the old mmap was still in place). Fixed by removing the mmap in case of repair. - Cleaned up usage of code that disabled mmap in Aria
-
Sergei Golubchik authored
-
Michael Widenius authored
Problem was that in case of implicit rollback for alter table Aria did try to run commit twice. The test case for this is tricky to do in 10.2, so it will be added to 10.4 as part of BACKUP STAGE testing.
-
mkaruza authored
MDEV-18832 Galera: 10.4 node crashed with Assertion `state() == s_committing' if you create SEQUENCE, use it, then drop and recreate and use again (#1339) We could still end committing to binlog even in rollback. Do not proceed with WSREP commit in this case.
-
mkaruza authored
MDEV-18940 Galera: Rolling upgrade: all nodes except upgraded node5 failed with Assertion `meta->gtid.seqno == wsrep_thd_trx_seqno(thd)' with SEQUENCEs (#1342) Empty write sets will not trigger apply callback, and will not update thread wsrep_trx_meta.gtid.seqno. Because of that assert will be triggered when commit callback is called.
-
Alexander Barkov authored
In collaboration with Sergey Vojtovich <svoj@mariadb.org> The COMPRESSED clause is now a part of the data type and goes immediately after the data type and length, but before the CHARACTER SET clause, and before column attributes such as DEFAULT, COLLATE, ON UPDATE, SYSTEM VERSIONING, engine specific column attributes. In the old reduction, the COMPRESSED clause was a column attribute. New syntax: <varchar or text data type> <length> <compression> <character set> <column attributes> <varbinary or blob data type> <length> <compression> <column attributes> New syntax examples: VARCHAR(1000) COMPRESSED CHARACTER SET latin1 DEFAULT '' BLOB COMPRESSED DEFAULT '' Deprecate syntax examples: VARCHAR(1000) CHARACTER SET latin1 COMPRESSED DEFAULT '' TEXT CHARACTER SET latin1 DEFAULT '' COMPRESSED VARBINARY(1000) DEFAULT '' COMPRESSED As a side effect: - COMPRESSED is not valid as an SP label name in SQL/PSM routines any more (but it's still valid as an SP label name in sql_mode=ORACLE) - COMPRESSED is now allowed in combination with GENERATED ALWAYS AS: TEXT COMPRESSED GENERATED ALWAYS AS REPEAT('a',1000)
-
- 17 Jun, 2019 17 commits
-
-
Sergei Golubchik authored
followup for 0a43df4f
-
Sergei Golubchik authored
-
Vladislav Vaintroub authored
Do not check my_errno before it is set, check errno instead. Also, do not check errno, if prior pread() did not fail.
-
Vladislav Vaintroub authored
Restore the detection of default charset in command line utilities. It worked up to 10.1, but was broken by Connector/C. Moved code for detection of default charset from sql-common/client.c to mysys, and make command line utilities to use this code if charset was not specified on the command line.
-
Vladislav Vaintroub authored
-
Daniel Bartholomew authored
-
Michael Widenius authored
There was two separate problems: - Aria pagecache didn't properly handle re-reading of blocks that have given errors before (this triggered an assert) - temporary tables that where opened several times where not properly closed in ALTER, REPAIR or OPTIMIZE table Other things - Added a couple of asserts that will make it easier to find problems like this in the future.
-
Sergei Golubchik authored
post-merge fixes: * .gitignore * don't put the keyword COMPONENT into ${COMP} anymore * don't alias mytop, but do alias mysql_client_test * don't symlink manpages, use troff aliasing technique instead (symlinked manpages break rpm and out-of-source bintar builds) * move debian to use troff aliased manpages, fix typos in debian files, put aliases in the correct packages, add more aliases to match rpm/bintar packaging
-
Rasmus Johansson authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
in HEAP btree indexes, the address of a record in memory is part of the key. So, when inserting many identical keys, the actual btree shape is defined by how and where records in memory are allocated. records_in_range uses floats to estimate the size of the chunk of the btree between min and max records, it depends on the btree shape and, thus, is not portable either. As are optimizer decisions that are based on records_in_range estimations, if the number happens to be close to a tipping point. as a fix, reduce the number of matching rows, so that even with system-specific variations the optimizer would still pick the expected plan. Fixes heap.heap failure (range vs ALL) on ppc64
-
Sergei Golubchik authored
if ${CRC32_LIBRARY} target has no COMPILE_FLAGS yet, GET_TARGET_PROPERTY returns COMPILE_FLAGS-NOTFOUND, which doesn't work very well when it's later fed back into COMPILE_FLAGS. GET_PROPERTY() returns an empty string in this case.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
MDEV-15526 SysV init service deployed file '/etc/init.d/mysql' prevents systemctl disable command to work correctly (mariadb|mysql naming support) (debian/ubuntu) mariadb service is controlled by systemd Do not install SysV init script on Debian/Ubuntu in /etc/init.d/ put it in /usr/share/mysql in case the user would need it for something. Use systemctl in pre/post scripts directly without funky conditionals and wrapper scripts
-
Sergei Golubchik authored
fixes MDEV-14732 mysql.db privileges evaluated on order of grants rather than hierarchically MDEV-8269 Correct fix for Bug #20181776 :- ACCESS CONTROL DOESN'T MATCH MOST SPECIFIC HOST WHEN IT CONTAINS WILDCARD reimplement the old ad hoc get_sort() function to use a wildcard pattern ordering logic that works correctly in may be all practical cases. get_sort() is renamed to catch merge errors at compilation time. moved to a separate included file, because of a long comment.
-
Sergei Golubchik authored
username can be empty, meaning anybody, or must match literally. only db and host names are matched with wildcards.
-