#47547 [Opn->Bgs]: MYSQLI_PRI_KEY_FLAG is not set when ORDER BY is used on LEFT JOINED table field
| From: | jani@php.net | 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