- 09 Feb, 2011 14 commits
-
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 3520 > revision-id: sergey.glukhov@oracle.com-20101214093303-wmo9mqcb8rz0wv9f > parent: tor.didriksen@oracle.com-20101213161301-81lprlbune7r98dl > committer: Sergey Glukhov <sergey.glukhov@oracle.com> > branch nick: mysql-5.1-bugteam > timestamp: Tue 2010-12-14 12:33:03 +0300 > message: > Fixed following problems: > --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.
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 3518 > revision-id: sergey.glukhov@oracle.com-20101213114812-kaq7sh0s623128lv > parent: sergey.glukhov@oracle.com-20101213103926-okypkn10adeeyns8 > committer: Sergey Glukhov <sergey.glukhov@oracle.com> > branch nick: mysql-5.1-bugteam > timestamp: Mon 2010-12-13 14:48:12 +0300 > message: > Bug#39828 : Autoinc wraps around when offset and increment > 1 > 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().
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 3517 > revision-id: sergey.glukhov@oracle.com-20101213103926-okypkn10adeeyns8 > parent: davi.arnaut@oracle.com-20101207150620-s49dstok48oy585o > committer: Sergey Glukhov <sergey.glukhov@oracle.com> > branch nick: mysql-5.1-bugteam > timestamp: Mon 2010-12-13 13:39:26 +0300 > message: > Bug#58396 group_concat and explain extended are still crashy > 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.
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 3507.1.7 > revision-id: guilhem@mysql.com-20101122085759-53uuoyqyjkh4em2m > parent: davi.arnaut@oracle.com-20101120142951-l0f3bxmcwibcplxq > committer: Guilhem Bichot <guilhem@mysql.com> > branch nick: mysql-5.1-bugteam > timestamp: Mon 2010-11-22 09:57:59 +0100 > message: > Fix for Bug#56138 "valgrind errors about overlapping memory when double-assigning same variable", > and related small fixes.
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 3507.1.26 > revision-id: mattias.jonsson@oracle.com-20101201112046-2ugtweya0dltcrys > parent: nirbhay.choubey@sun.com-20101201065531-w2f0j3g5yzok8z9x > committer: Mattias Jonsson <mattias.jonsson@oracle.com> > branch nick: b56380-51-bt > timestamp: Wed 2010-12-01 12:20:46 +0100 > message: > Bug#56380: valgrind memory leak warning from partition tests > > There could be memory leaks if ALTER ... PARTITION command fails. > > Problem was that the list of items to free was not set in > the partition info structure when fix_partition_func call failed > during ALTER ... PARTITION. > > Solved by always setting the list in the partition info struct.
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 3504 > revision-id: svoj@oracle.com-20101111100317-3bjzbj6c2ihfzb9t > parent: dmitry.shulga@oracle.com-20101111045251-jl1spfh3xjti1sll > committer: Sergey Vojtovich <svoj@oracle.com> > branch nick: mysql-5.1-bugteam-bug58079 > timestamp: Thu 2010-11-11 13:03:17 +0300 > message: > BUG#58079 - Remove the IBM DB2 storage engine
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 3496.1.39 > revision-id: jon.hauglid@oracle.com-20101019081957-zf2ohl7wgnhvnnb0 > parent: tor.didriksen@oracle.com-20101019070648-jhi9ezq3b5qk4wcm > committer: Jon Olav Hauglid <jon.hauglid@oracle.com> > branch nick: mysql-5.1-bugteam-bug57274 > timestamp: Tue 2010-10-19 10:19:57 +0200 > message: > Bug #57274 SET GLOBAL debug crashes on Solaris in embedded server mode > (variables_debug fails) > > The problem was that "SET GLOBAL debug" could cause a crash on Solaris. > The crash happened if the server failed to open the trace file given in > the "SET GLOBAL debug" statement. This caused an error message to be > printed to stderr containing the process name. However, printing to > stderr crashed the server since the pointer to the process name had > not been initialized. > > This patch fixes the problem by initializing the process name > properly when doing "SET GLOBAL debug". > > No test case added as this bug was repeatable with existing test > coverage in variables_debug.test.
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 3452.17.1 > revision-id: mattias.jonsson@oracle.com-20101005125751-ds92svhhb13ds8ri > parent: sergey.glukhov@sun.com-20101004085126-ia6veky4w6j87i43 > committer: Mattias Jonsson <mattias.jonsson@oracle.com> > branch nick: b55091-51-security > timestamp: Tue 2010-10-05 14:57:51 +0200 > message: > Bug#55091: Server crashes on ADD PARTITION after a failed attempt > > In case of failure in ALTER ... PARTITION under LOCK TABLE > the server could crash, due to it had modified the locked > table object, which was not reverted in case of failure, > resulting in a bad table definition used after the failed > command. > > Solved by always closing the LOCKED TABLE, even in case > of error. > > Note: this is a 5.1-only fix, bug#56172 fixed it in 5.5+
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 3452.13.54 > revision-id: oystein.grovlen@oracle.com-20110112093715-tc076voaxwblqk8v > parent: georgi.kodinov@oracle.com-20110110130833-1c9q21mr7zoq07vg > committer: Oystein Grovlen <oystein.grovlen@oracle.com> > branch nick: mysql-5.1-security > timestamp: Wed 2011-01-12 10:37:15 +0100 > message: > Bug#59211: Select Returns Different Value for min(year) Function > > get_year_value() contains code to convert 2-digits year to > 4-digits. The fix for Bug#49910 added a check on the size of > the underlying field so that this conversion is not done for > YEAR(4) values. (Since otherwise one would convert invalid > YEAR(4) values to valid ones.) > > The existing check does not work when Item_cache is used, since > it is not detected when the cache is based on a Field. The > reported change in behavior is due to Bug#58030 which added > extra cached items in min/max computations. > > The elegant solution would be to implement > Item_cache::real_item() to return the underlying Item. > However, some side effects are observed (change in explain > output) that indicates that such a change is not straight- > forward, and definitely not appropriate for an MRU. > > Instead, a Item_cache::field() method has been added in order > to get access to the underlying field. (This field() method > eliminates the need for Item_cache::eq_def() used in > test_if_ref(), but in order to limit the scope of this fix, > that code has been left as is.)
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 3452.13.4 [merge] > revision-id: mmakela@bk-internal.mysql.com-20101011192851-u3bdt7erjkrgn90t > parent: marko.makela@oracle.com-20101011081800-sby6kmb8n1mnryfq > parent: jimmy.yang@oracle.com-20101011123613-guz1qgdktywmel1g > committer: Marko Makela <mmakela@bk-internal.mysql.com> > branch nick: mysql-5.1-security > timestamp: Mon 2010-10-11 21:28:51 +0200 > message: > Merge Bug #57345, Bug #56982, Bug#53307 test from mysql-5.1-innodb > ------------------------------------------------------------ > Use --include-merges or -n0 to see merged revisions.
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 3351.14.280 > revision-id: inaam.rana@oracle.com-20101026205418-aq835zpvxdskdf4c > parent: jimmy.yang@oracle.com-20101025055121-j319j363abfgdh6n > committer: Inaam Rana <inaam.rana@oracle.com> > branch nick: mysql-5.1-innodb > timestamp: Tue 2010-10-26 16:54:18 -0400 > message: > Bug #57611 ibdata file and continuous growing undo logs > rb://498 > > Fix handling of update_undo_logs at trx commit. Previously, when > rseg->update_undo_list grows beyond 500 the update_undo_logs were > marked with state TRX_UNDO_TO_FREE which should have been > TRX_UNDO_TO_PURGE. > > Approved by: Sunny Bains
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 1810.3987.44 > revision-id: alexander.nozdrin@oracle.com-20101124095339-oatpqq684jpbbso2 > parent: alexander.nozdrin@oracle.com-20101122132749-tl6m39zsfgvzi2mf > committer: Alexander Nozdrin <alexander.nozdrin@oracle.com> > branch nick: mysql-5.0-bugteam > timestamp: Wed 2010-11-24 12:53:39 +0300 > message: > A follow-up for Bug#58340 (Remove Server GPL EXCEPTIONS-CLIENT file) -- remove all > EXCEPTIONS-CLIENT from all the places.
-
MySQL Build Team authored
> ------------------------------------------------------------ > revno: 1810.3987.43 > revision-id: alexander.nozdrin@oracle.com-20101122132749-tl6m39zsfgvzi2mf > parent: alexander.nozdrin@oracle.com-20101122132550-hcu608iuq5un9k0q > committer: Alexander Nozdrin <alexander.nozdrin@oracle.com> > branch nick: mysql-5.0-bugteam > timestamp: Mon 2010-11-22 16:27:49 +0300 > message: > Patch for Bug#58340 (Remove Server GPL EXCEPTIONS-CLIENT file).
-
unknown authored
-
- 11 Oct, 2010 1 commit
-
-
unknown authored
-
- 06 Oct, 2010 2 commits
-
-
Jimmy Yang authored
rb://477 approved by Marko
-
Georgi Kodinov authored
-
- 05 Oct, 2010 8 commits
-
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
- 04 Oct, 2010 5 commits
-
-
Vasil Dimov authored
-
Marko Mäkelä authored
row_search_for_mysql(): Acquire an intention lock on the table before locking the first record gap.
-
Marko Mäkelä authored
row_search_for_mysql(): Acquire an intention lock on the table before locking the first record gap.
-
Vasil Dimov authored
-
Sergey Glukhov authored
-
- 03 Oct, 2010 2 commits
-
-
Bjorn Munch authored
-
Bjorn Munch authored
-
- 01 Oct, 2010 8 commits
-
-
Alexey Kopytov authored
-
Mattias Jonsson authored
-
Mattias Jonsson authored
-
Vasil Dimov authored
-
Mattias Jonsson authored
-
Mattias Jonsson authored
LOAD DATA into partitioned MyISAM table Problem was that both partitioning and myisam used the same table_share->mutex for different protections (auto inc and repair). Solved by adding a specific mutex for the partitioning auto_increment. Also adding destroying the ha_data structure in free_table_share (which is to be propagated into 5.5). This is a 5.1 ONLY patch, already fixed in 5.5+.
-
Sergey Glukhov authored
The crash happens because original join table is replaced with temporary table at execution stage and later we attempt to use this temporary table in select_describe. It might happen that Item_subselect::update_used_tables() method which sets const_item flag is not called by some reasons (no where/having conditon in subquery for example). It prevents JOIN::join_tmp creation and breaks original join. The fix is to call ::update_used_tables() before ::const_item() check. mysql-test/r/ps.result: test case mysql-test/t/ps.test: test case sql/item_subselect.cc: call ::update_used_tables() before ::const_item() check.
-
Bjorn Munch authored
Added sanity check, similar to the one preventing send without reap
-