diff options
| author | 2016-08-23 00:02:54 +0200 | |
|---|---|---|
| committer | 2016-08-23 00:02:54 +0200 | |
| commit | c25fdbcc0990b637e305665a456e52e1aa3dec0a (patch) | |
| tree | c5c7582833eaf82d6afc608312c3420a83914e8f /app/Models/EntryDAOPGSQL.php | |
| parent | 2af3abc89e56af75c38caf5e8071b3cd09bedba8 (diff) | |
More PostgreSQL
Diffstat (limited to 'app/Models/EntryDAOPGSQL.php')
| -rw-r--r-- | app/Models/EntryDAOPGSQL.php | 79 |
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) { |
