#47547 [Com]: MYSQLI_PRI_KEY_FLAG is not set when ORDER BY is used on LEFT JOINED table field

From: Date: Mon, 02 Mar 2009 18:41:10 +0000
Subject: #47547 [Com]: 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-134331@lists.php.net to get a copy of this message
 ID:               47547
 Comment by:       rok dot meglic at gmail dot com
 Reported By:      rok dot meglic at gmail dot com
 Status:           Open
 Bug Type:         MySQLi related
 Operating System: Linux;Windows
 PHP Version:      5.2CVS-2009-03-02 (CVS)
 New Comment:

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 ;


Previous Comments:
------------------------------------------------------------------------

[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



Thread (4 messages)

« previous php.bugs (#134331) next »