Oшибка в 1.1.7 - AR caching

Уже исправленные репорты или принятые предложения
Закрыто
Boar
Сообщения: 3
Зарегистрирован: 2011.03.12, 15:52

Oшибка в 1.1.7 - AR caching

Сообщение Boar »

прочитав про новую "фичу" c кешированием AR (в грядущем релизе 1.1.7) тут
http://www.ramirezcobos.com/2011/02/15/ ... y-caching/

Слил себе обновленные файлы
http://code.google.com/p/yii/source/detail?r=2949

Сразу заметил, что кешируются правильно только запросы, где не нужно биндить параметры
В противном случае (если какие-то параметры биндятся), к примеру
$criteria = new CDbCriteria;
$criteria->select = "keyword";
$criteria->condition = "keyword LIKE :sterm";
$criteria->params = array(":sterm"=>$input."%");
$criteria->group = "popular DESC";
$criteria->limit = $limit;
Всегда возвращается один и тот же ответ, а именно - результат работы самого первого кешированного запроса.

Начал копаться в файлах, ошибку обнаружил здесь
http://code.google.com/p/yii/source/dif ... ommand.php

Код: Выделить всё

$cacheKey='yii:dbquery'.$this->_connection->connectionString.':'.$this->_connection->username;
$cacheKey.=':'.$this->getText().':'.serialize(array_merge($this->_paramLog,$params)); 
Суть проблемы в том, что при enableParamLogging == false, на этапе формирования ключа, массив $params всегда пуст и функция serialize всегда возвращает одно и то же значение.
Как только enableParamLogging устанавливаю в true - ключ генерируется правильно.

Корень проблемы пока не нашел. Если кто-то откапает - дайте знать, пожалуйста.
Очень удобная фича, но пока, конечно, сырая :)
SpiLLeR
Сообщения: 350
Зарегистрирован: 2009.09.17, 16:47
Откуда: Санкт-Петербург
Контактная информация:

Re: Oшибка в 1.1.7 - AR caching

Сообщение SpiLLeR »

+1, удобная фича, но не работает как надо. Кэш не верно работает когда биндишь параметры.
Предупрежден - значит вооружен.
devKP.ru
SpiLLeR
Сообщения: 350
Зарегистрирован: 2009.09.17, 16:47
Откуда: Санкт-Петербург
Контактная информация:

Re: Oшибка в 1.1.7 - AR caching

Сообщение SpiLLeR »

пофиксили
Предупрежден - значит вооружен.
devKP.ru
Закрыто