Problem using date_format and join in cdbcriteria

Hi all.

I’m having a problem where AR appears to be stripping out my call to the date_format function.

It works fine when I use the following simple request




        $criteria = new CDbCriteria ;

        $criteria->select    = 'article_id,

                                    DATE_FORMAT(t.updated_at, "%d %M %Y") AS date,

                                    DATE_FORMAT(t.updated_at, "%l:%i") AS time' ;

                    

        $selected = BlockArticles::model()->findAll( $criteria ) ;



generating the following




SELECT article_id,

                                    DATE_FORMAT(t.updated_at, "%d %M %Y")

AS date,

                                    DATE_FORMAT(t.updated_at, "%l:%i") AS

time FROM `BlockArticles` `t`



However, when I try an eager load, by adding with(‘article’), like so




        $criteria = new CDbCriteria ;

        $criteria->select    = 'article_id,

                                    DATE_FORMAT(t.updated_at, "' . Yii::app()->params['DBDateFormat'] . '") AS date,

                                    DATE_FORMAT(t.updated_at, "%l:%i") AS time' ;

                    

        $selected = BlockArticles::model()->with('article')->findAll( $criteria ) ;



the generated sql becomes




SELECT `t`.`article_id` AS `t0_c3`, `t`.`updated_at` AS

`t0_c7`, "%d %M %Y") AS date, `t`.`updated_at` AS `t0_c7`, "%l:%i") AS

time, `t`.`id` AS `t0_c0`, `article`.`id` AS `t1_c0`, `article`.`author_id`

AS `t1_c1`, `article`.`member_id` AS `t1_c2`, `article`.`related_member_id`

AS `t1_c3`, `article`.`article_type_id` AS `t1_c4`,

`article`.`previous_linked_article_id` AS `t1_c5`,

`article`.`next_linked_article_id` AS `t1_c6`,

`article`.`parent_article_item_id` AS `t1_c7`,

`article`.`child_article_item_id` AS `t1_c8`, `article`.`dateLatestAdded`

AS `t1_c9`, `article`.`priority` AS `t1_c10`, `article`.`article_heading`

AS `t1_c11`, `article`.`article` AS `t1_c12`, `article`.`date` AS `t1_c13`,

`article`.`secondaryDate` AS `t1_c14`, `article`.`approved_for_display` AS

`t1_c15`, `article`.`approved_at` AS `t1_c16`, `article`.`approved_by` AS

`t1_c17`, `article`.`created_at` AS `t1_c18`, `article`.`created_by` AS

`t1_c19`, `article`.`updated_at` AS `t1_c20`, `article`.`updated_by` AS

`t1_c21`, `article`.`deleted_at` AS `t1_c22`, `article`.`deleted_by` AS

`t1_c23` FROM `BlockArticles` `t`  LEFT OUTER JOIN `articles`

`article` ON (`t`.`article_id`=`article`.`id`) 



where the date_format(t.updated_at has been stripped out and replaced by t.updated_at AS t0_c7

In case the relationship is important, this is defined in BlockArticles as




	public function relations()

	{

		// NOTE: you may need to adjust the relation name and the related

		// class name for the relations automatically generated below.

		return array(

			'article' => array(self::BELONGS_TO, 'Articles', 'article_id'),


		);

	}



Can anyone see anything wrong with what I’m doing that could cause this, or is this a bug somewhere in the criteria processing?