[TYPO3-core] RFC: Bug #11903: Use separate tables for tags in the caching framework

Oliver Hader oliver at typo3.org
Thu Oct 1 11:15:47 CEST 2009


Hi Xavier,

Xavier Perseguers schrieb:
> As already said, you should be able to see whether your query is DBAL
> compatible even without having a non-MySQL database by simply activating
> DBAL for your test website, it should force SQL Core-integrated parser
> to be used instead of simply passing queries to DBMS.

I installed DBAL with using the native connection and put a debug() call
to ux_t3lib_DB::exec_DELETEquery() when the delete query was built. Then
I modified a regular content element so that cache entries for that page
(id:11) get cleared. The result was this:

DELETE FROM cachingframework_cache_pages
WHERE identifier IN (
  SELECT identifier FROM cachingframework_cache_pages_tags
  WHERE	cachingframework_cache_pages_tags.tag = 'pageId_11'
)

DELETE FROM cachingframework_cache_pages_tags
WHERE cachingframework_cache_pages_tags.tag = 'pageId_11'

DELETE FROM cachingframework_cache_pagesection
WHERE identifier IN (
  SELECT identifier
  FROM cachingframework_cache_pagesection_tags
  WHERE cachingframework_cache_pagesection_tags.tag = 'pageId_11'
)

DELETE FROM cachingframework_cache_pagesection_tags
WHERE cachingframework_cache_pagesection_tags.tag = 'pageId_11'

This looks good and the caches were removed as expected. I just tested
for MySQL. Besides that I stumbled of #12071 while testing...

Generally, I think this approach is much better than trying to find a
multiple table deletion that fits all DBMS.

olly
-- 
Oliver Hader
TYPO3 Release Manager 4.3


More information about the TYPO3-team-core mailing list