aboutsummaryrefslogtreecommitdiff
path: root/app/Models/EntryDAOPGSQL.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2016-08-23 00:02:54 +0200
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2016-08-23 00:02:54 +0200
commitc25fdbcc0990b637e305665a456e52e1aa3dec0a (patch)
treec5c7582833eaf82d6afc608312c3420a83914e8f /app/Models/EntryDAOPGSQL.php
parent2af3abc89e56af75c38caf5e8071b3cd09bedba8 (diff)
More PostgreSQL
Diffstat (limited to 'app/Models/EntryDAOPGSQL.php')
-rw-r--r--app/Models/EntryDAOPGSQL.php79
1 files changed, 9 insertions, 70 deletions
diff --git a/app/Models/EntryDAOPGSQL.php b/app/Models/EntryDAOPGSQL.php
index 95c12ff5d..b96a62ebc 100644
--- a/app/Models/EntryDAOPGSQL.php
+++ b/app/Models/EntryDAOPGSQL.php
@@ -1,82 +1,21 @@
<?php
-class FreshRSS_EntryDAOPGSQL extends FreshRSS_EntryDAO {
+class FreshRSS_EntryDAOPGSQL extends FreshRSS_EntryDAOSQLite {
- protected function addColumn($name) {
- return false;
- }
-
- protected function updateCacheUnreads($catId = false, $feedId = false) {
- return true; //done via triggers
+ public function sqlHexDecode($x) {
+ return 'decode(' . $x . ", 'hex')";
}
- /**
- * Mark all the articles in a feed as read.
- * There is a fail safe to prevent to mark as read articles that are
- * loaded during the mark as read action. Then the cache is updated.
- *
- * If $idMax equals 0, a deprecated debug message is logged
- *
- * @param integer $id_feed feed ID
- * @param integer $idMax fail safe article ID
- * @return integer affected rows
- */
- public function markReadFeed($id_feed, $idMax = 0) {
- if ($idMax == 0) {
- $idMax = time() . '000000';
- Minz_Log::debug('Calling markReadFeed(0) is deprecated!');
- }
- $this->bd->beginTransaction();
-
- $sql = 'UPDATE "' . $this->prefix . 'entry" '
- . 'SET is_read=:is_read '
- . 'WHERE id_feed=:id_feed AND NOT is_read AND id <= :idmax';
- $values = array($id_feed, $idMax);
- $stm = $this->bd->prepare($sql);
- $stm->bindValue(':is_read', true, PDO::PARAM_BOOL);
- $stm->bindValue(':id_feed', $id_feed);
- $stm->bindValue(':idmax', $idMax);
-
- if (!($stm && $stm->execute())) {
- $info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
- Minz_Log::error('SQL error markReadFeed: ' . $info[2]);
- $this->bd->rollBack();
- return false;
- }
- $affected = $stm->rowCount();
-
- $this->bd->commit();
- return $affected;
+ public function sqlHexEncode($x) {
+ return 'encode(' . $x . ", 'hex')";
}
- public function listHashForFeedGuids($id_feed, $guids) {
- if (count($guids) < 1) {
- return array();
- }
- $sql = 'SELECT guid, hash AS hexHash FROM "' . $this->prefix . 'entry" WHERE id_feed=? AND guid IN (' . str_repeat('?,', count($guids) - 1). '?)';
- $stm = $this->bd->prepare($sql);
- $values = array($id_feed);
- $values = array_merge($values, $guids);
- if ($stm && $stm->execute($values)) {
- $result = array();
- $rows = $stm->fetchAll(PDO::FETCH_ASSOC);
- foreach ($rows as $row) {
- $result[$row['guid']] = $row['hexHash'];
- }
- return $result;
- } else {
- $info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo();
- if ($this->autoAddColumn($info)) {
- return $this->listHashForFeedGuids($id_feed, $guids);
- }
- Minz_Log::error('SQL error listHashForFeedGuids: ' . $info[0] . ': ' . $info[1] . ' ' . $info[2]
- . ' while querying feed ' . $id_feed);
- return false;
- }
+ protected function autoUpdateDb($errorInfo) {
+ return false;
}
- public function optimizeTable() {
- return null;
+ protected function addColumn($name) {
+ return false;
}
public function size($all = true) {