shannah / xataface

Framework for building data-driven web applications in PHP and MySQL
http://xataface.com
GNU General Public License v2.0
134 stars 57 forks source link

Query Caching dependency tracking is not working for views and tables with __sql__ #97

Open schirner opened 6 years ago

schirner commented 6 years ago

Enabling query caching as outlined in here works. The interface becomes much more responsive (especially with larger tables, and complex views).

However, the dependency tracking on when to invalidate the cached query does not work. The dependencies in the table's fields.ini, __dependencies__ are not observed. For tables that do have a __sql__, the dependency to itself is also not working. The cache is never invalidated, even when changing the table. The same limitation holds true for views. View caching works nicely (yay!), but dependency tracking with __source_tables__ and __dependencies__ defined in fields.ini does not work.

The cache invalidation seems only to work on simple tables (no __sql__ statement that grafts other fields).

I validated the table dataface__mtimes. Its entries get updated properly. The challenge seems to be with recording and checking the dependencies.