Activity log for bug #924728

Date Who What changed Old value New value Message
2012-02-01 08:34:57 TitanKing bug added bug
2012-02-01 08:35:36 TitanKing description By default a query is assumed to make the array key the id of the primary key field. This caused problems with other developers before as it assumes that the primary field will be unique and auto-incremented. I think the logic behind this is very limited and will in the future cause other potential bugs. The current bug I am battling is this: Assuming we dont have an id field and only have to key field, something like this: CREATE TABLE `pds_core_user_role_permissions` ( `user_role_id` int(10) NOT NULL DEFAULT '0', `menu_id` varchar(32) NOT NULL, PRIMARY KEY (`user_role_id`,`menu_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Assuming we add values like these, INSERT INTO pds_core_user_role_permissions VALUES ('1', '1016054546'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1210756465'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '131201277'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1363712008'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1405303115'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1411278578'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1440418834'); Now the system will only return a single row as __auto__ assumed incorrectly. By default a query is assumed to make the array key the id of the primary key field. This caused problems with other developers before as it assumes that the primary field will be unique and auto-incremented. I think the logic behind this is very limited and will in the future cause other potential bugs. The current bug I am battling is this: Assuming we dont have an id field and only have to key field, something like this: CREATE TABLE `pds_core_user_role_permissions` (   `user_role_id` int(10) NOT NULL DEFAULT '0',   `menu_id` varchar(32) NOT NULL,   PRIMARY KEY (`user_role_id`,`menu_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Assuming we add values like these, INSERT INTO pds_core_user_role_permissions VALUES ('1', '1016054546'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1210756465'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '131201277'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1363712008'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1405303115'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1411278578'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1440418834'); Now the system will only return a single row as __auto__ assumed incorrectly. It basicly assigned 1 as the key array field hence overriding it every time.
2012-02-01 08:37:05 TitanKing phpdevshell: status New In Progress
2012-02-01 08:37:10 TitanKing phpdevshell: importance Undecided High
2012-02-01 08:37:14 TitanKing phpdevshell: assignee TitanKing (titan-phpdevshell)
2012-02-01 08:37:17 TitanKing phpdevshell: milestone 3.1.3-stable
2012-02-01 08:37:43 TitanKing description By default a query is assumed to make the array key the id of the primary key field. This caused problems with other developers before as it assumes that the primary field will be unique and auto-incremented. I think the logic behind this is very limited and will in the future cause other potential bugs. The current bug I am battling is this: Assuming we dont have an id field and only have to key field, something like this: CREATE TABLE `pds_core_user_role_permissions` (   `user_role_id` int(10) NOT NULL DEFAULT '0',   `menu_id` varchar(32) NOT NULL,   PRIMARY KEY (`user_role_id`,`menu_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Assuming we add values like these, INSERT INTO pds_core_user_role_permissions VALUES ('1', '1016054546'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1210756465'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '131201277'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1363712008'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1405303115'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1411278578'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1440418834'); Now the system will only return a single row as __auto__ assumed incorrectly. It basicly assigned 1 as the key array field hence overriding it every time. By default a query is assumed to make the array key the id of the primary key field. This caused problems with other developers before as it assumes that the primary field will be unique and auto-incremented. I think the logic behind this is very limited and will in the future cause other potential bugs. The current bug I am battling is this: Assuming we dont have an id field and only have to key field, something like this: CREATE TABLE `pds_core_user_role_permissions` (   `user_role_id` int(10) NOT NULL DEFAULT '0',   `menu_id` varchar(32) NOT NULL,   PRIMARY KEY (`user_role_id`,`menu_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Assuming we add values like these, INSERT INTO pds_core_user_role_permissions VALUES ('1', '1016054546'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1210756465'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '131201277'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1363712008'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1405303115'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1411278578'); INSERT INTO pds_core_user_role_permissions VALUES ('1', '1440418834'); Now the system will only return a single row when queried as __auto__ assumed incorrectly. It basicly assigned 1 as the key array field hence overriding it every time.
2012-02-07 09:29:22 TitanKing phpdevshell: status In Progress Fix Released