>Description:

In certain cases the select fails (ie (a) does not return required rows, or (b) 
returns non-wanted rows (cannot repeat (b)))
The problem seems to be related to negative values in decimal type fields and in query 
against those fields.
the problem is applicable to several 3.22.* versions on different machines, have no 
possibility to check with 3.23.*.

>How-To-Repeat:

create the table:

DROP TABLE IF EXISTS dataformats;
CREATE TABLE dataformats (
   id int(11) DEFAULT '0' NOT NULL auto_increment,
   datatype_id int(11) DEFAULT '0' NOT NULL,
   minvalue decimal(20,10) DEFAULT '0.0000000000' NOT NULL,
   maxvalue decimal(20,10) DEFAULT '0.0000000000' NOT NULL,
   valuename varchar(20),
   forecolor int(11),
   backcolor int(11),
   PRIMARY KEY (id),
   UNIQUE datatype_id (datatype_id, minvalue, maxvalue)
);

.. and add the following content

INSERT INTO dataformats VALUES ( '1', '4', '0.0000000000', '0.0000000000', 'Ei saja', 
'0', '16776960');
INSERT INTO dataformats VALUES ( '2', '4', '1.0000000000', '1.0000000000', 'Sajab', 
'16777215', '255');
INSERT INTO dataformats VALUES ( '3', '1', '2.0000000000', '49.0000000000', '', '0', 
'16777215');
INSERT INTO dataformats VALUES ( '60', '11', '0.0000000000', '0.0000000000', 'Rikkis', 
'16777215', '16711680');
INSERT INTO dataformats VALUES ( '4', '12', '1.0000000000', '1.0000000000', 'nork 
sadu', '65280', '14474460');
INSERT INTO dataformats VALUES ( '5', '12', '2.0000000000', '2.0000000000', 'keskmine 
sadu', '255', '14474460');
INSERT INTO dataformats VALUES ( '6', '12', '3.0000000000', '3.0000000000', 'tugev 
sadu', '127', '14474460');
INSERT INTO dataformats VALUES ( '43', '39', '6.0000000000', '6.0000000000', 
'lobjakas', '13107327', '16763080');
INSERT INTO dataformats VALUES ( '40', '39', '2.0000000000', '2.0000000000', 'vihm', 
'8355839', '16777215');
INSERT INTO dataformats VALUES ( '53', '1', '-35.0000000000', '-5.0000000000', '', 
'0', '16777215');
INSERT INTO dataformats VALUES ( '41', '39', '3.0000000000', '3.0000000000', 'külm 
vihm', '120', '16763080');
INSERT INTO dataformats VALUES ( '12', '21', '21.0000000000', '21.0000000000', 'Kuiv', 
'13158600', '16777215');
INSERT INTO dataformats VALUES ( '13', '21', '13.0000000000', '13.0000000000', 'Märg', 
'5263615', '16777215');
INSERT INTO dataformats VALUES ( '14', '21', '22.0000000000', '22.0000000000', 
'Niiske', '9869055', '16777215');
INSERT INTO dataformats VALUES ( '19', '21', '33.0000000000', '33.0000000000', 'Märg', 
'5263615', '16777215');
INSERT INTO dataformats VALUES ( '15', '21', '23.0000000000', '23.0000000000', 'Märg', 
'5263615', '16777215');
INSERT INTO dataformats VALUES ( '16', '21', '31.0000000000', '31.0000000000', 'Kuiv', 
'13158600', '16777215');
INSERT INTO dataformats VALUES ( '17', '21', '12.0000000000', '12.0000000000', 
'Niiske', '9869055', '16777215');
INSERT INTO dataformats VALUES ( '18', '21', '32.0000000000', '32.0000000000', 
'Niiske', '9869055', '16777215');
INSERT INTO dataformats VALUES ( '20', '21', '331.0000000000', '331.0000000000', 
'Härmatise hoiatus!', '14448840', '13158600');
INSERT INTO dataformats VALUES ( '21', '21', '11.0000000000', '11.0000000000', 'Kuiv', 
'13158600', '16777215');
INSERT INTO dataformats VALUES ( '22', '33', '21.0000000000', '21.0000000000', 
'Pilves, kuiv', '8355711', '12632256');
INSERT INTO dataformats VALUES ( '23', '33', '13.0000000000', '13.0000000000', 'Sajab, 
märg', '0', '8355839');
INSERT INTO dataformats VALUES ( '24', '33', '22.0000000000', '22.0000000000', 
'Pilves, niiske', '8355711', '12632319');
INSERT INTO dataformats VALUES ( '29', '33', '33.0000000000', '33.0000000000', 'Selge, 
märg', '16777215', '8355839');
INSERT INTO dataformats VALUES ( '25', '33', '23.0000000000', '23.0000000000', 
'Pilves, märg', '8355711', '8355839');
INSERT INTO dataformats VALUES ( '26', '33', '31.0000000000', '31.0000000000', 'Selge, 
kuiv', '16777215', '12632256');
INSERT INTO dataformats VALUES ( '27', '33', '12.0000000000', '12.0000000000', 'Sajab, 
niiske', '0', '12632319');
INSERT INTO dataformats VALUES ( '28', '33', '32.0000000000', '32.0000000000', 'Selge, 
niiske', '16777215', '12632319');
INSERT INTO dataformats VALUES ( '30', '33', '331.0000000000', '331.0000000000', 
'Härmatis! selge,kuiv', '16711680', '12632256');
INSERT INTO dataformats VALUES ( '31', '33', '11.0000000000', '11.0000000000', 'Sajab, 
kuiv', '0', '12632256');
INSERT INTO dataformats VALUES ( '32', '11', '1.0000000000', '1.0000000000', 'Korras', 
'16777215', '49152');
INSERT INTO dataformats VALUES ( '33', '21', '335.0000000000', '335.0000000000', 
'Härmatis!', '14448840', '11842740');
INSERT INTO dataformats VALUES ( '34', '21', '134.0000000000', '134.0000000000', 
'Hoiatus, M+S!', '255', '13158600');
INSERT INTO dataformats VALUES ( '35', '21', '133.0000000000', '133.0000000000', 
'Hoiatus, märg!', '5263615', '13158600');
INSERT INTO dataformats VALUES ( '36', '21', '135.0000000000', '135.0000000000', 
'Härmatis!', '14448840', '11842740');
INSERT INTO dataformats VALUES ( '37', '21', '334.0000000000', '334.0000000000', 
'Härmatise hoiatus!', '14448840', '13158600');
INSERT INTO dataformats VALUES ( '38', '21', '132.0000000000', '132.0000000000', 
'Hoiatus, niiske!', '9869055', '13158600');
INSERT INTO dataformats VALUES ( '39', '39', '1.0000000000', '1.0000000000', 'ei 
saja', '11206570', '16777215');
INSERT INTO dataformats VALUES ( '44', '39', '4.0000000000', '5.0000000000', 'lumi', 
'16711680', '16763080');
INSERT INTO dataformats VALUES ( '45', '12', '0.0000000000', '0.0000000000', '', 
'16777215', '14474460');
INSERT INTO dataformats VALUES ( '46', '39', '8.0000000000', '8.0000000000', 'rahe', 
'9830400', '16763080');
INSERT INTO dataformats VALUES ( '47', '39', '9.0000000000', '9.0000000000', 'tüüp 
ebaselge', '12582912', '16777215');
INSERT INTO dataformats VALUES ( '48', '39', '7.0000000000', '7.0000000000', 
'lumetuisk', '7209070', '16763080');
INSERT INTO dataformats VALUES ( '142', '15', '2.0000000000', '49.0000000000', '', 
'0', '16777215');
INSERT INTO dataformats VALUES ( '52', '1', '-4.9000000000', '-0.1000000000', '', '0', 
'15774720');
INSERT INTO dataformats VALUES ( '141', '15', '-4.9000000000', '-0.1000000000', '', 
'0', '15774720');
INSERT INTO dataformats VALUES ( '55', '8', '0.0000000000', '0.0000000000', '', '0', 
'16777215');
INSERT INTO dataformats VALUES ( '56', '8', '0.0100000000', '0.1000000000', '', '0', 
'16770560');
INSERT INTO dataformats VALUES ( '57', '8', '0.1100000000', '25.0000000000', '', '0', 
'15774720');
INSERT INTO dataformats VALUES ( '58', '2', '90.0000000000', '94.9000000000', '', 
NULL, '16770560');
INSERT INTO dataformats VALUES ( '59', '6', '0.0000000000', '360.0000000000', '', 
NULL, '16777215');
INSERT INTO dataformats VALUES ( '61', '21', '38.0000000000', '38.0000000000', 
'Niiske', '9869055', '16777215');
INSERT INTO dataformats VALUES ( '62', '38', '500.0000000000', '999.0000000000', '', 
'0', '16770560');
INSERT INTO dataformats VALUES ( '63', '38', '1000.0000000000', '2000.0000000000', '', 
'0', '16777215');
INSERT INTO dataformats VALUES ( '64', '17', '0.0000000000', '0.0000000000', '', NULL, 
'16777215');
INSERT INTO dataformats VALUES ( '65', '17', '0.1000000000', '10.0000000000', '', 
NULL, '16770560');
INSERT INTO dataformats VALUES ( '67', '21', '412.0000000000', '412.0000000000', 
'Niiske', '9869055', '16777215');
INSERT INTO dataformats VALUES ( '68', '21', '413.0000000000', '413.0000000000', 
'Märg', '5263615', '16777215');
INSERT INTO dataformats VALUES ( '69', '21', '113.0000000000', '113.0000000000', 
'Märg', '5263615', '16777215');
INSERT INTO dataformats VALUES ( '70', '21', '416.0000000000', '416.0000000000', 
'Lumine!', '16711680', '11842740');
INSERT INTO dataformats VALUES ( '71', '38', '0.0000000000', '499.0000000000', '', 
NULL, '16711680');
INSERT INTO dataformats VALUES ( '72', '22', '-49.0000000000', '49.0000000000', '', 
NULL, '16777215');
INSERT INTO dataformats VALUES ( '73', '13', '0.0000000000', '9.9000000000', '', NULL, 
'16777215');
INSERT INTO dataformats VALUES ( '74', '13', '10.0000000000', '14.9000000000', '', 
NULL, '16770560');
INSERT INTO dataformats VALUES ( '75', '7', '0.0000000000', '50.0000000000', '', NULL, 
'16777215');
INSERT INTO dataformats VALUES ( '76', '18', '0.0000000000', '0.0000000000', '', NULL, 
'16777215');
INSERT INTO dataformats VALUES ( '77', '18', '0.1000000000', '10.0000000000', '', 
NULL, '16770560');
INSERT INTO dataformats VALUES ( '78', '19', '300.0000000000', '400.0000000000', '', 
NULL, '16777215');
INSERT INTO dataformats VALUES ( '79', '19', '0.0000000000', '299.0000000000', '', 
NULL, '16770560');
INSERT INTO dataformats VALUES ( '80', '23', '0.0000000000', '100.0000000000', '', 
NULL, '16777215');
INSERT INTO dataformats VALUES ( '81', '24', '0.0000000000', '200.0000000000', '', 
NULL, '16777215');
INSERT INTO dataformats VALUES ( '82', '26', '0.0000000000', '0.0000000000', '', NULL, 
'16777215');
INSERT INTO dataformats VALUES ( '83', '26', '0.1000000000', '5.0000000000', '', NULL, 
'16776960');
INSERT INTO dataformats VALUES ( '84', '21', '422.0000000000', '422.0000000000', 
'Niiske', '9869055', '16777215');
INSERT INTO dataformats VALUES ( '85', '21', '411.0000000000', '411.0000000000', 'Saju 
hoiat.,kuiv!', '16777215', '13158600');
INSERT INTO dataformats VALUES ( '86', '21', '423.0000000000', '423.0000000000', 
'Märg', '5263615', '16777215');
INSERT INTO dataformats VALUES ( '144', '16', '-49.0000000000', '-5.0000000000', '', 
NULL, '16777215');
INSERT INTO dataformats VALUES ( '88', '16', '2.0000000000', '49.0000000000', '', 
NULL, '16777215');
INSERT INTO dataformats VALUES ( '89', '21', '338.0000000000', '338.0000000000', 
'Härm.hoiatus, N+S!', '16744319', '13158600');
INSERT INTO dataformats VALUES ( '90', '21', '332.0000000000', '332.0000000000', 
'Härm.hoiat., niiske!', '16744319', '13158600');
INSERT INTO dataformats VALUES ( '91', '21', '114.0000000000', '114.0000000000', 
'Hoiatus, M+S!', '255', '13158600');
INSERT INTO dataformats VALUES ( '92', '21', '117.0000000000', '117.0000000000', 
'Hoiatus, JÄÄ!', '14448840', '16711680');
INSERT INTO dataformats VALUES ( '93', '21', '116.0000000000', '116.0000000000', 
'Lumine!', '16711680', '11842740');
INSERT INTO dataformats VALUES ( '94', '21', '414.0000000000', '414.0000000000', 
'Hoiatus, M+S!', '255', '13158600');
INSERT INTO dataformats VALUES ( '95', '21', '325.0000000000', '325.0000000000', 
'Härmatis!', '14448840', '11842740');
INSERT INTO dataformats VALUES ( '96', '21', '321.0000000000', '321.0000000000', 
'Härmatise hoiatus!', '14448840', '13158600');
INSERT INTO dataformats VALUES ( '97', '21', '328.0000000000', '328.0000000000', 
'Härm.hoiatus, N+S!', '16744319', '13158600');
INSERT INTO dataformats VALUES ( '98', '21', '28.0000000000', '28.0000000000', 'Niiske 
ja sool', '9869055', '16777215');
INSERT INTO dataformats VALUES ( '99', '21', '118.0000000000', '118.0000000000', 
'Hoiatus, N+S!', '9869055', '13158600');
INSERT INTO dataformats VALUES ( '100', '21', '418.0000000000', '418.0000000000', 
'Hoiatus, N+S!', '9869055', '13158600');
INSERT INTO dataformats VALUES ( '101', '21', '322.0000000000', '322.0000000000', 
'Härm.hoiat., niiske!', '16744319', '13158600');
INSERT INTO dataformats VALUES ( '102', '21', '428.0000000000', '428.0000000000', 
'Hoiatus, N+S!', '9869055', '13158600');
INSERT INTO dataformats VALUES ( '103', '21', '432.0000000000', '432.0000000000', 
'Hoiatus, niiske!', '7895240', '13158600');
INSERT INTO dataformats VALUES ( '104', '21', '421.0000000000', '421.0000000000', 
'Saju hoiat.,kuiv!', '16777215', '13158600');
INSERT INTO dataformats VALUES ( '105', '21', '24.0000000000', '24.0000000000', 'Märg 
ja sool', '255', '16777215');
INSERT INTO dataformats VALUES ( '106', '21', '438.0000000000', '438.0000000000', 
'Hoiatus, N+S!', '9869055', '13158600');
INSERT INTO dataformats VALUES ( '107', '21', '112.0000000000', '112.0000000000', 
'Hoiatus, niiske!', '9869055', '13158600');
INSERT INTO dataformats VALUES ( '108', '21', '34.0000000000', '34.0000000000', 'Märg 
ja sool', '255', '16777215');
INSERT INTO dataformats VALUES ( '109', '21', '434.0000000000', '434.0000000000', 
'Hoiatus, M+S!', '255', '13158600');
INSERT INTO dataformats VALUES ( '110', '21', '124.0000000000', '124.0000000000', 
'Hoiatus, M+S!', '255', '13158600');
INSERT INTO dataformats VALUES ( '111', '21', '424.0000000000', '424.0000000000', 
'Hoiatus, M+S!', '255', '13158600');
INSERT INTO dataformats VALUES ( '112', '21', '123.0000000000', '123.0000000000', 
'Hoiatus, märg!', '5263615', '13158600');
INSERT INTO dataformats VALUES ( '140', '15', '-49.0000000000', '-5.0000000000', '', 
'0', '16777215');
INSERT INTO dataformats VALUES ( '114', '21', '18.0000000000', '18.0000000000', 
'Niiske ja sool', '9869055', '16777215');
INSERT INTO dataformats VALUES ( '115', '21', '122.0000000000', '122.0000000000', 
'Hoiatus, niiske!', '9869055', '13158600');
INSERT INTO dataformats VALUES ( '116', '21', '14.0000000000', '14.0000000000', 'Märg 
ja sool', '255', '16777215');
INSERT INTO dataformats VALUES ( '117', '21', '311.0000000000', '311.0000000000', 
'Härmatise hoiatus!', '14448840', '13158600');
INSERT INTO dataformats VALUES ( '121', '2', '95.0000000000', '100.0000000000', '', 
NULL, '15774720');
INSERT INTO dataformats VALUES ( '118', '2', '0.0000000000', '89.9000000000', '', 
NULL, '16777215');
INSERT INTO dataformats VALUES ( '119', '21', '16.0000000000', '16.0000000000', 
'Lumine!', '16711680', '11842740');
INSERT INTO dataformats VALUES ( '120', '21', '26.0000000000', '26.0000000000', 
'Lumine!', '16711680', '11842740');
INSERT INTO dataformats VALUES ( '122', '13', '15.0000000000', '50.0000000000', '', 
NULL, '15774720');
INSERT INTO dataformats VALUES ( '123', '5', '0.0000000000', '9.9000000000', '', NULL, 
'16777215');
INSERT INTO dataformats VALUES ( '124', '5', '10.0000000000', '14.9000000000', '', 
NULL, '16770560');
INSERT INTO dataformats VALUES ( '125', '5', '15.0000000000', '50.0000000000', '', 
NULL, '15774720');
INSERT INTO dataformats VALUES ( '126', '21', '128.0000000000', '128.0000000000', 
'Hoiatus, N+S!', '9869055', '13158600');
INSERT INTO dataformats VALUES ( '127', '21', '318.0000000000', '318.0000000000', 
'Härm.hoiatus, N+S!', '16744319', '13158600');
INSERT INTO dataformats VALUES ( '128', '21', '312.0000000000', '312.0000000000', 
'Härm.hoiat., niiske!', '16744319', '13158600');
INSERT INTO dataformats VALUES ( '129', '21', '126.0000000000', '126.0000000000', 
'Lumine!', '16711680', '11842740');
INSERT INTO dataformats VALUES ( '130', '21', '324.0000000000', '324.0000000000', 
'Härmatise hoiatus!', '14448840', '13158600');
INSERT INTO dataformats VALUES ( '131', '21', '316.0000000000', '316.0000000000', 
'Lumine!', '16711680', '11842740');
INSERT INTO dataformats VALUES ( '132', '1', '0.0000000000', '1.9000000000', '', NULL, 
'16769024');
INSERT INTO dataformats VALUES ( '134', '3', '-50.0000000000', '50.0000000000', '', 
NULL, '16777215');
INSERT INTO dataformats VALUES ( '135', '8', '26.0000000000', '2000.0000000000', '', 
'9868950', '15774720');
INSERT INTO dataformats VALUES ( '136', '21', '426.0000000000', '426.0000000000', 
'Lumine!', '16711680', '11842740');
INSERT INTO dataformats VALUES ( '137', '21', '127.0000000000', '127.0000000000', 
'Hoiatus, JÄÄ!', '14448840', '16711680');
INSERT INTO dataformats VALUES ( '138', '21', '121.0000000000', '121.0000000000', 
'Kuiv', '13158600', '16777215');
INSERT INTO dataformats VALUES ( '139', '21', '326.0000000000', '326.0000000000', 
'Lumine!', '16711680', '11842740');
INSERT INTO dataformats VALUES ( '143', '16', '-4.9000000000', '-0.1000000000', '', 
NULL, '15774720');
INSERT INTO dataformats VALUES ( '145', '15', '0.0000000000', '1.9000000000', '', '0', 
'16769024');
INSERT INTO dataformats VALUES ( '146', '16', '0.0000000000', '1.9000000000', '', '0', 
'16769024');


now see results to the following queries:
(note that the less and more are substituted with ( and ) respectively to avoid 
skipping text inbetween those)

mysql> select * from dataformats where datatype_id=16;
+-----+-------------+----------------+---------------+-----------+-----------+-----------+
| id  | datatype_id | minvalue       | maxvalue      | valuename | forecolor | 
|backcolor |
+-----+-------------+----------------+---------------+-----------+-----------+-----------+
| 144 |          16 | -49.0000000000 | -5.0000000000 |           |      NULL |  
|16777215 |
| 143 |          16 |  -4.9000000000 | -0.1000000000 |           |      NULL |  
|15774720 |
| 146 |          16 |   0.0000000000 |  1.9000000000 |           |         0 |  
|16769024 |
|  88 |          16 |   2.0000000000 | 49.0000000000 |           |      NULL |  
|16777215 |
+-----+-------------+----------------+---------------+-----------+-----------+-----------+
4 rows in set (0.01 sec)

mysql> select * from dataformats where minvalue(=1 and maxvalue)=1 and datatype_id=16;
+-----+-------------+--------------+--------------+-----------+-----------+-----------+
| id  | datatype_id | minvalue     | maxvalue     | valuename | forecolor | backcolor |
+-----+-------------+--------------+--------------+-----------+-----------+-----------+
| 146 |          16 | 0.0000000000 | 1.9000000000 |           |         0 |  16769024 |
+-----+-------------+--------------+--------------+-----------+-----------+-----------+
1 row in set (0.01 sec)

mysql> select * from dataformats where minvalue(=1 and maxvalue)=-1 and datatype_id=16;
+-----+-------------+---------------+---------------+-----------+-----------+-----------+
| id  | datatype_id | minvalue      | maxvalue      | valuename | forecolor | 
|backcolor |
+-----+-------------+---------------+---------------+-----------+-----------+-----------+
| 143 |          16 | -4.9000000000 | -0.1000000000 |           |      NULL |  
|15774720 |
| 146 |          16 |  0.0000000000 |  1.9000000000 |           |         0 |  
|16769024 |
+-----+-------------+---------------+---------------+-----------+-----------+-----------+
2 rows in set (0.00 sec)

mysql> select * from dataformats where minvalue(=-1 and maxvalue)=-1 and 
datatype_id=16;
Empty set (0.00 sec)

mysql>

BUG! Here is something wrong, because afaik -4.9 is less than -1 and -0.1 is more than 
-1 .. but no records returned
        
>Originator:    [EMAIL PROTECTED]
>Organization:
  Tradenet Systems, Ltd.
>MySQL support: none 
>Synopsis:      select ill-behaviour
>Severity:      critical
>Priority:      high
>Category:      mysql
>Class:         sw-bug
>Release:       mysql-3.22.27 (Source distribution)
>Server: /usr/local/bin/mysqladmin  Ver 7.11 Distrib 3.22.27, for pc-linux-gnu on i686
TCX Datakonsult AB, by Monty

Server version          3.22.27-log
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 17 days 16 hours 55 sec

Threads: 1  Questions: 30665  Slow queries: 30  Opens: 99  Flush tables: 1  Open 
tables: 63
>Environment:
System: Linux intranet.internal 2.2.16 #4 SMP Thu Dec 28 12:37:11 GMT-2 2000 i586 
unknown
Architecture: i586

Some paths:  /usr/bin/perl /usr/bin/make /usr/bin/gmake /usr/bin/gcc /usr/bin/cc
GCC: Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
Compilation info: CC='gcc'  CFLAGS=''  CXX='c++'  CXXFLAGS=''  LDFLAGS=''
Configure command: ./configure 
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