summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* compilation fix for Windowsbb-5.5-releaseSergei Golubchik2019-10-301-0/+2
|
* add .clang-format file for InnoDBbb-5.5-kevgsEugene Kosov2019-10-291-0/+11
|
* MDEV-14448: Ctrl-C should not exit the clientAnel Husakovic2019-10-281-2/+11
|
* crash in string-to-int conversionSergei Golubchik2019-10-193-4/+79
| | | | | | | | | | using a specially crafted strings one could overflow `shift` variable and cause a crash by dereferencing d10[-2147483648] (on a sufficiently old gcc). This is a correct fix and a test case for Bug #29723340: MYSQL SERVER CRASH AFTER SQL QUERY WITH DATA ?AST
* MDEV-9546 mysqlaccess script shows an old version (which was vulnerable to ↵Sergei Golubchik2019-10-191-1/+1
| | | | | | CVE-2005-0004) update mysqlaccess version
* MDEV-20466: fix of embedded test suiteOleksandr Byelkin2019-10-194-35/+41
|
* MDEV-20466: fix of test suitebb-5.5-MDEV-20466Oleksandr Byelkin2019-10-154-35/+35
|
* MDEV-13172: Wrong result / SELECT ... WHERE EXISTS ... (with UNIQUE Key)bb-5.5-MDEV-13172Oleksandr Byelkin2019-10-154-2/+88
| | | | | | IS NULL or <=> with unique field does not mean unique row, because several NULL possible, so we can not convert to normal join in this case.
* MDEV-20466: SHOW PROCESSLIST truncates query text on \0 bytesOleksandr Byelkin2019-10-155-2/+44
| | | | Data should be sent with length.
* MDEV-20805 ibuf_add_free_page() is not initializing FIL_PAGE_TYPE firstMarko Mäkelä2019-10-112-6/+8
| | | | | | | | | In the function recv_parse_or_apply_log_rec_body() there are debug checks for validating the state of the page when redo log records are being applied. Most notably, FIL_PAGE_TYPE should be set before anything else is being written to the page. ibuf_add_free_page(): Set FIL_PAGE_TYPE before performing any other changes.
* MDEV-19455: Avoid SET DEBUG_DBUG='-d,...' constructMarko Mäkelä2019-10-1121-224/+233
| | | | | | | | | | | | | | | | Apply the correct pattern for debug instrumentation: SET @save_dbug=@@debug_dbug; SET debug_dbug='+d,...'; ... SET debug_dbug=@save_dbug; Numerous tests use statements of the form SET debug_dbug='-d,...'; which will inadvertently enable all DBUG tracing output, causing unnecessary waste of resources.
* Remove orphan declaration buf_flush_wait_batch_end_wait_only()Marko Mäkelä2019-10-072-22/+0
| | | | | The function was declared but not defined in commit 9d6d1902e091c868bb288e0ccf9f975ccb474db9
* MDEV-20704 An index on a double column erroneously uses prefix compressionAlexander Barkov2019-10-013-8/+50
|
* MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE ↵Alexander Barkov2019-09-2411-7/+222
| | | | | | | | | | | | .. SELECT with zerofilled decimal Also fixes: MDEV-20560 Assertion `precision > 0' failed in decimal_bin_size upon SELECT with MOD short unsigned decimal Changing the way how Item_func_mod calculates its max_length. It now uses decimal_precision(), decimal_scale() and unsigned_flag of its arguments, like all other Item_num_op descendants do.
* Update mysqld_safe.sh - introduce defaults-group-suffix handlingrantal2019-09-211-1/+4
| | | | "--defaults-group-suffix" must be be given as the first argument on the command-line of mysqld
* MDEV-4968 Old advices in mysql-log-rotate scriptchriscalender2019-09-211-5/+5
| | | | | | | * Change the comments in mysql-log-rotate.sh to refer to mysqld, not mysqld_safe as that's what most distros are using. * Change err-log to log-error as err-log is no longer valid. * Convert tab to space for consistency.
* Fix spelling mistakes in MyISAM code commentsIan Gilfillan2019-09-2019-29/+29
|
* MDEV-20596 Configure fails with newer CMakeRyan Coe2019-09-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | Fix build error with newer cmake Fixes the following build error: CMake Error at cmake/os/Linux.cmake:29 (STRING): STRING sub-command REPLACE requires at least four arguments. Call Stack (most recent call first): CMakeLists.txt:101 (INCLUDE) CMake Error at cmake/os/Linux.cmake:29 (STRING): STRING sub-command REPLACE requires at least four arguments. Call Stack (most recent call first): CMakeLists.txt:101 (INCLUDE) The error happens when CMAKE_SHARED_LINKER_{LANG}_FLAGS is not set. Force the variable to be set to "" as input to prevent this. Signed-off-by: Ryan Coe <bluemrp9@gmail.com> Signed-off-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>
* MDEV-14383 tokudb_bugs. tests failed in buildbot, lost connection to serverSergei Golubchik2019-09-016-0/+18
| | | | | don't run tokudb tests under tcmalloc, this is not a supported combination.
* MDEV-19837 and MDEV-19816: Change some commentsStephen Long2019-08-212-2/+2
|
* MDEV-20265 Unknown column in field listIgor Babaev2019-08-193-28/+460
| | | | | | | | | This patch corrects the fix of the patch for mdev-19421 that resolved the problem of parsing some embedded join expressions such as t1 join t2 left join t3 on t2.a=t3.a on t1.a=t2.a. Yet the patch contained a bug that prevented proper context analysis of the queries where such expressions were used together with comma separated table references in from clauses.
* MDEV-15955 Assertion `field_types == 0 || field_types[field_pos] == ↵Alexander Barkov2019-08-163-0/+65
| | | | MYSQL_TYPE_LONGLONG' failed in Protocol_text::store_longlong
* Fix -Wimplicit-fallthroughMarko Mäkelä2019-08-121-1/+3
|
* Document TRASH_FILL, TRASH_ALLOC, TRASH_FREEMarko Mäkelä2019-08-121-1/+9
|
* bump the VERSIONDaniel Bartholomew2019-07-311-1/+1
|
* Move the test not suitable for embedded.Oleksandr Byelkin2019-07-264-9/+13
|
* Backslash added to wrong cachacters of names of client plugin.mariadb-5.5.65Oleksandr Byelkin2019-07-251-1/+1
|
* BUG#28642318: POINT IN TIME RECOVERY USING MYSQLBINLOG BROKEN WITH TEMPORARY ↵Nisha Gopalakrishnan2019-07-245-6/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | TABLE -> ERRORS 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
* Bug #29419820: MEMORY LEAK IN MY_YYOVERFLOW()Gleb Shchepa2019-07-241-8/+11
| | | | | | | | | | 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>
* Bug#27167197 USING ? IN INSTALL PLUGIN QUERY ABORTS DEBUG, AND HANGS ↵Sergei Golubchik2019-07-243-2/+19
| | | | | | | | | | OPTIMIZED SERVER 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.
* Bug#27302459: EMPTY VALUE IN MYSQL.PLUGIN TABLE CAUSES SERVER TO EXIT ON STARTUPSergei Golubchik2019-07-243-0/+11
| | | | | | 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).
* Bug #27312862: ASAN: HEAP-USE-AFTER-FREE: UPDATEXML RB#21666 RB#21666Georgi Kodinov2019-07-242-6/+6
| | | | | | | | | | 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.
* Bug#27259654 - ISSUES FOUND BY PVS-STUDIO STATIC ANALYZERAnushree Prakash B2019-07-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | 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
* MDEV-8827: Fix the 32-bit buildMarko Mäkelä2019-07-232-2/+2
| | | | | | Follow-up to 07ba5560da805c766da68811692272dd9eebdaf7: Use the correct 64-bit type name ulonglong instead of ulint, like in mysql/mysql-server@4e0100d86b1b46be0107ebd46a98a0c2dbb0fab4
* Bug#15851528 DUPLICATE KEY ERROR ON AUTO-INC PK WITH MIXED ↵Rahul Malik2019-07-234-34/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AUTO_INCREMENT_INCREMENT CLIENTS 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 7acdf29cb4f90498af143430e3bf0e9fd3bd39f5 a.k.a. 7c12a9e5c3200688612d59160e8f45b1c8451635 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 ae5bc059880c395ccf2cc51d5db1895dffc4f5f0 for MDEV-533 require that the original test in mysql/mysql-server@1ccd472d63a042d3237a55f5827239164219ef7e be adjusted for MariaDB. Also, ef47b62551b0f37770e5d174ea028150c5b71fd8 (MDEV-8827) had to be reverted after the upstream fix had been backported.
* Revert "MDEV-8827 Duplicate key with auto increment"Marko Mäkelä2019-07-234-13/+17
| | | | | | | | This reverts commit ef47b62551b0f37770e5d174ea028150c5b71fd8. The parent commit 07ba5560da805c766da68811692272dd9eebdaf7 which is a backport of mysql/mysql-server@1198267c331b045b9cad26be72b1a5b4f8930a79 fixes the issue differently.
* Bug #20989615 INNODB AUTO_INCREMENT PRODUCES SAME VALUE TWICEThirunarayanan Balathandayuthapani2019-07-236-0/+253
| | | | | | | | | | | | | | | | | | | | | | | 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
* MDEV-20110 don't try to load client plugins with invalid namesSergei Golubchik2019-07-214-1/+24
| | | | reported by lixtelnis
* MDEV-19429: Wrong query result with EXISTS and LIMIT 0bb-5.5-MDEV-19429Oleksandr Byelkin2019-07-1912-43/+228
| | | | Check EXISTS LIMIT before rewriting.
* MDEV-15572: view.test, server crash with --big-tables=1Oleksandr Byelkin2019-07-183-1/+40
| | | | Check that table is really opened before cleanup using handler.
* MDEV-17042: prepared statement does not return error with SQL_MODE ↵Oleksandr Byelkin2019-07-125-11/+293
| | | | | | STRICT_TRANS_TABLES. Use for parameters value conversion functions which issue warnings.
* MDEV-19421 Basic 3-way join queries are not parsed.Igor Babaev2019-07-118-28/+2078
| | | | | | | | | | | | | | | | | | | | | 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.
* use -f with pgrepMostafa Hussein2019-07-081-1/+1
| | | | pgrep will not be able to get th pid using the full path which is $libexec/mysqld unless -f is being used
* MDEV-19922 Old version of heidisql in mariadb installerVladislav Vaintroub2019-07-052-16/+13
| | | | Upgrade HeidiSQL to 10.2
* Extra comment to mysql_install_dbVicențiu Ciorbaru2019-07-011-0/+2
| | | | | Explain why it makes sense to not consider builddir == srcdir directly, for cases when we do out-of-source builds.
* mysql_install_db: assume builddir is dirname0Daniel Black2019-07-011-1/+6
| | | | | | | | | | | | | | The assumption in the original commit for --builddir (648d3cedbc09), 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.
* Apply valid parameter type for test case in i_s_parameters.testAnel Husakovic2019-06-252-3/+3
|
* MDEV-19778 Wrong Result on Left Outer Join with Subquery right on trueIgor Babaev2019-06-2210-6/+126
| | | | | | | | | | | | | | | | | | | | 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.
* MDEV-19531 Add colors to mtrEugene Kosov2019-06-191-1/+25
| | | | | | Colors possibility auto detected. [ such ] stuff is colored. Patch by Sergei Golubchik
* MDEV-19790 Wrong result for query with outer join and IS NOT TRUE predicateIgor Babaev2019-06-174-3/+98
| | | | | | | | | | | | 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.