aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2022-08-25 23:16:24 +0200
committerGravatar GitHub <noreply@github.com> 2022-08-25 23:16:24 +0200
commit03f5a42640928a11cbf5e7c63642c0e7eeca4706 (patch)
tree0b047613f862806b7aa3b1466f97a5eed85aae5a
parent2b1aa7eedeba6058b8cc7cca261bf379462f3655 (diff)
Fix MariaDB case sensitivity (#4537)
* Fix MariaDB case sensitivity #fix https://github.com/FreshRSS/FreshRSS/issues/4535 Collation regression from https://github.com/FreshRSS/FreshRSS/pull/4505 * faster * Minor syntax * Minor parentheses
-rw-r--r--app/Models/EntryDAO.php24
1 files changed, 16 insertions, 8 deletions
diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php
index 7cefc8c0e..424f682a8 100644
--- a/app/Models/EntryDAO.php
+++ b/app/Models/EntryDAO.php
@@ -978,18 +978,26 @@ SQL;
if ($filter->getSearch()) {
foreach ($filter->getSearch() as $search_value) {
- $sub_search .= 'AND (' . $alias . 'title LIKE ? OR ' .
- (static::isCompressed() ? 'UNCOMPRESS(' . $alias . 'content_bin)' : '' . $alias . 'content') . ' LIKE ?) ';
- $values[] = "%{$search_value}%";
- $values[] = "%{$search_value}%";
+ if (static::isCompressed()) { // MySQL-only
+ $sub_search .= 'AND CONCAT(' . $alias . 'title, UNCOMPRESS(' . $alias . 'content_bin)) LIKE ? ';
+ $values[] = "%{$search_value}%";
+ } else {
+ $sub_search .= 'AND (' . $alias . 'title LIKE ? OR ' . $alias . 'content LIKE ?) ';
+ $values[] = "%{$search_value}%";
+ $values[] = "%{$search_value}%";
+ }
}
}
if ($filter->getNotSearch()) {
foreach ($filter->getNotSearch() as $search_value) {
- $sub_search .= 'AND ' . $alias . 'title NOT LIKE ? AND ' .
- (static::isCompressed() ? 'UNCOMPRESS(' . $alias . 'content_bin)' : '' . $alias . 'content') . ' NOT LIKE ? ';
- $values[] = "%{$search_value}%";
- $values[] = "%{$search_value}%";
+ if (static::isCompressed()) { // MySQL-only
+ $sub_search .= 'AND CONCAT(' . $alias . 'title, UNCOMPRESS(' . $alias . 'content_bin)) NOT LIKE ? ';
+ $values[] = "%{$search_value}%";
+ } else {
+ $sub_search .= 'AND ' . $alias . 'title NOT LIKE ? AND ' . $alias . 'content NOT LIKE ? ';
+ $values[] = "%{$search_value}%";
+ $values[] = "%{$search_value}%";
+ }
}
}