Browse Source

Make test results stable (they weren't, because filesort() used to read

from a heap temptable, which uses pointers to records (that is, byte*
pointers) as rowids.  
This meant that for rows with the same sort key value, the order 
was determined by memory layout.
pull/843/head
Sergey Petrunya 14 years ago
parent
commit
d9fcec5acd
  1. 36
      mysql-test/r/fulltext_order_by.result
  2. 4
      mysql-test/t/fulltext_order_by.test

36
mysql-test/r/fulltext_order_by.result

@ -44,24 +44,24 @@ a FORMAT(MATCH (message) AGAINST ('steve'),6)
SELECT a, MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) FROM t1 WHERE a=7 and MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) ORDER BY 1;
a MATCH (message) AGAINST ('steve' IN BOOLEAN MODE)
7 1
SELECT a, FORMAT(MATCH (message) AGAINST ('steve'),6) as rel FROM t1 ORDER BY rel;
a rel
1 0.000000
5 0.000000
2 0.000000
6 0.000000
3 0.000000
7 0.895690
4 0.905873
SELECT a, MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) as rel FROM t1 ORDER BY rel;
a rel
1 0
2 0
3 0
5 0
6 0
4 1
7 1
SELECT IF(a=7,'steve-is-cool',IF(a=4,'cool', 'other')), FORMAT(MATCH (message) AGAINST ('steve'),6) as rel FROM t1 ORDER BY rel;
IF(a=7,'steve-is-cool',IF(a=4,'cool', 'other')) rel
other 0.000000
other 0.000000
other 0.000000
other 0.000000
other 0.000000
steve-is-cool 0.895690
cool 0.905873
SELECT IF(a=7,'steve-is-cool',IF(a=4,'cool', 'other')), MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) as rel FROM t1 ORDER BY rel;
IF(a=7,'steve-is-cool',IF(a=4,'cool', 'other')) rel
other 0
other 0
other 0
other 0
other 0
steve-is-cool 1
cool 1
alter table t1 add key m (message);
explain SELECT message FROM t1 WHERE MATCH (message) AGAINST ('steve') ORDER BY message;
id select_type table type possible_keys key key_len ref rows Extra

4
mysql-test/t/fulltext_order_by.test

@ -28,8 +28,8 @@ SELECT a, FORMAT(MATCH (message) AGAINST ('steve'),6) FROM t1 WHERE a=7 and MATC
SELECT a, MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) FROM t1 WHERE a=7 and MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) ORDER BY 1;
# ORDER BY MATCH
SELECT a, FORMAT(MATCH (message) AGAINST ('steve'),6) as rel FROM t1 ORDER BY rel;
SELECT a, MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) as rel FROM t1 ORDER BY rel;
SELECT IF(a=7,'steve-is-cool',IF(a=4,'cool', 'other')), FORMAT(MATCH (message) AGAINST ('steve'),6) as rel FROM t1 ORDER BY rel;
SELECT IF(a=7,'steve-is-cool',IF(a=4,'cool', 'other')), MATCH (message) AGAINST ('steve' IN BOOLEAN MODE) as rel FROM t1 ORDER BY rel;
#
# BUG#6635 - test_if_skip_sort_order() thought it can skip filesort

Loading…
Cancel
Save