summaryrefslogtreecommitdiff
path: root/mysql-test/r
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-13172: Wrong result / SELECT ... WHERE EXISTS ... (with UNIQUE Key)bb-5.5-MDEV-13172Oleksandr Byelkin2019-10-152-0/+52
| | | | | | 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-152-0/+1
| | | | Data should be sent with length.
* MDEV-19455: Avoid SET DEBUG_DBUG='-d,...' constructMarko Mäkelä2019-10-114-8/+10
| | | | | | | | | | | | | | | | 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.
* MDEV-20704 An index on a double column erroneously uses prefix compressionAlexander Barkov2019-10-011-0/+23
|
* MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE ↵Alexander Barkov2019-09-248-6/+131
| | | | | | | | | | | | .. 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.
* MDEV-20265 Unknown column in field listIgor Babaev2019-08-191-0/+326
| | | | | | | | | 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-161-0/+24
| | | | MYSQL_TYPE_LONGLONG' failed in Protocol_text::store_longlong
* Move the test not suitable for embedded.Oleksandr Byelkin2019-07-262-2/+4
|
* Bug#27167197 USING ? IN INSTALL PLUGIN QUERY ABORTS DEBUG, AND HANGS ↵Sergei Golubchik2019-07-241-0/+8
| | | | | | | | | | 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-241-0/+2
| | | | | | 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).
* MDEV-20110 don't try to load client plugins with invalid namesSergei Golubchik2019-07-211-0/+5
| | | | reported by lixtelnis
* MDEV-19429: Wrong query result with EXISTS and LIMIT 0bb-5.5-MDEV-19429Oleksandr Byelkin2019-07-199-33/+188
| | | | Check EXISTS LIMIT before rewriting.
* MDEV-15572: view.test, server crash with --big-tables=1Oleksandr Byelkin2019-07-181-0/+15
| | | | Check that table is really opened before cleanup using handler.
* MDEV-17042: prepared statement does not return error with SQL_MODE ↵Oleksandr Byelkin2019-07-122-0/+127
| | | | | | 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-112-1/+1385
| | | | | | | | | | | | | | | | | | | | | 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.
* Apply valid parameter type for test case in i_s_parameters.testAnel Husakovic2019-06-251-2/+2
|
* MDEV-19778 Wrong Result on Left Outer Join with Subquery right on trueIgor Babaev2019-06-224-0/+70
| | | | | | | | | | | | | | | | | | | | 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-19790 Wrong result for query with outer join and IS NOT TRUE predicateIgor Babaev2019-06-172-2/+70
| | | | | | | | | | | | 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.
* MDEV-18479 Another complementIgor Babaev2019-06-101-9/+9
| | | | | This patch complements the patch that fixes bug MDEV-18479. This patch takes care of possible overflow in JOIN::get_examined_rows().
* MDEV-19580 Unrelated JOINs corrupt usage of 'WHERE function() IN (subquery)'Igor Babaev2019-06-097-5/+183
| | | | | | | | | | | | | | | 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.
* MDEV-19491 update query stopped working after mariadb upgrade 10.2.23 -> 10.2.24Sergei Golubchik2019-06-013-0/+45
| | | | | | | | | | | | | | | | | | | 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 (5d510fdbf00) 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.
* cleanupSergei Golubchik2019-06-013-2/+6
|
* MDEV-18479 ComplementIgor Babaev2019-05-281-10/+10
| | | | | | 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.
* MDEV-19588 Wrong results from query, using left join.Igor Babaev2019-05-282-0/+66
| | | | | | | | 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.
* MDEV-18479 Assertion `join->best_read < double(1.79769313486231570815e+308L)'Igor Babaev2019-05-271-0/+401
| | | | | | | | | 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.
* MDEV-18896 Crash in convert_join_subqueries_to_semijoins : CorrectionIgor Babaev2019-05-192-0/+2
| | | | | | | | | | | | | This patch complements the original patch for MDEV-18896 that prevents conversions to semi-joins in tableless selects used in INSERT statements in post-5.5 versions of the server. The test case was corrected as well to ensure that potential conversion to jtbm semi-joins is also checked (the problem was that one of the preceeding testcases in subselect_sj.test did not restore the state of the optimizer switch leaving the 'materialization' in the state 'off' and so blocking this check). Noticed an inconsistency in the state of select_lex::table_list used in INSERT statements and left a comment about this.
* Bug#28986737: RENAMING AND REPLACING MYSQL.USER TABLE CAN LEAD TO A SERVER CRASHSergei Golubchik2019-04-251-0/+7
|
* MDEV-15907 ASAN heap-use-after-free in strnmov / .. / ↵Sergei Golubchik2019-04-241-0/+0
| | | | | | | | fill_effective_table_privileges on concurrent GRANT and CREATE VIEW rename a test file. Closes #1253
* MDEV-15907 ASAN heap-use-after-freeRobert Bindar2019-04-241-0/+4
| | | | | | | | | | | | | This patch fixes an invalid read in fill_effective_table_privileges triggered by a grant_version increase between a PREPARE for a statement creating a view from I_S and EXECUTE. A tmp table was created and free'd while preparing the statement, TABLE_LIST::table_name was set to point to the tmp table TABLE_SHARE::table_name which no longer existed after preparing was done. The grant version increase made fill_effective_table_privileges called during EXECUTE to try fetch the updated grant info and this is where the dangling table name was used.
* MDEV-18507 can't update temporary table when joined with table with triggers ↵Sergei Golubchik2019-04-241-0/+21
| | | | | | | | | | | | | | | | | | on read-only triggers are opened and tables used in triggers are prelocked in open_tables(). But multi-update can detect what tables will actually be updated only later, after all main tables are opened. Meaning, if a table is used in multi-update, but is not actually updated, its on-update treggers will be opened and tables will be prelocked, even if it's unnecessary. This can cause more tables to be write-locked than needed, causing read_only errors, privilege errors and lock waits. Fix: don't open/prelock triggers unless table->updating is true. In multi-update after setting table->updating=true, do a second open_tables() for newly added tables, if any.
* bugfix: multi-update checked privileges on views incorrectlySergei Golubchik2019-04-241-0/+4
| | | | | | | | | | it always required UPDATE privilege on views, not being able to detect when a views was not actually updated in multi-update. fix: instead of marking all tables as "updating" by default, only set "updating" on tables that will actually be updated by multi-update. And mark the view "updating" if any of the view's tables is.
* MDEV-18241 Downgrade from 10.4 to 10.3 crashesSergei Golubchik2019-04-241-0/+11
| | | | | privilege tables can never be views or temporary tables, don't even try to open them, if they are.
* cleanupSergei Golubchik2019-04-241-0/+0
|
* MDEV-17610 Unexpected connection abort after certain operations from within ↵Vladislav Vaintroub2019-04-041-0/+16
| | | | | | | | | | stored procedure Always set SERVER_MORE_RESULTS_EXIST when executing stored procedure statements If statements produce a result, EOF packet needs this flag (SP ends with an OK packet). IF statetement does not produce a result, affected rows count are part of the final OK packet.
* Fix tests in 2020Bernhard M. Wiedemann2019-03-264-80/+80
| | | | | unfortunately, the year 2038 problem prevented me from pushing the deadline even further into the future.
* Fix for MDEV-15538, '-N' Produce html output wrongchriscalender2019-03-221-0/+4
|
* MDEV-18896 Crash in convert_join_subqueries_to_semijoinsIgor Babaev2019-03-142-0/+14
| | | | | | | | | | | | If an IN-subquery is used in a table-less select the current code should never consider it as candidate for semi-join optimizations. Yet the function check_and_do_in_subquery_rewrites() improperly checked the property "to be a table-less select". As a result such select in IN subquery was used in INSERT .. SELECT then the IN subquery by mistake was registered as a semi-join subquery and convert_subq_to_sj() was called for it. However the code of this function does not assume that the parent select of the subquery could be a table-less select.
* MDEV-17055: Server crashes in find_order_in_list upon 2nd (3rd) execution of ↵Oleksandr Byelkin2019-02-281-0/+33
| | | | | | | SP with UPDATE 1. Always drop merged_for_insert flag on cleanup (there could be errors which prevent TABLE to be assigned) 2. Make more precise cleanup of select parts which was touched
* MDEV-15950: LOAD DATA INTO compex_view crashedVarun Gupta2019-01-301-0/+26
| | | | | For multi-table views with LOAD, updates are not allowed, so we should just throw an error.
* MDEV-15744: Assertion `derived->table' failed in mysql_derived_merge_for_insertVarun Gupta2019-01-291-0/+24
| | | | | For singe-table views, we need to find the bottom most base table in the embedded views and then update that table
* Crude "auto-load-data-local-infile" modemariadb-5.5.63Sergei Golubchik2019-01-271-0/+26
| | | | | | | Disable LOAD DATA LOCAL INFILE suport by default and auto-enable it for the duration of one query, if the query string starts with the word "load". In all other cases the application should enable LOAD DATA LOCAL INFILE support explicitly.
* Bug #28499924: INCORRECT BEHAVIOR WITH UNION IN SUBQUERYSergei Golubchik2019-01-231-0/+22
| | | | test case
* MDEV-17085: CHECKSUM TABLE EXTENDED does not work correctlyOleksandr Byelkin2019-01-162-0/+32
| | | | The problem was in calculating of the mask to clear unused null bits in case of using full byte.
* fix the test for 2019Sergei Golubchik2019-01-021-3/+3
|
* MDEV-16987 - ALTER DATABASE possible in read-only modeSergey Vojtovich2018-12-131-0/+11
| | | | Forbid ALTER DATABASE under read_only.
* MDEV-17724 Wrong result for BETWEEN 0 AND 18446744073709551615Alexander Barkov2018-11-151-0/+11
| | | | | | | | | | | The fix for "MDEV-17698 MEMORY engine performance regression" previously fixed this problem. - Adding the test for MDEV-17724 - Re-recording wrong results for tests: * engines/iuds/r/insert_number * engines/iuds/r/update_delete_number which started to fail since MDEV-17698
* MDEV-17377 invalid gap in auto-increment values after LOAD DATASergei Golubchik2018-11-011-0/+14
| | | | | reset lex->many_values for LOAD DATA, as it's used for auto-inc range size estimation.
* MDEV-17256 Decimal field multiplication bug.bb-5.5-hfAlexey Botchkov2018-10-301-0/+42
| | | | | | We should clear trailing zeroes in frac part. Otherwise that tail is growing quickly and forces unnecessary truncating of arguments.
* Merge branch 'mysql/5.5' into 5.5Sergei Golubchik2018-10-231-0/+50
|\
| * BUG#27788685: NO WARNING WHEN TRUNCATING A STRING WITH DATAKarthik Kamath2018-07-232-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LOSS ANALYSIS: ========= When converting from a BLOB/TEXT type to a smaller BLOB/TEXT type, no warning/error is reported to the user informing about the truncation/data loss. FIX: ==== We are now reporting a warning in non-strict mode and an appropriate error in strict mode.