[rhn-users] Mysql query return different result after upgrade to Mysql 4.1.20

Agustiyanto, Pujo pagustiyanto at louisberger.com
Tue Sep 5 22:45:26 UTC 2006


I just upgrade my mysql to version 4.1.20
but I found that one of my query does not return the same result as my
older version of mysql.
I do not know if this is a known bug or not, or I just got my mysql
configuration wrong.
I tried the query against this records

CREATE TABLE `portfolio` (
  `record_id` int(11) NOT NULL auto_increment,
  `company_id` int(11) NOT NULL default '0',
  `FY` int(4) NOT NULL default '0',
  `started_mon` int(11) NOT NULL default '0',
  `field_name` enum('equity','owned_share') NOT NULL default 'equity',
  `field_value` float NOT NULL default '0',
  PRIMARY KEY  (`record_id`),
  UNIQUE KEY `field_name` (`field_name`,`company_id`,`FY`,`started_mon`)
);


INSERT INTO `portfolio` VALUES (1, 4, 2006, 1, 'equity', 558000);
INSERT INTO `portfolio` VALUES (2, 4, 2006, 1, 'owned_share', 0.67);
INSERT INTO `portfolio` VALUES (3, 12, 2005, 1, 'owned_share', 0.88);
INSERT INTO `portfolio` VALUES (4, 10, 2005, 1, 'owned_share', 0.5);
INSERT INTO `portfolio` VALUES (5, 6, 2006, 1, 'equity', 6.191e+06);
INSERT INTO `portfolio` VALUES (6, 14, 2005, 1, 'owned_share', 0.67);
INSERT INTO `portfolio` VALUES (7, 6, 2006, 1, 'owned_share', 0.53);
INSERT INTO `portfolio` VALUES (8, 5, 2005, 1, 'owned_share', 1);
INSERT INTO `portfolio` VALUES (9, 8, 2006, 1, 'owned_share', 0.5);
INSERT INTO `portfolio` VALUES (10, 4, 2005, 1, 'equity', 550000);
INSERT INTO `portfolio` VALUES (11, 4, 2005, 1, 'owned_share', 0.45);
INSERT INTO `portfolio` VALUES (12, 12, 2006, 1, 'equity', 2.067e+06);
INSERT INTO `portfolio` VALUES (13, 12, 2005, 1, 'equity', 2e+06);
INSERT INTO `portfolio` VALUES (14, 7, 2005, 1, 'equity', 192000);
INSERT INTO `portfolio` VALUES (15, 7, 2006, 1, 'owned_share', 1);
INSERT INTO `portfolio` VALUES (16, 7, 2005, 1, 'owned_share', 0.55);
INSERT INTO `portfolio` VALUES (17, 6, 2005, 1, 'equity', 6e+06);
INSERT INTO `portfolio` VALUES (18, 6, 2005, 1, 'owned_share', 1);
INSERT INTO `portfolio` VALUES (19, 1, 2000, 1, 'equity', 0);
INSERT INTO `portfolio` VALUES (20, 1, 2000, 1, 'owned_share', 1);
INSERT INTO `portfolio` VALUES (21, 9, 2006, 1, 'equity', 1.887e+06);
INSERT INTO `portfolio` VALUES (22, 9, 2005, 1, 'equity', 1.8e+06);
INSERT INTO `portfolio` VALUES (23, 9, 2006, 1, 'owned_share', 0.5);
INSERT INTO `portfolio` VALUES (24, 9, 2005, 1, 'owned_share', 1);
INSERT INTO `portfolio` VALUES (25, 11, 2006, 1, 'equity', 1.3161e+07);
INSERT INTO `portfolio` VALUES (26, 11, 2005, 1, 'equity', 1.3e+07);
INSERT INTO `portfolio` VALUES (27, 11, 2006, 1, 'owned_share', 0.495);
INSERT INTO `portfolio` VALUES (28, 11, 2005, 1, 'owned_share', 0.49);
INSERT INTO `portfolio` VALUES (29, 14, 2004, 1, 'equity', 125000);
INSERT INTO `portfolio` VALUES (30, 8, 2005, 1, 'equity', 3.283e+06);
INSERT INTO `portfolio` VALUES (31, 8, 2005, 1, 'owned_share', 1);
INSERT INTO `portfolio` VALUES (32, 13, 2006, 1, 'equity', 6.41806e+07);
INSERT INTO `portfolio` VALUES (33, 13, 2005, 1, 'equity', 5.34342e+07);
INSERT INTO `portfolio` VALUES (34, 13, 2000, 1, 'owned_share', 1);
INSERT INTO `portfolio` VALUES (35, 10, 2006, 1, 'equity', 6.746e+06);
INSERT INTO `portfolio` VALUES (36, 10, 2005, 1, 'equity', 6e+06);
INSERT INTO `portfolio` VALUES (37, 14, 2006, 1, 'owned_share', 0.8);
INSERT INTO `portfolio` VALUES (38, 7, 2007, 1, 'owned_share', 1);


When I try this query in MySQL 4.1.20-log

SELECT FY, company_id, field_value
FROM portfolio
WHERE field_name = 'owned_share'
AND (
FY, company_id
)
IN (
SELECT max( FY ) , company_id
FROM portfolio
WHERE field_name = 'owned_share'
AND FY <=2006
AND company_id
IN ( 4, 5, 6, 8, 12, 13, 14, 7, 9, 10, 11 ) 
GROUP BY company_id
)

I got this result
 	
FY    company_id   field_value
2005 	6 	    1
2006 	7 	    1
2006 	8 	    0.5
2006 	9 	    0.5
2005 	11 	    0.49
2006 	14 	    0.8

But when I try this is in MySQL 4.1.11-standard-log
 	
FY  company_id  field_value
2006 	4 	0.67
2005 	5 	1
2006 	6 	0.53
2006 	7 	1
2006 	8 	0.5
2006 	9 	0.5
2005 	10 	0.5
2006 	11 	0.495
2005 	12 	0.88
2000 	13 	1
2006 	14 	0.8


Does anyone has any idea why this is happened?

thanks




More information about the rhn-users mailing list