Tried to post this to mailing.database.mysql, but earthlink's news servers
suck, and it seems the message got dropped.  Bleh.  Anyway..:

Jeff S Wheeler <[EMAIL PROTECTED]> wrote in message news:...
Below is a filled-out mysqlbug form.  Indexes on HEAP tables are ignored in
numerous queries in which I think they should be utilized, but this is the
first I've noticed where mysql actually _does_ use the index, and as a
result it produces wrong query results.

Description:
 Adding an index to a HEAP table breaks WHERE col LIKE "502-%"

How-To-Repeat:
mysql> SELECT COUNT(*) FROM t4 WHERE BillN LIKE "502-%"\G
*************************** 1. row ***************************
COUNT(*): 4378
1 row in set (0.03 sec)

mysql> CREATE INDEX BillN ON t4 (BillN);
Query OK, 42854 rows affected (0.15 sec)


mysql> SELECT COUNT(*) FROM t4 WHERE BillN LIKE "502-%"\G
*************************** 1. row ***************************
COUNT(*): 0
1 row in set (0.00 sec)

Fix:
 Do not use indexes on HEAP tables.  Of course, I really would like to
 be able to use them, as I have a nasty LEFT JOIN that would be really
 fast in comparison, if it wouldn't improperly return zero rows.

Submitter-Id:
Originator: Jeff S Wheeler <[EMAIL PROTECTED]>
Organization: Five Elements, Inc.
MySQL support: none
Synopsis: Indexes break some queries on HEAP tables
Severity: serious
Priority: low
Category: mysql
Class:  sw-bug
Release: mysql-3.23.33-pc-linux-gnu-i686 (Binary distribution)

Environment:

System: Linux neptune 2.4.2 #2 SMP Tue Mar 13 22:15:19 EST 2001 i686 unknown
Architecture: i686

Some paths:  /usr/bin/perl /usr/bin/make /usr/bin/gcc /usr/bin/cc
GCC: Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 20000220 (Debian GNU/Linux)
Compilation info: CC='gcc'  CFLAGS='-O2 -fomit-frame-pointer'  CXX='g++'
CXXFLAGS='-O2 -fomit-frame-pointer -felide-constructors -fno-exceptions -fno
-rtti'  LDFLAGS=''
Configure command:
./configure  --enable-shared --without-readline --enable-assembler --with-my
sqld-user=mysql --with-unix-socket-path=/var/run/mysqld/mysqld.sock --prefix
=/usr --exec-prefix=/usr --libexecdir=/usr/sbin --sysconfdir=/etc/mysql --da
tadir=/usr/share --localstatedir=/var/lib/mysql --infodir=/usr/share/info --
includedir=/usr/include --mandir=/usr/share/man
Perl: This is perl, version 5.005_03 built for i386-linux




---------------------------------------------------------------------
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

Reply via email to