- 14 Dec, 2010 6 commits
-
-
Mattias Jonsson authored
-
Mattias Jonsson authored
-
Mattias Jonsson authored
-
Mattias Jonsson authored
Backport from 5.5. OK from Anitha G. to push to 5.1. Removed floor(float_col) tests, enabled floor(decimal_col) tests
-
Sergey Glukhov authored
-
Sergey Glukhov authored
--Bug#52157 various crashes and assertions with multi-table update, stored function --Bug#54475 improper error handling causes cascading crashing failures in innodb/ndb --Bug#57703 create view cause Assertion failed: 0, file .\item_subselect.cc, line 846 --Bug#57352 valgrind warnings when creating view --Recently discovered problem when a nested materialized derived table is used before being populated and it leads to incorrect result We have several modes when we should disable subquery evaluation. The reasons for disabling are different. It could be uselessness of the evaluation as in case of 'CREATE VIEW' or 'PREPARE stmt', or we should disable subquery evaluation if tables are not locked yet as it happens in bug#54475, or too early evaluation of subqueries can lead to wrong result as it happened in Bug#19077. Main problem is that if subquery items are treated as const they are evaluated in ::fix_fields(), ::fix_length_and_dec() of the parental items as a lot of these methods have Item::val_...() calls inside. We have to make subqueries non-const to prevent unnecessary subquery evaluation. At the moment we have different methods for this. Here is a list of these modes: 1. PREPARE stmt; We use UNCACHEABLE_PREPARE flag. It is set during parsing in sql_parse.cc, mysql_new_select() for each SELECT_LEX object and cleared at the end of PREPARE in sql_prepare.cc, init_stmt_after_parse(). If this flag is set subquery becomes non-const and evaluation does not happen. 2. CREATE|ALTER VIEW, SHOW CREATE VIEW, I_S tables which process FRM files We use LEX::view_prepare_mode field. We set it before view preparation and check this flag in ::fix_fields(), ::fix_length_and_dec(). Some bugs are fixed using this approach, some are not(Bug#57352, Bug#57703). The problem here is that we have a lot of ::fix_fields(), ::fix_length_and_dec() where we use Item::val_...() calls for const items. 3. Derived tables with subquery = wrong result(Bug19077) The reason of this bug is too early subquery evaluation. It was fixed by adding Item::with_subselect field The check of this field in appropriate places prevents const item evaluation if the item have subquery. The fix for Bug19077 fixes only the problem with convert_constant_item() function and does not cover other places(::fix_fields(), ::fix_length_and_dec() again) where subqueries could be evaluated. Example: CREATE TABLE t1 (i INT, j BIGINT); INSERT INTO t1 VALUES (1, 2), (2, 2), (3, 2); SELECT * FROM (SELECT MIN(i) FROM t1 WHERE j = SUBSTRING('12', (SELECT * FROM (SELECT MIN(j) FROM t1) t2))) t3; DROP TABLE t1; 4. Derived tables with subquery where subquery is evaluated before table locking(Bug#54475, Bug#52157) Suggested solution is following: -Introduce new field LEX::context_analysis_only with the following possible flags: #define CONTEXT_ANALYSIS_ONLY_PREPARE 1 #define CONTEXT_ANALYSIS_ONLY_VIEW 2 #define CONTEXT_ANALYSIS_ONLY_DERIVED 4 -Set/clean these flags when we perform context analysis operation -Item_subselect::const_item() returns result depending on LEX::context_analysis_only. If context_analysis_only is set then we return FALSE that means that subquery is non-const. As all subquery types are wrapped by Item_subselect it allow as to make subquery non-const when it's necessary.
-
- 13 Dec, 2010 7 commits
-
-
Tor Didriksen authored
-
Tor Didriksen authored
On this platform we seem to get lots of other signals while waiting for SIGKILL to be delivered. Solution: use sigsuspend(<all signals blocked>)
-
Sergey Glukhov authored
-
Sergey Glukhov authored
Auto increment value wraps when performing a bulk insert with auto_increment_increment and auto_increment_offset greater than one. The fix: If overflow happened then return MAX_ULONGLONG value as an indication of overflow and check this before storing the value into the field in update_auto_increment().
-
Tor Didriksen authored
On this platform we seem to get lots of other signals while waiting for SIGKILL to be delivered. Solution: use sigsuspend(<all signals blocked>)
-
Sergey Glukhov authored
-
Sergey Glukhov authored
Explain fails at fix_fields stage and some items are left unfixed, particulary Item_group_concat. Item_group_concat::orig_args field is uninitialized in this case and Item_group_concat::print call leads to crash. The fix: move the initialization of Item_group_concat::orig_args into constructor.
-
- 10 Dec, 2010 3 commits
-
-
Davi Arnaut authored
-
Dmitry Shulga authored
-
Dmitry Shulga authored
DROP/CREATE SCHEMA, CREATE TABLE, REPAIR. The cause of assert was concurrent execution of DROP DATABASE and REPAIR TABLE where first statement deleted table's file .TMD at the same time as REPAIR TABLE tried to read file details from the old file that was just removed. Additionally was fixed trouble when DROP TABLE try delete all files belong to table being dropped at the same time when REPAIR TABLE statement has just deleted .TMD file. No regression test added because this would require adding a sync point to mysys/my_redel.c. Since this bug is not present in 5.5+, adding test coverage was considered unnecessary. The patch has been verified using RQG testing.
-
- 09 Dec, 2010 14 commits
-
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Bjorn Munch authored
-
Mattias Jonsson authored
The tests generates 4 Billion rows which timeouts. Removed the test from the default weekly run.
-
Bjorn Munch authored
mysqltest checks if the stmt is one that should be run in ps mode, but regexp doesn't match if preceeded by /* */ comment. Fix: match function will jump over /*..*/ if found at start
-
Bjorn Munch authored
Backported use of setenv() from 5.5 This will remove the leak on systems that have setenv() I have not fixed the string.c leak, it's a local variable that the cleanup function cannot access.
-
Bjorn Munch authored
Fixed some errors Added note about 'no' prefix to options See also follow-up comment to bug report
-
Bjorn Munch authored
Workaround: add --loose-skip-innodb-use-native-aio Only on linux if explicitly using --mem or setting $OPT_MEM
-
Bjorn Munch authored
Add check that there is a RHS of the expression Added to mysqltest.test
-
Bjorn Munch authored
Var's string value was not 0-terminated if intially null. While at it, also removed some reported memory leaks Added sanity check, setting val_len=0 if val==0
-
Bjorn Munch authored
Added option --debug-common which sets 'd' debug flags to the suggested list
-
Ramil Kalimullin authored
-
Ramil Kalimullin authored
my_seek() and my_tell() functions now honour MY_WME flag.
-
- 08 Dec, 2010 2 commits
-
-
Georgi Kodinov authored
when semijoin=on When setting the aggregate function as having no rows to report the function no_rows_in_result() was calling Item_sum::reset(). However this function in addition to cleaning up the aggregate value by calling aggregator_clear() was also adding the current value to the aggregate value by calling aggregator_add(). Fixed by making no_rows_in_result() to call aggregator_clear() directly. Renamed Item_sum::reset to Item_sum::reset_and_add() to and added a comment to avoid misinterpretation of what the function does.
-
Sergey Vojtovich authored
-
- 07 Dec, 2010 8 commits
-
-
Marc Alff authored
Before this fix, the output of SHOW ENGINE PERFORMANCE_SCHEMA STATUS used uppercase to name performance schema tables. This is inconsistent since performance schema tables have been renamed to lowercase. Also, an old table 'PROCESSLIST' was still visible, even after this table got renamed to 'threads'. This fix: - correctly uses lowercases in the output, to match the current naming. - replaced 'PROCESSLIST' with 'threads'. Tested the output of SHOW ENGINE PERFORMANCE_SCHEMA STATUS manually. No automated test cases can be written for this, since the output is too platform dependent (sizes).
-
Ramil Kalimullin authored
merged from mysql-5.5.8-release tree, revision: ramil@mysql.com-20101203174908-217tdkn150vieha9
-
Guilhem Bichot authored
-
Guilhem Bichot authored
when there was one NULL value, AVG(DISTINCT) could forget about other values. See commit comment of item_sum.cc.
-
Nirbhay Choubey authored
-
Davi Arnaut authored
Do not use the same maintainer mode flags for both GCC and ICC. The -Wall option for ICC enables more warnings than its GCC counterpart.
-
Luis Soares authored
Null merge to from mysql-5.1-bugteam to mysql-5.5-bugteam. Test case does not exist in 5.5 tree.
-
Luis Soares authored
Automerging bzr bundle from bug report into latest mysql-5.1-bugteam.
-