#47547 [Opn->Bgs]: MYSQLI_PRI_KEY_FLAG is not set when ORDER BY is used on LEFT JOINED table field

From: Date: Tue, 21 Apr 2009 07:03:42 +0000
Subject: #47547 [Opn->Bgs]: MYSQLI_PRI_KEY_FLAG is not set when ORDER BY is used on LEFT JOINED table field
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-136058@lists.php.net to get a copy of this message
ID: 47547 Updated by: jani@php.net Reported By: rok dot meglic at gmail dot com -Status: Open +Status: Bogus Bug Type: MySQLi related Operating System: * PHP Version: 5.2CVS-2009-03-02 (CVS) New Comment: Please report such bugs to MySQL. field->flags comes from call to mysql_fetch_field().. Previous Comments: ------------------------------------------------------------------------ [2009-03-02 18:41:09] rok dot meglic at gmail dot com SQL EXPORT: CREATE TABLE c_news ( id int(10) unsigned NOT NULL auto_increment, lang varchar(2) character set utf8 collate utf8_slovenian_ci NOT NULL default '', title varchar(200) character set utf8 collate utf8_slovenian_ci NOT NULL default '', summary text character set utf8 collate utf8_slovenian_ci, content text character set utf8 collate utf8_slovenian_ci, picture varchar(255) character set utf8 collate utf8_slovenian_ci default NULL, picture_small varchar(255) character set utf8 collate utf8_slovenian_ci default NULL, video_pic varchar(255) character set utf8 collate utf8_slovenian_ci default NULL, video_clip varchar(255) character set utf8 collate utf8_slovenian_ci default NULL, valid_from date default NULL, valid_till datetime default NULL, deleted tinyint(1) default '0', news_date date default NULL, na_naslovnici tinyint(1) default NULL, area int(11) default NULL, sub_area int(11) default NULL, sub_area1 int(11) default NULL, type varchar(255) character set utf8 collate utf8_slovenian_ci default NULL, featured tinyint(1) default '0', news_gallery_id varchar(11) default NULL, PRIMARY KEY (id), FULLTEXT KEY search_fields (title,summary,content) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=966 ; CREATE TABLE c_news_categories ( id int(11) NOT NULL auto_increment, name varchar(255) collate utf8_slovenian_ci NOT NULL, parent_id int(11) default NULL, sub_parent_id int(11) default NULL, order_num int(11) default NULL, deleted tinyint(1) default '0', PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_slovenian_ci CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=59 ; ------------------------------------------------------------------------ [2009-03-02 18:38:46] rok dot meglic at gmail dot com Description: ------------ After we LEFT JOIN two tables and use ORDER BY on foreign table field the MySQLI doesn't return the primary key flag correctly trough fetch_field operation. The result is the same regardless of OS. MySQL 5.x is used. Reproduce code: --------------- $query = "select cn.id from c_news cn LEFT JOIN c_news_categories cc ON cc.id = cn.area ORDER BY cc.name"; // if we dont use ORDER BY cc.name, the primary flag is set correctly if ($result = $mysqli->query($query)) { while ($finfo = $result->fetch_field()) { printf("Flags: %d\n", $finfo->flags); printf("Primary key: %d\n\n", (bool) ($finfo->flags & MYSQLI_PRI_KEY_FLAG)); } $result->close(); } Expected result: ---------------- Flags: 49699 Primary key: true Actual result: -------------- Flags: 32801 Primary key: 0 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=47547&edit=1

« previous php.bugs (#136058) next »