- 07 Oct, 2018 1 commit
-
-
Igor Babaev authored
derived table / view by equality Now rows of a materialized derived table are always put into a temporary table before join operation. If BNLH is used to join this table with the result of a partial join then both operands of the join are actually put into main memory. In most cases this is not efficient. We could avoid this by sending the rows of the derived table directly to the join operation. However this kind of data flow is not supported yet. Fixed by not allowing usage of hash join algorithm to join a materialized derived table if it's joined by an equality predicate of the form f=e where f is a field of the derived table.
-
- 01 Oct, 2018 1 commit
-
-
Marko Mäkelä authored
-
- 22 Sep, 2018 2 commits
-
-
Sergei Golubchik authored
to guarantee that it's destroyed when plugin deinit is called, not after
-
Sergei Golubchik authored
-
- 21 Sep, 2018 8 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
Unary minus operation for the smallest possible signed long long value (LONLONG_MIN) is undefined in C++. Because of this, func_time.test failed on ppc64 buildbot machines. Fixing the code to avod using undefined operations. This is fix is similar to "MDEV-7973 bigint fail with gcc 5.0"
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Eugene Kosov authored
alloc_root(): unpoison only requested amount of bytes instead of a possible bigger aligned-sized buffer.
-
Alexander Barkov authored
For the original test in 10.0 it was not really important if find_user_wild() or find_user_exact() is used in sp_grant_privileges(). sp-security.test passed with either of them. Fixing the test so it reliably fails with find_user_wild() and pass with find_user_exact().
-
Alexander Barkov authored
-
- 20 Sep, 2018 3 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 18 Sep, 2018 1 commit
-
-
Sergey Vojtovich authored
table->pos_in_locked_tables->table == table' failed in mark_used_tables_as_free_for_reuse Assertion failure can be triggered by some DDL executed under LOCK TABLES that holds lock for DDL target table multiple times (either explicitly or implcitly). When closing all table instances for given table (e.g. when preparing for table removal during CREATE OR REPLACE), only one instance was removed from m_locked_tables list. Later we attempt to re-insert one of the instances in mysql_create_table()/ add_back_last_deleted_lock(), which wasn't actually removed. This leads to m_locks_tables corruption, specifically loss of all following elements. Then UNLOCK TABLE won't reset some table instances properly (specifically pos_in_locked_tables), since they're not present in m_locked_tables. Eventually such table instance gets released to table cache and then re-used by subsequent statement, which triggers this assertion failure.
-
- 10 Sep, 2018 2 commits
-
-
Eugene Kosov authored
multi_delete sets TABLE::no_cache=1 and should set it to 0 when DELETE is done.
-
Ian Gilfillan authored
-
- 06 Sep, 2018 2 commits
-
-
Sergei Golubchik authored
don't create static objects that destroy mutexes from destructors, and don't destroy mutexes from .so destructor (on-unload) function. if it happens after exit(), P_S will be long gone by that time this fixes tokudb tests crashing on quantal-amd64
-
Oleksandr Byelkin authored
-
- 05 Sep, 2018 2 commits
-
-
Sergei Golubchik authored
MDEV-16465 Invalid (old?) table or database name or hang in ha_innobase::delete_table and log semaphore wait upon concurrent DDL with foreign keys lowercase db and table names before prelocking. Post-fix for 9180e866 This fixes failures on main.lowercase_table4 on Windows
-
Sergey Vojtovich authored
for blob column Moved delete_stat_values_for_table_share() call to proper place.
-
- 04 Sep, 2018 11 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
MDEV-16465 Invalid (old?) table or database name or hang in ha_innobase::delete_table and log semaphore wait upon concurrent DDL with foreign keys Disable "Invalid (old?) table or database name" warning when converting table names in InnoDB's get_foreign_key_info(). Because a name can be a temporary table name during the ALTER TABLE, and some other thread can do SHOW CREATE TABLE for the other table in the FK relationships _anytime_.
-
Sergei Golubchik authored
MDEV-16465 Invalid (old?) table or database name or hang in ha_innobase::delete_table and log semaphore wait upon concurrent DDL with foreign keys ALTER TABLE locks the table with TL_READ_NO_INSERT, to prevent the source table modifications while it's being copied. But there's an indirect way of modifying a table, via cascade FK actions. After previous commits, an attempt to modify an FK parent table will cause FK children to be prelocked, so the table-being-altered cannot be modified by a cascade FK action, because ALTER holds a lock and prelocking will wait. But if a new FK is being added by this very ALTER, then the target table is not locked yet (it's a temporary table). So, we have to lock FK parents explicitly.
-
Sergei Golubchik authored
Backport of 794f71cb
-
Sergei Golubchik authored
table_already_fk_prelocked() was looking for a table in the wrong list (not the complete list of prelocked tables, but only in its tail, starting from the current table - which is always empty for the last added table), so for circular FKs it kept adding same tables to the list indefinitely. Backport of d6d7e169
-
Sergei Golubchik authored
-
Sergei Golubchik authored
Backport of f1362910
-
Sergei Golubchik authored
Use TABLE::init_one_table(), don't duplicate it. Put additional initializations into TABLE::init_one_table_for_prelocking() Backport of f1362910
-
Sergei Golubchik authored
instead of returning strings for CASCADE/RESTRICT from every storage engine, use enum values Backport of a3614d33
-
Sergei Golubchik authored
test case
-
Sergei Golubchik authored
A test case and a followup fix
-
- 03 Sep, 2018 3 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Monty authored
Missed one file in last push...
-
- 31 Aug, 2018 1 commit
-
-
Oleksandr Byelkin authored
The problem was that join_columns creation was not finished due to error of notfound column in USING, but next execution tried to use join_columns lists. Solution is cleanup the lists on error. It can eat memory in statement MEM_ROOT but it is an error and error will be fixed or statement/procedure removed/altered.
-
- 30 Aug, 2018 1 commit
-
-
Monty authored
Problem was that SQL level tried to read a record with rnd_pos() that was already deleted by the same statement. In the case where the page for the record had been deleted, this caused an assert. Fixed by extending the assert to also handle empty pages and return HA_ERR_RECORD_DELETED for reads to deleted pages.
-
- 29 Aug, 2018 1 commit
-
-
Varun Gupta authored
optimizer_use_condition_selectivity>=3 Selectivity analysis should be disabled for Geometrical columns for the case like geometric_field= string_constant.
-
- 28 Aug, 2018 1 commit
-
-
Varun Gupta authored
Currently for selectivity calculation we perform range analysis for a column even when we don't have any statistics(EITS). This makes less sense but is used to catch contradiction for WHERE condition. So the solution is to not perform range analysis for selectivity calculation for columns that do not have statistics.
-