Hi,
I know when pagination is false, CActiveDataProvider use from single query.
So I write this code:
$dependency = new CDbCacheDependency('SELECT MAX(id) FROM user');
$dataProvider = new CActiveDataProvider(User::model()->cache(20, $dependency), array('pagination'=>false));
When data was cached, This single query executed:
SELECT MAX(id) FROM user
After 20 sec, cache was refreshed and so have this queries:
SELECT * FROM `user` `t`
SELECT MAX(id) FROM user
Also if I insert one record in User table, because it is in dependency, this queries executed:
SELECT * FROM `user` `t`
SELECT MAX(id) FROM user
All here seem ok, and no problem.
Now I try another test with this sample query:
$dependency = new CDbCacheDependency('SELECT MAX(id) FROM user');
$dataProvider = new CActiveDataProvider(User::model()->cache(20, $dependency, 2));
I know in the above code CActiveDataProvider use from two queries.
When data was cached, executed these queries:
SELECT MAX(id) FROM user
SELECT MAX(id) FROM user
It’s strange! (Why?!)
And after 20 sec, cache was refreshed and I see executed these queries:
SELECT COUNT(*) FROM `user` `t`
SELECT MAX(id) FROM user
SELECT * FROM `user` `t` LIMIT 10
SELECT MAX(id) FROM user
Now, I have 4 queries here!!!
Finally I insert one record in table and because dependency must refresh cache, But I see 6 queries here (and not 4 queries) !!!
SELECT MAX(id) FROM user
SELECT COUNT(*) FROM `user` `t`
SELECT MAX(id) FROM user
SELECT MAX(id) FROM user
SELECT * FROM `user` `t` LIMIT 10
SELECT MAX(id) FROM user
This behavior is very strange! (Why?!)
I thinks it’s a bug.
Thanks
Nabi