aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2019-10-23 02:12:49 +0200
committerGravatar GitHub <noreply@github.com> 2019-10-23 02:12:49 +0200
commitfdfd8ce9be182943e73d20ec3bff4d560c5b7503 (patch)
tree50a3eb3de6cc3a9842b6dbdf2d1ca3b5457a3c1d
parentcc0db9af4f980829faa4bf0960617807b32fb4fa (diff)
Workaround for MySQL limitation 1093 (#2586)
* Workaround for MySQL limitation 1093 https://github.com/FreshRSS/FreshRSS/pull/2335#issuecomment-545194606 including minor Travis fixes
-rw-r--r--app/Models/CategoryDAO.php2
-rw-r--r--app/Models/EntryDAO.php14
-rw-r--r--lib/lib_rss.php4
-rw-r--r--p/themes/base-theme/template.css1
4 files changed, 13 insertions, 8 deletions
diff --git a/app/Models/CategoryDAO.php b/app/Models/CategoryDAO.php
index 1b8717e83..210830640 100644
--- a/app/Models/CategoryDAO.php
+++ b/app/Models/CategoryDAO.php
@@ -166,7 +166,7 @@ class FreshRSS_CategoryDAO extends Minz_ModelPdo implements FreshRSS_Searchable
}
}
Minz_Log::error(__method__ . ' error: ' . json_encode($info));
- return false;
+ yield false;
}
}
diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php
index 6a8a25b3e..99e99f463 100644
--- a/app/Models/EntryDAO.php
+++ b/app/Models/EntryDAO.php
@@ -560,13 +560,16 @@ SQL;
$sql .= ' AND NOT EXISTS (SELECT 1 FROM `_entrytag` WHERE id_entry = id)';
}
if (!empty($options['keep_min']) && $options['keep_min'] > 0) {
- $sql .= ' AND `lastSeen` < (SELECT e2.`lastSeen` FROM `_entry` e2 WHERE e2.id_feed = :id_feed2'
- . ' ORDER BY e2.`lastSeen` DESC LIMIT 1 OFFSET :keep_min)';
+ //Double SELECT for MySQL workaround ERROR 1093 (HY000)
+ $sql .= ' AND `lastSeen` < (SELECT `lastSeen`'
+ . ' FROM (SELECT e2.`lastSeen` FROM `_entry` e2 WHERE e2.id_feed = :id_feed2'
+ . ' ORDER BY e2.`lastSeen` DESC LIMIT 1 OFFSET :keep_min) last_seen2)';
$params[':id_feed2'] = $id_feed;
$params[':keep_min'] = (int)$options['keep_min'];
}
//Keep at least the articles seen at the last refresh
- $sql .= ' AND `lastSeen` < (SELECT MAX(e3.`lastSeen`) FROM `_entry` e3 WHERE e3.id_feed = :id_feed3)';
+ $sql .= ' AND `lastSeen` < (SELECT maxlastseen'
+ . ' FROM (SELECT MAX(e3.`lastSeen`) AS maxlastseen FROM `_entry` e3 WHERE e3.id_feed = :id_feed3) last_seen3)';
$params[':id_feed3'] = $id_feed;
//==Inclusions==
@@ -578,8 +581,9 @@ SQL;
$params[':max_last_seen'] = $now->format('U');
}
if (!empty($options['keep_max']) && $options['keep_max'] > 0) {
- $sql .= ' OR `lastSeen` <= (SELECT e4.`lastSeen` FROM `_entry` e4 WHERE e4.id_feed = :id_feed4'
- . ' ORDER BY e4.`lastSeen` DESC LIMIT 1 OFFSET :keep_max)';
+ $sql .= ' OR `lastSeen` <= (SELECT `lastSeen`'
+ . ' FROM (SELECT e4.`lastSeen` FROM `_entry` e4 WHERE e4.id_feed = :id_feed4'
+ . ' ORDER BY e4.`lastSeen` DESC LIMIT 1 OFFSET :keep_max) last_seen4)';
$params[':id_feed4'] = $id_feed;
$params[':keep_max'] = (int)$options['keep_max'];
}
diff --git a/lib/lib_rss.php b/lib/lib_rss.php
index 2a230e6f8..f4b5c68e6 100644
--- a/lib/lib_rss.php
+++ b/lib/lib_rss.php
@@ -301,9 +301,9 @@ function invalidateHttpCache($username = '') {
$username = Minz_Session::param('currentUser', '_');
}
$ok = @touch(DATA_PATH . '/users/' . $username . '/log.txt');
- if (!$ok) {
+ //if (!$ok) {
//TODO: Display notification error on front-end
- }
+ //}
return $ok;
}
diff --git a/p/themes/base-theme/template.css b/p/themes/base-theme/template.css
index 2d76c9b4d..ebceea526 100644
--- a/p/themes/base-theme/template.css
+++ b/p/themes/base-theme/template.css
@@ -101,6 +101,7 @@ label {
input {
width: 180px;
}
+
input[type=number] {
width: 6em;
}