? bug

? bug

am 09.07.2003 11:01:47 von Gerard Lachicoree

------_=_NextPart_001_01C345F8.B9F1E6B0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I'm using mySQL server version 4.1.0-alpha-max-nt on Windows XP and =
have
noticed the following erroneous behaviour:
=20
The IN comparison operator seems to completely disregard =
case-sensitivity
enforced by BINARY at table creation.
The table was created like so:
=20
CREATE TABLE mytable(
mykey int NOT NULL,
myfield char(1) BINARY);
=20
myfield can contain integers, uppercase or lowercase letters i.e.
[0-9]|[a-z]|[A-Z]

The queries:
(i) SELECT * FROM mytable WHERE myfield NOT IN ('F', 'd');
(ii) SELECT * FROM mytable WHERE (myfield !=3D 'F') OR (myfield !=3D =
'd');
return completely different sets even though 'myfield' has been =
declared a
BINARY field.


Query (i) completely excludes rows containing 'D' - which it shouldn't =
do!!!
It should only exclude 'd' as well as 'F' of course.
Query (ii) seems to behave correctly.
=20
Is this a bug or am I missing something here?
=20
Thanks for looking into this.
=20
G=E9rard Lachicor=E9e
=20
=20

------_=_NextPart_001_01C345F8.B9F1E6B0--