diff --git a/plugins/views_plugin_cache.inc b/plugins/views_plugin_cache.inc index a8064c1..c47bc06 100644 --- a/plugins/views_plugin_cache.inc +++ b/plugins/views_plugin_cache.inc @@ -256,18 +256,20 @@ class views_plugin_cache extends views_plugin { global $user; if (!isset($this->_results_key)) { - - $build_info = $this->view->build_info; - - $query_plugin = $this->view->display_handler->get_plugin('query'); - - foreach (array('query','count_query') as $index) { - // If the default query back-end is used generate SQL query strings from - // the query objects. - if ($build_info[$index] instanceof SelectQueryInterface) { - $query = clone $build_info[$index]; - $query->preExecute(); - $build_info[$index] = (string)$query; + if (!empty($this->view->query->options['disable_sql_rewrite'])) { + $build_info['where'] = $this->view->query->where; + $build_info['having'] = $this->view->query->having; + } + else { + $build_info = $this->view->build_info; + $query_plugin = $this->view->display_handler->get_plugin('query'); + + foreach (array('query','count_query') as $index) { + // If the default query back-end is used generate SQL query strings from + // the query objects. + if ($build_info[$index] instanceof SelectQueryInterface) { + $build_info[$index] = (string) $query; + } } } $key_data = array(