Index: views_cache.inc =================================================================== RCS file: /cvs/drupal/contributions/modules/views/Attic/views_cache.inc,v retrieving revision 1.2.2.18 diff -u -r1.2.2.18 views_cache.inc --- views_cache.inc 14 Jul 2007 19:12:02 -0000 1.2.2.18 +++ views_cache.inc 23 Sep 2008 08:45:52 -0000 @@ -69,11 +69,16 @@ global $locale; if (!$views_tables) { - $data = cache_get("views_tables:$locale", 'cache_views'); - $cache = unserialize($data->data); - - if (is_array($cache)) { - $views_tables = $cache; + $tables = cache_get("views_tables_tables:$locale", 'cache_views'); + $filters = cache_get("views_tables_filters:$locale", 'cache_views'); + $fields = cache_get("views_tables_fields:$locale", 'cache_views'); + $sorts = cache_get("views_tables_sorts:$locale", 'cache_views'); + + if (is_object($tables) && is_object($filters) && is_object($fields) && is_object($sorts)) { + $views_tables['tables'] = unserialize($tables->data); + $views_tables['filters'] = unserialize($filters->data); + $views_tables['fields'] = unserialize($fields->data); + $views_tables['sorts'] = unserialize($sorts->data); } else { $table_data = module_invoke_all('views_tables'); @@ -143,7 +148,10 @@ } } } - cache_set("views_tables:$locale", 'cache_views', serialize($views_tables)); + cache_set("views_tables_tables:$locale", 'cache_views', serialize($views_tables['tables'])); + cache_set("views_tables_filters:$locale", 'cache_views', serialize($views_tables['filters'])); + cache_set("views_tables_fields:$locale", 'cache_views', serialize($views_tables['fields'])); + cache_set("views_tables_sorts:$locale", 'cache_views', serialize($views_tables['sorts'])); } } return ($full ? $views_tables : $views_tables['tables']);