mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-04-09 08:57:40 -04:00
SQL allow recreating existing user (#2555)
* SQL allow recreating existing user Taking advantage of https://github.com/FreshRSS/FreshRSS/pull/2554 In a case when FreshRSS data is lost, but database data still intact (in particular MySQL or PostgreSQL), this patch allows recreating previous users without error * Better error retrieval Especially when error occur during the prepare statement
This commit is contained in:
committed by
GitHub
parent
1b15e22897
commit
be4c942cb3
@@ -19,7 +19,7 @@ class FreshRSS_CategoryDAO extends Minz_ModelPdo implements FreshRSS_Searchable
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $this->pdo->lastInsertId('`_category_id_seq`');
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error addCategory: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -53,7 +53,7 @@ class FreshRSS_CategoryDAO extends Minz_ModelPdo implements FreshRSS_Searchable
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error updateCategory: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -69,7 +69,7 @@ class FreshRSS_CategoryDAO extends Minz_ModelPdo implements FreshRSS_Searchable
|
||||
if ($stm && $stm->execute()) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error deleteCategory: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -174,7 +174,7 @@ class FreshRSS_CategoryDAO extends Minz_ModelPdo implements FreshRSS_Searchable
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $this->pdo->lastInsertId('`_category_id_seq`');
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error check default category: ' . json_encode($info));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -28,9 +28,9 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
try {
|
||||
require_once(APP_PATH . '/SQL/install.sql.' . $this->pdo->dbType() . '.php');
|
||||
Minz_Log::warning('SQL CREATE TABLE entrytmp...');
|
||||
$ok = $this->pdo->exec(SQL_CREATE_TABLE_ENTRYTMP) !== false;
|
||||
} catch (Exception $e) {
|
||||
Minz_Log::error('FreshRSS_EntryDAO::createEntryTempTable error: ' . $e->getMessage());
|
||||
$ok = $this->pdo->exec(SQL_CREATE_TABLE_ENTRYTMP . SQL_CREATE_INDEX_ENTRY_1) !== false;
|
||||
} catch (Exception $ex) {
|
||||
Minz_Log::error(__method__ . ' error: ' . $ex->getMessage());
|
||||
}
|
||||
if ($hadTransaction) {
|
||||
$this->pdo->beginTransaction();
|
||||
@@ -129,7 +129,7 @@ SQL;
|
||||
if ($this->addEntryPrepared && $this->addEntryPrepared->execute()) {
|
||||
return true;
|
||||
} else {
|
||||
$info = $this->addEntryPrepared == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $this->addEntryPrepared->errorInfo();
|
||||
$info = $this->addEntryPrepared == null ? $this->pdo->errorInfo() : $this->addEntryPrepared->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
$this->addEntryPrepared = null;
|
||||
return $this->addEntry($valuesTmp);
|
||||
@@ -215,7 +215,7 @@ SQL;
|
||||
if ($this->updateEntryPrepared && $this->updateEntryPrepared->execute()) {
|
||||
return true;
|
||||
} else {
|
||||
$info = $this->updateEntryPrepared == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $this->updateEntryPrepared->errorInfo();
|
||||
$info = $this->updateEntryPrepared == null ? $this->pdo->errorInfo() : $this->updateEntryPrepared->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
return $this->updateEntry($valuesTmp);
|
||||
}
|
||||
@@ -252,7 +252,7 @@ SQL;
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markFavorite: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -297,7 +297,7 @@ SQL;
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return true;
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error updateCacheUnreads: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -334,7 +334,7 @@ SQL;
|
||||
$values = array_merge($values, $ids);
|
||||
$stm = $this->pdo->prepare($sql);
|
||||
if (!($stm && $stm->execute($values))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markRead: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -353,7 +353,7 @@ SQL;
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markRead: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -402,7 +402,7 @@ SQL;
|
||||
|
||||
$stm = $this->pdo->prepare($sql . $search);
|
||||
if (!($stm && $stm->execute(array_merge($values, $searchValues)))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markReadEntries: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -440,7 +440,7 @@ SQL;
|
||||
|
||||
$stm = $this->pdo->prepare($sql . $search);
|
||||
if (!($stm && $stm->execute(array_merge($values, $searchValues)))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markReadCat: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -479,7 +479,7 @@ SQL;
|
||||
|
||||
$stm = $this->pdo->prepare($sql . $search);
|
||||
if (!($stm && $stm->execute(array_merge($values, $searchValues)))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markReadFeed: ' . $info[2] . ' with SQL: ' . $sql . $search);
|
||||
$this->pdo->rollBack();
|
||||
return false;
|
||||
@@ -493,7 +493,7 @@ SQL;
|
||||
$stm = $this->pdo->prepare($sql);
|
||||
$stm->bindParam(':id', $id_feed, PDO::PARAM_INT);
|
||||
if (!($stm && $stm->execute())) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markReadFeed cache: ' . $info[2]);
|
||||
$this->pdo->rollBack();
|
||||
return false;
|
||||
@@ -533,7 +533,7 @@ SQL;
|
||||
|
||||
$stm = $this->pdo->prepare($sql . $search);
|
||||
if (!($stm && $stm->execute(array_merge($values, $searchValues)))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markReadTag: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -565,7 +565,7 @@ SQL;
|
||||
if ($stm && $stm->execute()) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
return $this->cleanOldEntries($id_feed, $date_min, $keep);
|
||||
}
|
||||
@@ -838,7 +838,7 @@ SQL;
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm;
|
||||
} else {
|
||||
$info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error listWhereRaw: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -896,7 +896,7 @@ SQL;
|
||||
}
|
||||
return $result;
|
||||
} else {
|
||||
$info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
return $this->listHashForFeedGuids($id_feed, $guids);
|
||||
}
|
||||
@@ -920,7 +920,7 @@ SQL;
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
return $this->updateLastSeen($id_feed, $guids);
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ DROP TABLE IF EXISTS `tmp`;
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return true;
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error updateCacheUnreads: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -123,7 +123,7 @@ DROP TABLE IF EXISTS `tmp`;
|
||||
$values = array($is_read ? 1 : 0, $ids, $is_read ? 0 : 1);
|
||||
$stm = $this->pdo->prepare($sql);
|
||||
if (!($stm && $stm->execute($values))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markRead 1: ' . $info[2]);
|
||||
$this->pdo->rollBack();
|
||||
return false;
|
||||
@@ -135,7 +135,7 @@ DROP TABLE IF EXISTS `tmp`;
|
||||
$values = array($ids);
|
||||
$stm = $this->pdo->prepare($sql);
|
||||
if (!($stm && $stm->execute($values))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markRead 2: ' . $info[2]);
|
||||
$this->pdo->rollBack();
|
||||
return false;
|
||||
@@ -186,7 +186,7 @@ DROP TABLE IF EXISTS `tmp`;
|
||||
|
||||
$stm = $this->pdo->prepare($sql . $search);
|
||||
if (!($stm && $stm->execute(array_merge($values, $searchValues)))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markReadEntries: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -225,7 +225,7 @@ DROP TABLE IF EXISTS `tmp`;
|
||||
|
||||
$stm = $this->pdo->prepare($sql . $search);
|
||||
if (!($stm && $stm->execute(array_merge($values, $searchValues)))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markReadCat: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -264,7 +264,7 @@ DROP TABLE IF EXISTS `tmp`;
|
||||
|
||||
$stm = $this->pdo->prepare($sql . $search);
|
||||
if (!($stm && $stm->execute(array_merge($values, $searchValues)))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error markReadTag: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $this->pdo->lastInsertId('`_feed_id_seq`');
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
return $this->addFeed($valuesTmp);
|
||||
}
|
||||
@@ -151,7 +151,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
return $this->updateFeed($id, $valuesTmp);
|
||||
}
|
||||
@@ -185,7 +185,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error updateLastUpdate: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -209,7 +209,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error changeCategory: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -224,7 +224,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error deleteFeed: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -238,7 +238,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error deleteFeedByCategory: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -330,7 +330,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm !== false) {
|
||||
return self::daoToFeed($stm->fetchAll(PDO::FETCH_ASSOC));
|
||||
} else {
|
||||
$info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
return $this->listFeedsOrderUpdate($defaultCacheDuration);
|
||||
}
|
||||
@@ -384,7 +384,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute()) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error updateCachedValue: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -396,7 +396,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
$stm->bindParam(':id', $id, PDO::PARAM_INT);
|
||||
$this->pdo->beginTransaction();
|
||||
if (!($stm && $stm->execute())) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error truncate: ' . $info[2]);
|
||||
$this->pdo->rollBack();
|
||||
return false;
|
||||
@@ -408,7 +408,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
$stm = $this->pdo->prepare($sql);
|
||||
$stm->bindParam(':id', $id, PDO::PARAM_INT);
|
||||
if (!($stm && $stm->execute($values))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error truncate: ' . $info[2]);
|
||||
$this->pdo->rollBack();
|
||||
return false;
|
||||
@@ -466,13 +466,13 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
$sql = 'UPDATE `_feed` SET ttl=:new_value WHERE ttl=:old_value';
|
||||
$stm = $this->pdo->prepare($sql);
|
||||
if (!($stm && $stm->execute(array(':new_value' => FreshRSS_Feed::TTL_DEFAULT, ':old_value' => -2)))) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL warning updateTTL 1: ' . $info[2] . ' ' . $sql);
|
||||
|
||||
$sql2 = 'ALTER TABLE `_feed` ADD COLUMN ttl INT NOT NULL DEFAULT ' . FreshRSS_Feed::TTL_DEFAULT; //v0.7.3
|
||||
$stm = $this->pdo->query($sql2);
|
||||
if ($stm === false) {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error updateTTL 2: ' . $info[2] . ' ' . $sql2);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -57,7 +57,7 @@ class FreshRSS_TagDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $this->pdo->lastInsertId('`_tag_id_seq`');
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error addTag: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -91,7 +91,7 @@ class FreshRSS_TagDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error updateTag: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -120,7 +120,7 @@ class FreshRSS_TagDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->rowCount();
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error deleteTag: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -178,7 +178,7 @@ class FreshRSS_TagDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm !== false) {
|
||||
return self::daoToTag($stm->fetchAll(PDO::FETCH_ASSOC));
|
||||
} else {
|
||||
$info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
return $this->listTags($precounts);
|
||||
}
|
||||
@@ -194,7 +194,7 @@ class FreshRSS_TagDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
$res = $stm->fetchAll(PDO::FETCH_ASSOC);
|
||||
return $res[0]['count'];
|
||||
} else {
|
||||
$info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
return $this->count();
|
||||
}
|
||||
@@ -235,7 +235,7 @@ class FreshRSS_TagDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return true;
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error('SQL error tagEntry: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -258,7 +258,7 @@ class FreshRSS_TagDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
}
|
||||
return $lines;
|
||||
} else {
|
||||
$info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
return $this->getTagsForEntry($id_entry);
|
||||
}
|
||||
@@ -294,7 +294,7 @@ class FreshRSS_TagDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
|
||||
if ($stm && $stm->execute($values)) {
|
||||
return $stm->fetchAll(PDO::FETCH_ASSOC);
|
||||
} else {
|
||||
$info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
if ($this->autoUpdateDb($info)) {
|
||||
return $this->getTagsForEntries($entries);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ class FreshRSS_UserDAO extends Minz_ModelPdo {
|
||||
if ($ok) {
|
||||
return true;
|
||||
} else {
|
||||
$info = empty($stm) ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = empty($stm) ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error(__METHOD__ . ' error: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
@@ -45,7 +45,7 @@ class FreshRSS_UserDAO extends Minz_ModelPdo {
|
||||
if ($ok) {
|
||||
return true;
|
||||
} else {
|
||||
$info = $stm == null ? array(2 => 'syntax error') : $stm->errorInfo();
|
||||
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
|
||||
Minz_Log::error(__METHOD__ . ' error: ' . $info[2]);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -57,14 +57,18 @@ CREATE TABLE IF NOT EXISTS `_entry` (
|
||||
UNIQUE KEY (`id_feed`,`guid`), -- v0.7
|
||||
INDEX (`is_favorite`), -- v0.7
|
||||
INDEX (`is_read`), -- v0.7
|
||||
INDEX `entry_lastSeen_index` (`lastSeen`) -- v1.1.1
|
||||
-- INDEX `entry_feed_read_index` (`id_feed`,`is_read`) -- v1.7 Located futher down
|
||||
INDEX `entry_lastSeen_index` (`lastSeen`), -- v1.1.1
|
||||
INDEX `entry_feed_read_index` (`id_feed`,`is_read`) -- v1.7
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
|
||||
ENGINE = INNODB;
|
||||
|
||||
INSERT IGNORE INTO `_category` (id, name) VALUES(1, "Uncategorized");
|
||||
SQL;
|
||||
|
||||
const SQL_CREATE_INDEX_ENTRY_1 = <<<'SQL'
|
||||
CREATE INDEX `entry_feed_read_index` ON `_entry` (`id_feed`,`is_read`); -- v1.7
|
||||
SQL;
|
||||
|
||||
const SQL_CREATE_TABLE_ENTRYTMP = <<<'SQL'
|
||||
CREATE TABLE IF NOT EXISTS `_entrytmp` ( -- v1.7
|
||||
`id` BIGINT NOT NULL,
|
||||
@@ -86,9 +90,6 @@ CREATE TABLE IF NOT EXISTS `_entrytmp` ( -- v1.7
|
||||
INDEX (`date`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
|
||||
ENGINE = INNODB;
|
||||
|
||||
-- v1.7 Located here to be auto-added
|
||||
CREATE INDEX `entry_feed_read_index` ON `_entry`(`id_feed`,`is_read`);
|
||||
SQL;
|
||||
|
||||
const SQL_CREATE_TABLE_TAGS = <<<'SQL'
|
||||
|
||||
@@ -52,6 +52,7 @@ CREATE TABLE IF NOT EXISTS `_entry` (
|
||||
CREATE INDEX IF NOT EXISTS `_is_favorite_index` ON `_entry` ("is_favorite");
|
||||
CREATE INDEX IF NOT EXISTS `_is_read_index` ON `_entry` ("is_read");
|
||||
CREATE INDEX IF NOT EXISTS `_entry_lastSeen_index` ON `_entry` ("lastSeen");
|
||||
CREATE INDEX IF NOT EXISTS `_entry_feed_read_index` ON `_entry` ("id_feed","is_read"); -- v1.7
|
||||
|
||||
INSERT INTO `_category` (id, name)
|
||||
SELECT 1, 'Uncategorized'
|
||||
@@ -59,6 +60,10 @@ INSERT INTO `_category` (id, name)
|
||||
RETURNING nextval('`_category_id_seq`');
|
||||
SQL;
|
||||
|
||||
const SQL_CREATE_INDEX_ENTRY_1 = <<<'SQL'
|
||||
CREATE INDEX IF NOT EXISTS `_entry_feed_read_index` ON `_entry` ("id_feed","is_read"); -- v1.7
|
||||
SQL;
|
||||
|
||||
const SQL_CREATE_TABLE_ENTRYTMP = <<<'SQL'
|
||||
CREATE TABLE IF NOT EXISTS `_entrytmp` ( -- v1.7
|
||||
"id" BIGINT NOT NULL PRIMARY KEY,
|
||||
@@ -78,9 +83,6 @@ CREATE TABLE IF NOT EXISTS `_entrytmp` ( -- v1.7
|
||||
UNIQUE ("id_feed","guid")
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS `_entrytmp_date_index` ON `_entrytmp` ("date");
|
||||
|
||||
-- v1.7
|
||||
CREATE INDEX IF NOT EXISTS `_entry_feed_read_index` ON `_entry` ("id_feed","is_read");
|
||||
SQL;
|
||||
|
||||
const SQL_CREATE_TABLE_TAGS = <<<'SQL'
|
||||
|
||||
@@ -55,10 +55,15 @@ CREATE TABLE IF NOT EXISTS `entry` (
|
||||
CREATE INDEX IF NOT EXISTS entry_is_favorite_index ON `entry`(`is_favorite`);
|
||||
CREATE INDEX IF NOT EXISTS entry_is_read_index ON `entry`(`is_read`);
|
||||
CREATE INDEX IF NOT EXISTS entry_lastSeen_index ON `entry`(`lastSeen`); -- //v1.1.1
|
||||
CREATE INDEX IF NOT EXISTS entry_feed_read_index ON `entry`(`id_feed`,`is_read`); -- v1.7
|
||||
|
||||
INSERT OR IGNORE INTO `category` (id, name) VALUES(1, "Uncategorized");
|
||||
SQL;
|
||||
|
||||
const SQL_CREATE_INDEX_ENTRY_1 = <<<'SQL'
|
||||
CREATE INDEX IF NOT EXISTS entry_feed_read_index ON `entry`(`id_feed`,`is_read`); -- v1.7
|
||||
SQL;
|
||||
|
||||
const SQL_CREATE_TABLE_ENTRYTMP = <<<'SQL'
|
||||
CREATE TABLE IF NOT EXISTS `entrytmp` ( -- v1.7
|
||||
`id` BIGINT NOT NULL,
|
||||
@@ -79,9 +84,6 @@ CREATE TABLE IF NOT EXISTS `entrytmp` ( -- v1.7
|
||||
UNIQUE (`id_feed`,`guid`)
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS entrytmp_date_index ON `entrytmp`(`date`);
|
||||
|
||||
-- v1.7
|
||||
CREATE INDEX IF NOT EXISTS `entry_feed_read_index` ON `entry`(`id_feed`,`is_read`);
|
||||
SQL;
|
||||
|
||||
const SQL_CREATE_TABLE_TAGS = <<<'SQL'
|
||||
@@ -98,7 +100,7 @@ CREATE TABLE IF NOT EXISTS `entrytag` (
|
||||
FOREIGN KEY (`id_tag`) REFERENCES `tag` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
FOREIGN KEY (`id_entry`) REFERENCES `entry` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
CREATE INDEX entrytag_id_entry_index ON `entrytag` (`id_entry`);
|
||||
CREATE INDEX IF NOT EXISTS entrytag_id_entry_index ON `entrytag` (`id_entry`);
|
||||
SQL;
|
||||
|
||||
const SQL_INSERT_FEED = <<<'SQL'
|
||||
|
||||
Reference in New Issue
Block a user