aboutsummaryrefslogtreecommitdiff
path: root/app/Models/EntryDAO.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2023-10-30 20:47:50 +0100
committerGravatar GitHub <noreply@github.com> 2023-10-30 20:47:50 +0100
commit0324df6f889f18500cc8d201fdc2845f3e4d1acf (patch)
treefafa9ab06c7fc7a3d48392cd0fd1ac959cc40a37 /app/Models/EntryDAO.php
parent06d00995049db9c7b915f67cfd4a5708aace458f (diff)
SQL increase length of VARCHAR fields (#5756)
* SQL increase length of VARCHAR fields Increase length of all fields, keeping the limits for: * Unique indexes on UTF-8: 191 bytes for MySQL; * Unique indexes on ASCII: 767 bytes for MySQL; * Max URL for external tools: 32768 characters; * Max VARCHAR: 65535 bytes for MySQL; Follow-up of https://github.com/FreshRSS/FreshRSS/pull/5038 Fix https://github.com/FreshRSS/FreshRSS/issues/4986 * Fix length test
Diffstat (limited to 'app/Models/EntryDAO.php')
-rw-r--r--app/Models/EntryDAO.php20
1 files changed, 10 insertions, 10 deletions
diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php
index b9f8d57cb..f7e9ffddc 100644
--- a/app/Models/EntryDAO.php
+++ b/app/Models/EntryDAO.php
@@ -109,18 +109,18 @@ SQL;
}
if ($this->addEntryPrepared) {
$this->addEntryPrepared->bindParam(':id', $valuesTmp['id']);
- $valuesTmp['guid'] = substr($valuesTmp['guid'], 0, 760);
+ $valuesTmp['guid'] = substr($valuesTmp['guid'], 0, 767);
$valuesTmp['guid'] = safe_ascii($valuesTmp['guid']);
$this->addEntryPrepared->bindParam(':guid', $valuesTmp['guid']);
- $valuesTmp['title'] = mb_strcut($valuesTmp['title'], 0, 255, 'UTF-8');
+ $valuesTmp['title'] = mb_strcut($valuesTmp['title'], 0, 65535, 'UTF-8');
$valuesTmp['title'] = safe_utf8($valuesTmp['title']);
$this->addEntryPrepared->bindParam(':title', $valuesTmp['title']);
- $valuesTmp['author'] = mb_strcut($valuesTmp['author'], 0, 255, 'UTF-8');
+ $valuesTmp['author'] = mb_strcut($valuesTmp['author'], 0, 65535, 'UTF-8');
$valuesTmp['author'] = safe_utf8($valuesTmp['author']);
$this->addEntryPrepared->bindParam(':author', $valuesTmp['author']);
$valuesTmp['content'] = safe_utf8($valuesTmp['content']);
$this->addEntryPrepared->bindParam(':content', $valuesTmp['content']);
- $valuesTmp['link'] = substr($valuesTmp['link'], 0, 1023);
+ $valuesTmp['link'] = substr($valuesTmp['link'], 0, 32768);
$valuesTmp['link'] = safe_ascii($valuesTmp['link']);
$this->addEntryPrepared->bindParam(':link', $valuesTmp['link']);
$valuesTmp['date'] = min($valuesTmp['date'], 2147483647);
@@ -134,7 +134,7 @@ SQL;
$valuesTmp['is_favorite'] = $valuesTmp['is_favorite'] ? 1 : 0;
$this->addEntryPrepared->bindParam(':is_favorite', $valuesTmp['is_favorite'], PDO::PARAM_INT);
$this->addEntryPrepared->bindParam(':id_feed', $valuesTmp['id_feed'], PDO::PARAM_INT);
- $valuesTmp['tags'] = mb_strcut($valuesTmp['tags'], 0, 1023, 'UTF-8');
+ $valuesTmp['tags'] = mb_strcut($valuesTmp['tags'], 0, 65535, 'UTF-8');
$valuesTmp['tags'] = safe_utf8($valuesTmp['tags']);
$this->addEntryPrepared->bindParam(':tags', $valuesTmp['tags']);
if (!isset($valuesTmp['attributes'])) {
@@ -215,18 +215,18 @@ SQL;
$this->updateEntryPrepared = $this->pdo->prepare($sql) ?: null;
}
if ($this->updateEntryPrepared) {
- $valuesTmp['guid'] = substr($valuesTmp['guid'], 0, 760);
+ $valuesTmp['guid'] = substr($valuesTmp['guid'], 0, 767);
$valuesTmp['guid'] = safe_ascii($valuesTmp['guid']);
$this->updateEntryPrepared->bindParam(':guid', $valuesTmp['guid']);
- $valuesTmp['title'] = mb_strcut($valuesTmp['title'], 0, 255, 'UTF-8');
+ $valuesTmp['title'] = mb_strcut($valuesTmp['title'], 0, 65535, 'UTF-8');
$valuesTmp['title'] = safe_utf8($valuesTmp['title']);
$this->updateEntryPrepared->bindParam(':title', $valuesTmp['title']);
- $valuesTmp['author'] = mb_strcut($valuesTmp['author'], 0, 255, 'UTF-8');
+ $valuesTmp['author'] = mb_strcut($valuesTmp['author'], 0, 65535, 'UTF-8');
$valuesTmp['author'] = safe_utf8($valuesTmp['author']);
$this->updateEntryPrepared->bindParam(':author', $valuesTmp['author']);
$valuesTmp['content'] = safe_utf8($valuesTmp['content']);
$this->updateEntryPrepared->bindParam(':content', $valuesTmp['content']);
- $valuesTmp['link'] = substr($valuesTmp['link'], 0, 1023);
+ $valuesTmp['link'] = substr($valuesTmp['link'], 0, 32768);
$valuesTmp['link'] = safe_ascii($valuesTmp['link']);
$this->updateEntryPrepared->bindParam(':link', $valuesTmp['link']);
$valuesTmp['date'] = min($valuesTmp['date'], 2147483647);
@@ -243,7 +243,7 @@ SQL;
$this->updateEntryPrepared->bindValue(':is_favorite', $valuesTmp['is_favorite'] ? 1 : 0, PDO::PARAM_INT);
}
$this->updateEntryPrepared->bindParam(':id_feed', $valuesTmp['id_feed'], PDO::PARAM_INT);
- $valuesTmp['tags'] = mb_strcut($valuesTmp['tags'], 0, 1023, 'UTF-8');
+ $valuesTmp['tags'] = mb_strcut($valuesTmp['tags'], 0, 65535, 'UTF-8');
$valuesTmp['tags'] = safe_utf8($valuesTmp['tags']);
$this->updateEntryPrepared->bindParam(':tags', $valuesTmp['tags']);
if (!isset($valuesTmp['attributes'])) {