Jeremy, Jocelyn, can you try the following this patch?
The flag which bans MySQL using a descending cursor to calculate column LIKE 'jhghj%' ORDER BY column DESC queries was apparently put to the wrong place in ha_innodb.h. The assertion I had added to 4.0.4 revealed this hidden bug. The patch fixes also the crash submitted by Jocelyn Fournier earlier today: ... CREATE TABLE `threadhardwarefr13` ( `numeropost` mediumint(8) unsigned NOT NULL default '0', `numreponse` int(10) unsigned NOT NULL auto_increment, `pseudo` varchar(35) NOT NULL default '', `date` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`numeropost`,`numreponse`), UNIQUE KEY `numreponse` (`numreponse`), KEY `pseudo` (`pseudo`,`numeropost`) ) TYPE=InnoDB; SELECT LOWER(pseudo),date FROM threadhardwarefr13 WHERE numeropost='166498' ORDER BY numreponse DESC LIMIT 0,3; -> assertion failure at line 2180 of ha_innodb.cc ... I have to check why MySQL uses that flag in Jocelyn's query. It does not have a LIKE 'gggg%' clause. Thank you for the bug reports, Heikki ChangeSet 1.1317 02/09/25 19:02:46 [EMAIL PROTECTED] +2 -0 ha_innodb.cc, ha_innodb.h: Move to the right place the flag which bans use of HA_READ_PREFIX_LAST; add diagnostics and remove the assertion on line 2180 of ha_innodb.cc sql/ha_innodb.cc 1.110 02/09/25 19:02:06 [EMAIL PROTECTED] +6 -1 Move to the right place the flag which bans use of HA_READ_PREFIX_LAST; add diagnostics and remove the assertion on line 2180 of ha_innodb.cc sql/ha_innodb.h 1.44 02/09/25 19:02:03 [EMAIL PROTECTED] +2 -1 Move to the right place the flag which bans use of HA_READ_PREFIX_LAST; add diagnostics and remove the assertion on line 2180 of ha_innodb.cc # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: heikki # Host: hundin.mysql.fi # Root: /home/heikki/mysql-4.0 --- 1.109/sql/ha_innodb.cc Tue Sep 24 17:11:56 2002 +++ 1.110/sql/ha_innodb.cc Wed Sep 25 19:02:06 2002 @@ -2179,7 +2179,12 @@ case HA_READ_AFTER_KEY: return(PAGE_CUR_G); case HA_READ_BEFORE_KEY: return(PAGE_CUR_L); case HA_READ_PREFIX: return(PAGE_CUR_GE); - case HA_READ_PREFIX_LAST: ut_a(0); return(PAGE_CUR_LE); + case HA_READ_PREFIX_LAST: + ut_print_timestamp(stderr); + fprintf(stderr, + " InnoDB: Warning: Using HA_READ_PREFIX_LAST\n"); + return(PAGE_CUR_LE); + /* InnoDB does not yet support ..PREFIX_LAST! We have to add a new search flag PAGE_CUR_LE_OR_PREFIX to InnoDB. */ --- 1.43/sql/ha_innodb.h Fri Sep 20 23:26:10 2002 +++ 1.44/sql/ha_innodb.h Wed Sep 25 19:02:03 2002 @@ -82,6 +82,7 @@ HA_PRIMARY_KEY_IN_READ_INDEX | HA_DROP_BEFORE_CREATE | HA_NO_PREFIX_CHAR_KEYS | + HA_NOT_READ_PREFIX_LAST | HA_TABLE_SCAN_ON_INDEX), last_dup_key((uint) -1), start_of_scan(0) @@ -96,7 +97,7 @@ ulong index_flags(uint idx) const { return (HA_READ_NEXT | HA_READ_PREV | HA_READ_ORDER | - HA_KEY_READ_ONLY | HA_NOT_READ_PREFIX_LAST); + HA_KEY_READ_ONLY); } uint max_record_length() const { return HA_MAX_REC_LENGTH; } uint max_keys() const { return MAX_KEY; } ----- Original Message ----- From: "Jeremy Zawodny" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Wednesday, September 25, 2002 6:19 PM Subject: InnoDB: Assertion failure in file ha_innodb.cc line 2180... > Heikki and others, > > One of my slaves is dying frequently. It runs MySQL 4.0.4 (pulled > yesterday) on FreeBSD. I'm getting an assertion failure on line 2180, > which appears to be: > > case HA_READ_PREFIX_LAST: ut_a(0); return(PAGE_CUR_LE); > > What can I do to help debug this? > > Thanks, > > Jeremy > -- > Jeremy D. Zawodny | Perl, Web, MySQL, Linux Magazine, Yahoo! > <[EMAIL PROTECTED]> | http://jeremy.zawodny.com/ > > MySQL 3.23.51: up 50 days, processed 1,063,578,875 queries (244/sec. avg) --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php