experimental: if using adaptive/unread mode w/ auto catchup don't calculate offsets because we're only interested in top $limit headlines anyway

This commit is contained in:
Andrew Dolgov 2015-08-05 10:13:30 +03:00
parent 332ff5cfb8
commit 0bd172cd6a
2 changed files with 13 additions and 4 deletions

View File

@ -686,7 +686,8 @@ class API extends Handler {
"offset" => $offset, "offset" => $offset,
"since_id" => $since_id, "since_id" => $since_id,
"include_children" => $include_nested, "include_children" => $include_nested,
"check_first_id" => $check_first_id "check_first_id" => $check_first_id,
"api_request" => true
); );
$qfh_ret = queryFeedHeadlines($params); $qfh_ret = queryFeedHeadlines($params);

View File

@ -463,6 +463,7 @@
$override_vfeed = isset($params["override_vfeed"]) ? $params["override_vfeed"] : false; $override_vfeed = isset($params["override_vfeed"]) ? $params["override_vfeed"] : false;
$start_ts = isset($params["start_ts"]) ? $params["start_ts"] : false; $start_ts = isset($params["start_ts"]) ? $params["start_ts"] : false;
$check_first_id = isset($params["check_first_id"]) ? $params["check_first_id"] : false; $check_first_id = isset($params["check_first_id"]) ? $params["check_first_id"] : false;
$api_request = isset($params["api_request"]) ? $params["api_request"] : false;
$ext_tables_part = ""; $ext_tables_part = "";
$query_strategy_part = ""; $query_strategy_part = "";
@ -491,6 +492,7 @@
} }
$view_query_part = ""; $view_query_part = "";
$disable_offsets = false;
if ($view_mode == "adaptive") { if ($view_mode == "adaptive") {
if ($search) { if ($search) {
@ -502,9 +504,10 @@
if ($cat_view && $feed > 0 && $include_children) if ($cat_view && $feed > 0 && $include_children)
$unread += getCategoryChildrenUnread($feed); $unread += getCategoryChildrenUnread($feed);
if ($unread > 0) if ($unread > 0) {
$view_query_part = " unread = true AND "; $view_query_part = " unread = true AND ";
$disable_offsets = !$api_request && get_pref("CDM_AUTO_CATCHUP");
}
} }
} }
@ -522,6 +525,7 @@
if ($view_mode == "unread" && $feed != -6) { if ($view_mode == "unread" && $feed != -6) {
$view_query_part = " unread = true AND "; $view_query_part = " unread = true AND ";
$disable_offsets = !$api_request && get_pref("CDM_AUTO_CATCHUP");
} }
if ($limit > 0) { if ($limit > 0) {
@ -762,6 +766,10 @@
} }
} }
if ($disable_offsets) {
$offset_query_part = "";
}
$query = "SELECT DISTINCT $query = "SELECT DISTINCT
date_entered, date_entered,
guid, guid,