--- views-cache-modified/views_cache.inc 2007-07-14 12:12:02.000000000 -0700 +++ views/views_cache.inc 2008-02-05 11:58:01.000000000 -0800 @@ -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_array($tables) && is_array($filters) && is_array($fields) && is_array($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']);