This sequence:
mysql> set @@optimizer_switch='mrr_sort_keys=off'; mysql> explain SELECT DISTINCT table1 . `col_varchar_nokey` AS field1 FROM ( D AS table1 RIGHT OUTER JOIN ( D AS table2 STRAIGHT_JOIN ( ( D AS table3 LEFT JOIN D AS table4 ON (( table4 . `pk` = table3 . `col_int_nokey` ) OR ( table4 . `col_int_key` != table3 . `col_int_nokey` ) ) ) ) ON (( table4 . `col_int_key` = table3 . `col_int_key` ) AND ( table4 . `col_int_nokey` = table3 . `pk` ) ) ) ON (( table4 .`pk` != table3 . `col_int_nokey` ) AND (table4 .`pk` >= table3 . `pk` ) ) ) WHERE ( table1 . `col_varchar_key` = table1 . `col_varchar_key` OR table1 . `pk` = 159 ) AND table2 . `col_int_key` != table3 . `col_varchar_nokey` ORDER BY field1 , table1 . `col_varchar_key` ASC; mysql> SELECT DISTINCT table1 . `col_varchar_nokey` AS field1 FROM ( D AS table1 RIGHT OUTER JOIN ( D AS table2 STRAIGHT_JOIN ( ( D AS table3 LEFT JOIN D AS table4 ON (( table4 . `pk` = table3 . `col_int_nokey` ) OR ( table4 . `col_int_key` != table3 . `col_int_nokey` ) ) ) ) ON (( table4 . `col_int_key` = table3 . `col_int_key` ) AND ( table4 . `col_int_nokey` = table3 . `pk` ) ) ) ON (( table4 .`pk` != table3 . `col_int_nokey` ) AND (table4 .`pk` >= table3 . `pk` ) ) ) WHERE ( table1 . `col_varchar_key` = table1 . `col_varchar_key` OR table1 . `pk` = 159 ) AND table2 . `col_int_key` != table3 . `col_varchar_nokey` ORDER BY field1 , table1 . `col_varchar_key` ASC;
seems to have caused the following backtrace:
mysqld: multi_range_read.cc:430: int DsMrr_impl::dsmrr_init(handler*, RANGE_SEQ_IF*, void*, uint, uint, HANDLER_BUFFER*): Assertion `do_sort_keys || do_rowid_fetch' failed.
/lib/libc.so.6(__assert_fail+0xf8) [0xa72d98] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(DsMrr_impl::dsmrr_init(handler*, st_range_seq_if*, void*, unsigned int, unsigned int, st_handler_buffer*)+0x1d4) [0x8498890] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(ha_innobase::multi_range_read_init(st_range_seq_if*, void*, unsigned int, unsigned int, st_handler_buffer*)+0x41) [0x866a751] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(JOIN_CACHE_BKA::init_join_matching_records(st_range_seq_if*, unsigned int)+0x12c) [0x82da42c] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(JOIN_CACHE_BKA_UNIQUE::join_matching_records(bool)+0x11e) [0x82db632] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(JOIN_CACHE::join_records(bool)+0x6c) [0x82d9352] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(sub_select_cache(JOIN*, st_join_table*, bool)+0x1ae) [0x831f48e] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(JOIN_CACHE::generate_full_extensions(unsigned char*)+0xc0) [0x82d9aa4] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(JOIN_CACHE_BNL::join_matching_records(bool)+0x321) [0x82d9883] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(JOIN_CACHE::join_records(bool)+0x6c) [0x82d9352] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(JOIN_CACHE::join_records(bool)+0x19e) [0x82d9484] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(sub_select_cache(JOIN*, st_join_table*, bool)+0xa2) [0x831f382] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(sub_select(JOIN*, st_join_table*, bool)+0x71) [0x831f59b] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld() [0x831eb55] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(JOIN::exec()+0xadf) [0x830320d] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*)+0x34a) [0x830560d] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(handle_select(THD*, st_lex*, select_result*, unsigned long)+0x1cf) [0x82fdbff] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld() [0x829c1a4] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(mysql_execute_command(THD*)+0x881) [0x8292b7c] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(mysql_parse(THD*, char const*, unsigned int, char const**)+0x248) [0x829e365] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0x87b) [0x8290632] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(do_command(THD*)+0x273) [0x828fb20] /home/philips/bzr/maria-5.3-dsmrr-cpk/sql/mysqld(handle_one_connection+0x152) [0x828cb58]
This sequence:
mysql> set @@optimizer_ switch= 'mrr_sort_ keys=off' ;
mysql> explain SELECT DISTINCT table1 . `col_varchar_nokey` AS field1 FROM ( D AS table1 RIGHT OUTER JOIN ( D AS table2 STRAIGHT_JOIN ( ( D AS table3 LEFT JOIN D AS table4 ON (( table4 . `pk` = table3 . `col_int_nokey` ) OR ( table4 . `col_int_key` != table3 . `col_int_nokey` ) ) ) ) ON (( table4 . `col_int_key` = table3 . `col_int_key` ) AND ( table4 . `col_int_nokey` = table3 . `pk` ) ) ) ON (( table4 .`pk` != table3 . `col_int_nokey` ) AND (table4 .`pk` >= table3 . `pk` ) ) ) WHERE ( table1 . `col_varchar_key` = table1 . `col_varchar_key` OR table1 . `pk` = 159 ) AND table2 . `col_int_key` != table3 . `col_varchar_nokey` ORDER BY field1 , table1 . `col_varchar_key` ASC;
mysql> SELECT DISTINCT table1 . `col_varchar_nokey` AS field1 FROM ( D AS table1 RIGHT OUTER JOIN ( D AS table2 STRAIGHT_JOIN ( ( D AS table3 LEFT JOIN D AS table4 ON (( table4 . `pk` = table3 . `col_int_nokey` ) OR ( table4 . `col_int_key` != table3 . `col_int_nokey` ) ) ) ) ON (( table4 . `col_int_key` = table3 . `col_int_key` ) AND ( table4 . `col_int_nokey` = table3 . `pk` ) ) ) ON (( table4 .`pk` != table3 . `col_int_nokey` ) AND (table4 .`pk` >= table3 . `pk` ) ) ) WHERE ( table1 . `col_varchar_key` = table1 . `col_varchar_key` OR table1 . `pk` = 159 ) AND table2 . `col_int_key` != table3 . `col_varchar_nokey` ORDER BY field1 , table1 . `col_varchar_key` ASC;
seems to have caused the following backtrace:
mysqld: multi_range_ read.cc: 430: int DsMrr_impl: :dsmrr_ init(handler* , RANGE_SEQ_IF*, void*, uint, uint, HANDLER_BUFFER*): Assertion `do_sort_keys || do_rowid_fetch' failed.
/lib/libc. so.6(__ assert_ fail+0xf8) [0xa72d98] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( DsMrr_impl: :dsmrr_ init(handler* , st_range_seq_if*, void*, unsigned int, unsigned int, st_handler_ buffer* )+0x1d4) [0x8498890] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( ha_innobase: :multi_ range_read_ init(st_ range_seq_ if*, void*, unsigned int, unsigned int, st_handler_ buffer* )+0x41) [0x866a751] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( JOIN_CACHE_ BKA::init_ join_matching_ records( st_range_ seq_if* , unsigned int)+0x12c) [0x82da42c] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( JOIN_CACHE_ BKA_UNIQUE: :join_matching_ records( bool)+0x11e) [0x82db632] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( JOIN_CACHE: :join_records( bool)+0x6c) [0x82d9352] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( sub_select_ cache(JOIN* , st_join_table*, bool)+0x1ae) [0x831f48e] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( JOIN_CACHE: :generate_ full_extensions (unsigned char*)+0xc0) [0x82d9aa4] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( JOIN_CACHE_ BNL::join_ matching_ records( bool)+0x321) [0x82d9883] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( JOIN_CACHE: :join_records( bool)+0x6c) [0x82d9352] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( JOIN_CACHE: :join_records( bool)+0x19e) [0x82d9484] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( sub_select_ cache(JOIN* , st_join_table*, bool)+0xa2) [0x831f382] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( sub_select( JOIN*, st_join_table*, bool)+0x71) [0x831f59b] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( ) [0x831eb55] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( JOIN::exec( )+0xadf) [0x830320d] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( mysql_select( THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_ lex_unit* , st_select_ lex*)+0x34a) [0x830560d] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( handle_ select( THD*, st_lex*, select_result*, unsigned long)+0x1cf) [0x82fdbff] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( ) [0x829c1a4] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( mysql_execute_ command( THD*)+0x881) [0x8292b7c] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( mysql_parse( THD*, char const*, unsigned int, char const**)+0x248) [0x829e365] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( dispatch_ command( enum_server_ command, THD*, char*, unsigned int)+0x87b) [0x8290632] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( do_command( THD*)+0x273) [0x828fb20] bzr/maria- 5.3-dsmrr- cpk/sql/ mysqld( handle_ one_connection+ 0x152) [0x828cb58]
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/
/home/philips/