Commit graph

14 commits

Author SHA1 Message Date
Igor Babaev
79439d9a74 Fixed LP bug #752353.
In some cases the field max_part_no of the SEL_ARG structure
was not initialized. That triggered a Valgrind complain.
2011-04-20 15:30:21 -07:00
Igor Babaev
212e42263d Merge. 2010-12-10 01:17:09 -08:00
Igor Babaev
c4080280df Merge 2010-12-09 21:55:14 -08:00
Igor Babaev
afcefa97d9 Addemdum for bug #685952.
Also:
Changed the value of TIME_FOR_COMPARE_ROWID to make it the same as for MWL 21.
Changed some queries in range_vs_index_merge.test to make them generate
the same plans as earlier.
2010-12-09 11:06:32 -08:00
Igor Babaev
f5a0595209 Corrected the bug number in a test case. 2010-12-07 19:51:48 -08:00
Igor Babaev
c44c9207f0 Fixed LP bug #685952.
When ORing two AND-OR formulas the range optimizer could miss
a conjunct in one of AND-OR formulas in the result. If the
index merge union plan to access a table is formed by this 
formula that, in general, is not inferred from the original
where/on condition,the query could return an incorrect result set.
2010-12-07 12:14:28 -08:00
Igor Babaev
67180d655a Fixed LP bug #684117.
A crash may happenin the cases when the range optimizer tried to OR
two index merge such that the second one contained less range trees
than the first one.
The bug was introduced by the patch of MWL#24: 
"index_merge: fair choice between index_merge union and range access".
2010-12-05 19:09:37 -08:00
Igor Babaev
bfb7727526 Fixed LP bug #684117.
A crash may happenin the cases when the range optimizer tried to OR
two index merge such that the second one contained less range trees
than the first one.
The bug was introduced by the patch of MWL#24: 
"index_merge: fair choice between index_merge union and range access".
2010-12-04 19:19:55 -08:00
Igor Babaev
25704af0b2 Adjusted results in suite/innodb_plugin/r/innodb_mysql.result.
Made range_vs_index_merge.test platform independent
2010-12-04 10:40:07 -08:00
Igor Babaev
80377bbf6d MWL #21: "index_merge: non-ROR intersection".
The second (final) patch.
2010-12-01 23:39:39 -08:00
Igor Babaev
1a3bb0c5c2 Fixed bug #637978.
Fixed a bug in the new code for WL#24 that caused generation of
an invalid index-merge access plan.
2010-09-15 16:42:56 -07:00
Igor Babaev
27191a30c0 Replaced a lame implementation of the function sel_trees_must_be_ored
that blocked building index merge plans for the queries with where
conditions of the form 
(key1|2_p1=c AND range(key1_p2)) OR (key1|2_p1=c AND range(key2_p2)).

The problem was discovered by Sergey Petrunia when he reviewed the patch
for WL#24.

Added new test cases. One of them failed to produce an index merge plan
before the patch was applied.
2009-10-29 11:49:58 -07:00
Igor Babaev
9d39a13761 Changed test cases to make results for innodb platform independent. 2009-10-17 11:40:46 -07:00
Igor Babaev
3019d39729 The main patch for WL#24:
"index_merge: fair choice between index_merge union and range access"

mysql-test/include/world.inc:
  A new include file to upload the world database.
mysql-test/include/world_schema.inc:
  A new include file to create tables of the world database.
mysql-test/r/index_merge_myisam.result:
  The results for test cases testing the optimizations added in WL#24 for MyISAM.
mysql-test/r/range_vs_index_merge.result:
  The results for test cases testing the optimizations added in WL#24 for InnoDB.
mysql-test/t/range_vs_index_merge.test:
  Test cases to test the optimizations added in WL#24 for MyISAM.
mysql-test/t/range_vs_index_merge_innodb.test:
  Test cases to test the optimizations added in WL#24 for InnoDB.
sql/sql_list.h:
  Fixed a bug that did not allow adding a non-empty list to an empty list.
2009-10-11 21:59:34 -07:00