- 12 Aug, 2019 1 commit
-
-
Marko Mäkelä authored
-
- 31 Jul, 2019 1 commit
-
-
Daniel Bartholomew authored
-
- 26 Jul, 2019 1 commit
-
-
Oleksandr Byelkin authored
-
- 25 Jul, 2019 1 commit
-
-
Oleksandr Byelkin authored
-
- 24 Jul, 2019 6 commits
-
-
Nisha Gopalakrishnan authored
Analysis ======== Point in time recovery using mysqlbinlog containing queries operating on temporary tables results in an error. While writing the query log event in the binary log, the thread id used for execution of DROP TABLE and DELETE commands were incorrect. The thread variable 'thread_specific_used' is used to determine whether a specific thread id is to used while executing the statements i.e using 'SET @@session.pseudo_thread_id'. This variable was not set correctly for DROP TABLE query and was never set for DELETE query. The thread id is important for temporary tables since the tables are session specific. DROP TABLE and DELETE queries executed using a wrong thread id resulted in errors while applying the queries generated by mysqlbinlog utility. Fix === Set the 'thread_specific_used' THD variable for DROP TABLE and DELETE queries. ReviewBoard: 21833
-
Gleb Shchepa authored
Note: this patch is for 5.6. Detected by ASAN. The patch fixes the cleanup of parser stack pointers. Reviewed-by: Guilhem Bichot <guilhem.bichot@oracle.com>
-
Sergei Golubchik authored
check_valid_path() uses my_strcspn() that cannot handle invalid characters properly. This is fixed by a big refactoring in 10.2 (MDEV-6353). For 5.5, let's simply swap tests, because check_string_char_length() rejects invalid characters just fine.
-
Sergei Golubchik authored
Description:- During server startup, the server exits if the 'mysql.plugin' system table has any rows with empty value for the field 'name' (plugin name).
-
Georgi Kodinov authored
The xpath parsing function was using a local string buffer that was deallocated when going out of scope. However references to it are preserved in the XPATH parse tree. This was causing read-after-free. Fixed by making the xpath buffer a local variable inside the Item class for the relevant xpath function, thus being preserved for the duration of the query.
-
Anushree Prakash B authored
DESCRIPTION =========== PVS-Studio static code analyzer found several suspicious fragments of code across various files. i) sizeof() is using the pointer ii) memcpy() doesn't copy the whole string. iii) enumeration constant 'wkb_multilinestring' is used as a variable of a Boolean-type. iv) 'throw' keyword is missing from std::runtime_error() FIX === i) Use sizeof({actual object/data type}) ii) Use strncpy() and set last char as '\0' iii) N/A (Issue has already been fixed) iv) Add 'throw' before the exception. RB: 21502
-
- 23 Jul, 2019 4 commits
-
-
Marko Mäkelä authored
Follow-up to 07ba5560: Use the correct 64-bit type name ulonglong instead of ulint, like in mysql/mysql-server@4e0100d86b1b46be0107ebd46a98a0c2dbb0fab4
-
Rahul Malik authored
Problem: Clients running different values for auto_increment_increment and doing concurrent inserts leads to "Duplicate key error" in one of them. Analysis: When auto_increment_increment value is reduced in a session, InnoDB uses last auto_increment_increment value to recalculate the autoinc value. In case, some other session has inserted a value with different auto_increment_increment, InnoDB recalculate autoinc values based on current session previous auto_increment_increment instead of considering the auto_increment_increment used for last insert across all session Fix: revert 7acdf29c a.k.a. 7c12a9e5 as it causing the bug. Reviewed By: Bin <bin.x.su@oracle.com> Kevin <kevin.lewis@oracle.com> RB#21777 Note: In MariaDB Server, earlier changes in ae5bc059 for MDEV-533 require that the original test in mysql/mysql-server@1ccd472d63a042d3237a55f5827239164219ef7e be adjusted for MariaDB. Also, ef47b625 (MDEV-8827) had to be reverted after the upstream fix had been backported.
-
Marko Mäkelä authored
This reverts commit ef47b625. The parent commit 07ba5560 which is a backport of mysql/mysql-server@1198267c331b045b9cad26be72b1a5b4f8930a79 fixes the issue differently.
-
Thirunarayanan Balathandayuthapani authored
Problem: ======= Autoincrement value gives duplicate values because of the following reasons. (1) In InnoDB handler function, current autoincrement value is not changed based on newly set auto_increment_increment or auto_increment_offset variable. (2) Handler function does the rounding logic and changes the current autoincrement value and InnoDB doesn't aware of the change in current autoincrement value. Solution: ======== Fix the problem(1), InnoDB always respect the auto_increment_increment and auto_increment_offset value in case of current autoincrement value. By fixing the problem (2), handler layer won't change any current autoincrement value. Reviewed-by: Jimmy Yang <jimmy.yang@oracle.com> RB: 13748
-
- 21 Jul, 2019 1 commit
-
-
Sergei Golubchik authored
reported by lixtelnis
-
- 19 Jul, 2019 1 commit
-
-
Oleksandr Byelkin authored
Check EXISTS LIMIT before rewriting.
-
- 18 Jul, 2019 1 commit
-
-
Oleksandr Byelkin authored
Check that table is really opened before cleanup using handler.
-
- 12 Jul, 2019 1 commit
-
-
Oleksandr Byelkin authored
Use for parameters value conversion functions which issue warnings.
-
- 11 Jul, 2019 1 commit
-
-
Igor Babaev authored
The parser returned a syntax error message for the queries with join expressions like this t1 JOIN t2 [LEFT | RIGHT] JOIN t3 ON ... ON ... when the second operand of the outer JOIN operation with ON clause was another join expression with ON clause. In this expression the JOIN operator is right-associative, i.e. expression has to be parsed as the expression t1 JOIN (t2 [LEFT | RIGHT] JOIN t3 ON ... ) ON ... Such join expressions are hard to parse because the outer JOIN is left-associative if there is no ON clause for the first outer JOIN operator. The patch implements the solution when the JOIN operator is always parsed as right-associative and builds first the right-associative tree. If it happens that there is no corresponding ON clause for this operator the tree is converted to left-associative. The idea of the solution was taken from the patch by Martin Hansson "WL#8083: Fixed the join_table rule" from MySQL-8.0 code line. As the grammar rules related to join expressions in MySQL-8.0 and MariaDB-5.5+ are quite different MariaDB solution could not borrow any code from the MySQL-8.0 solution.
-
- 08 Jul, 2019 1 commit
-
-
Mostafa Hussein authored
pgrep will not be able to get th pid using the full path which is $libexec/mysqld unless -f is being used
-
- 05 Jul, 2019 1 commit
-
-
Vladislav Vaintroub authored
Upgrade HeidiSQL to 10.2
-
- 01 Jul, 2019 2 commits
-
-
Vicențiu Ciorbaru authored
Explain why it makes sense to not consider builddir == srcdir directly, for cases when we do out-of-source builds.
-
Daniel Black authored
The assumption in the original commit for --builddir (648d3ced), was to assume that without a --builddir, and when --srcdir is specified, that the builddir is the same as the srcdir. The problem is that this assumption does not hold for out-of-source builds and we can figure out the builddir by looking for where mysql_install_db script is. As mysql_install_db is in the builddir, we use dirname0 as the builddir after checking that my_print_defaults is also located from dirname0, otherwise default to old behavior.
-
- 25 Jun, 2019 1 commit
-
-
Anel Husakovic authored
-
- 22 Jun, 2019 1 commit
-
-
Igor Babaev authored
and WHERE filter afterwards This patch complements the patch fixing the bug MDEV-6892. The latter properly handled queries that used mergeable views returning constant columns as inner tables of outer joins and whose where clause contained predicates referring to these columns if the predicates of happened not to be equality predicates. Otherwise the server still could return wrong result sets for such queries. Besides the fix for MDEV-6892 prevented some possible conversions of outer joins to inner joins for such queries. This patch corrected the function check_simple_equality() to handle properly conjunctive equalities of the where clause that refer to the constant columns of mergeable views used as inner tables of an outer join. The patch also changed the code of Item_direct_view_ref::not_null_tables(). This change allowed to take into account predicates containing references to constant columns of mergeable views when converting outer joins into inner joins.
-
- 19 Jun, 2019 1 commit
-
-
Eugene Kosov authored
Colors possibility auto detected. [ such ] stuff is colored. Patch by Sergei Golubchik
-
- 17 Jun, 2019 1 commit
-
-
Igor Babaev authored
in where clause The classes Item_func_isnottrue and Item_func_isnotfalse inherited the implementation of the eval_not_null_tables method from the Item_func class. As a result the not_null_tables_cache was set incorrectly for the objects of these classes. It led to improper conversion of outer joins to inner joins when the where clause of the processed query contained IS NOT TRUE or IS NOT FALSE predicates. The coverted query in many cases produced a wrong result set.
-
- 12 Jun, 2019 1 commit
-
-
Eugene Kosov authored
Explicitly mention every options in .clang-format to protect us from possible future changes. Remove separate InnoDB style. Change style to look more like this script: for x in $@ do indent -kr -bl -bli0 -l79 -i2 -nut -c48 -dj -cp0 $x sed -ri -e 's/ = /= /g'\ -e '/switch.*\)$/{N;s/\n[ ]+/ /}' $x done Significant different is that 'switch' and '{' are put on different lines because it's impossible in clang-format to set formatting rules just for 'switch' statement.
-
- 11 Jun, 2019 2 commits
-
-
Marko Mäkelä authored
-
Igor Babaev authored
This patch complements the patch that fixes bug MDEV-18479. This patch takes care of possible overflow in JOIN::get_examined_rows().
-
- 09 Jun, 2019 1 commit
-
-
Igor Babaev authored
Handling of top level conjuncts in WHERE whose used_tables() contained RAND_TABLE_BIT in the function make_join_select() was incorrect. As a result if such a conjunct referred to fields non of which belonged to the last joined table it was pushed twice. (This could be seen for a test case from subselect.test whose output was changed after this patch had been applied. In 10.1 when running EXPLAIN FORMAT=JSON for the query from this test case we clearly see that one of the conjuncts is pushed twice.) This fact by itself was not good. Besides, if such a conjunct was pushed to a table that was the result of materialization of a semi-join the query could return a wrong result set. In particular we could watch it for queries with semi-join subqueries whose left parts used stored functions without "deterministic' specifier.
-
- 01 Jun, 2019 2 commits
-
-
Sergei Golubchik authored
as well as MDEV-19500 Update with join stopped worked if there is a call to a procedure in a trigger MDEV-19521 Update Table Fails with Trigger and Stored Function MDEV-19497 Replication stops because table not found MDEV-19527 UPDATE + JOIN + TRIGGERS = table doesn't exists error Reimplement the fix for (5d510fdb) MDEV-18507 can't update temporary table when joined with table with triggers on read-only instead of calling open_tables() twice, put multi-update prepare code inside open_tables() loop. Add a test for a MDL backoff-and-retry loop inside open_tables() across multi-update prepare code.
-
Sergei Golubchik authored
-
- 30 May, 2019 1 commit
-
-
Eugene Kosov authored
Add .clang-format files to a root directory and to storage/innobase
-
- 29 May, 2019 1 commit
-
-
Igor Babaev authored
This patch complements the patch that fixes bug MDEV-18479. This patch takes care of possible overflow when calculating the estimated number of rows in a materialized derived table / view.
-
- 28 May, 2019 2 commits
-
-
Igor Babaev authored
This bug could happen when queries with nested outer joins were executed employing join buffers. At such an execution if the method JOIN_CACHE::join_records() is called when a join buffer has become full no 'first_unmatched' field should be cleaned up in the JOIN_TAB structure to which the join cache with this buffer is attached.
-
Igor Babaev authored
or server crashes in JOIN::fix_all_splittings_in_plan after EXPLAIN This patch resolves the problem of overflowing when performing calculations to estimate the cost of an evaluated query execution plan. The overflowing in a non-debug build could cause different kind of problems uncluding crashes of the server.
-
- 21 May, 2019 1 commit
-
-
Sergei Golubchik authored
-
- 20 May, 2019 2 commits
-
-
Sergei Golubchik authored
post-merge changes Closes #954
-
Eugene Kosov authored
This patch is for MEM_ROOT only. In debug mode add 8 byte of poisoned memory before every allocated chunk. On the right of every chunk there will be either 1-7 trailing poisoned bytes, or next chunk's redzone, or poisoned non allocated memory or redzone of a malloc()ed buffer.
-