drop some pointless queries now that we can use RETURNING for inserts
This commit is contained in:
@@ -990,12 +990,14 @@ class RSSUtils {
|
|||||||
WHERE guid IN (?, ?, ?)");
|
WHERE guid IN (?, ?, ?)");
|
||||||
$csth->execute([$entry_guid, $entry_guid_hashed, $entry_guid_hashed_compat]);
|
$csth->execute([$entry_guid, $entry_guid_hashed, $entry_guid_hashed_compat]);
|
||||||
|
|
||||||
if (!$csth->fetch()) {
|
if ($row = $csth->fetch()) {
|
||||||
|
Debug::log("select returned RID: " . $row['id'], Debug::LOG_VERBOSE);
|
||||||
|
$base_record_created = false;
|
||||||
|
|
||||||
|
} else {
|
||||||
Debug::log("base guid [$entry_guid or $entry_guid_hashed] not found, creating...", Debug::LOG_VERBOSE);
|
Debug::log("base guid [$entry_guid or $entry_guid_hashed] not found, creating...", Debug::LOG_VERBOSE);
|
||||||
|
|
||||||
// base post entry does not exist, create it
|
// base post entry does not exist, create it
|
||||||
|
|
||||||
$usth = $pdo->prepare(
|
$usth = $pdo->prepare(
|
||||||
"INSERT INTO ttrss_entries
|
"INSERT INTO ttrss_entries
|
||||||
(title,
|
(title,
|
||||||
@@ -1016,7 +1018,7 @@ class RSSUtils {
|
|||||||
(?, ?, ?, ?, ?, ?,
|
(?, ?, ?, ?, ?, ?,
|
||||||
false,
|
false,
|
||||||
NOW(),
|
NOW(),
|
||||||
?, ?, ?, ?, ?, ?)");
|
?, ?, ?, ?, ?, ?) RETURNING id");
|
||||||
|
|
||||||
$usth->execute([$entry_title,
|
$usth->execute([$entry_title,
|
||||||
$entry_guid_hashed,
|
$entry_guid_hashed,
|
||||||
@@ -1031,16 +1033,18 @@ class RSSUtils {
|
|||||||
"$entry_language",
|
"$entry_language",
|
||||||
"$entry_author"]);
|
"$entry_author"]);
|
||||||
|
|
||||||
}
|
$row = $usth->fetch();
|
||||||
|
|
||||||
$csth->execute([$entry_guid, $entry_guid_hashed, $entry_guid_hashed_compat]);
|
Debug::log("insert returned RID: " . $row['id'], Debug::LOG_VERBOSE);
|
||||||
|
$base_record_created = true;
|
||||||
|
}
|
||||||
|
|
||||||
$entry_ref_id = 0;
|
$entry_ref_id = 0;
|
||||||
$entry_int_id = 0;
|
$entry_int_id = 0;
|
||||||
|
|
||||||
if ($row = $csth->fetch()) {
|
if ($row['id']) {
|
||||||
|
|
||||||
Debug::log("base guid found, checking for user record", Debug::LOG_VERBOSE);
|
Debug::log("base record with RID: " . $row['id'] . " found, checking for user record", Debug::LOG_VERBOSE);
|
||||||
|
|
||||||
$ref_id = $row['id'];
|
$ref_id = $row['id'];
|
||||||
$entry_ref_id = $ref_id;
|
$entry_ref_id = $ref_id;
|
||||||
@@ -1100,56 +1104,54 @@ class RSSUtils {
|
|||||||
(ref_id, owner_uid, feed_id, unread, last_read, marked,
|
(ref_id, owner_uid, feed_id, unread, last_read, marked,
|
||||||
published, score, tag_cache, label_cache, uuid,
|
published, score, tag_cache, label_cache, uuid,
|
||||||
last_marked, last_published)
|
last_marked, last_published)
|
||||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, '', '', '', ".$last_marked.", ".$last_published.")");
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, '', '', '', ".$last_marked.", ".$last_published.")
|
||||||
|
RETURNING int_id");
|
||||||
|
|
||||||
$sth->execute([$ref_id, $feed_obj->owner_uid, $feed, $unread, $last_read_qpart, $marked,
|
$sth->execute([$ref_id, $feed_obj->owner_uid, $feed, $unread, $last_read_qpart, $marked,
|
||||||
$published, $score]);
|
$published, $score]);
|
||||||
|
|
||||||
|
if ($row = $sth->fetch())
|
||||||
|
$entry_int_id = $row['int_id'];
|
||||||
|
|
||||||
if ($marked)
|
if ($marked)
|
||||||
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_ARTICLES_MARK_TOGGLED, [$ref_id]);
|
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_ARTICLES_MARK_TOGGLED, [$ref_id]);
|
||||||
|
|
||||||
if ($published)
|
if ($published)
|
||||||
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_ARTICLES_PUBLISH_TOGGLED, [$ref_id]);
|
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_ARTICLES_PUBLISH_TOGGLED, [$ref_id]);
|
||||||
|
|
||||||
$sth = $pdo->prepare("SELECT int_id FROM ttrss_user_entries WHERE
|
|
||||||
ref_id = ? AND owner_uid = ? AND
|
|
||||||
feed_id = ? LIMIT 1");
|
|
||||||
|
|
||||||
$sth->execute([$ref_id, $feed_obj->owner_uid, $feed]);
|
|
||||||
|
|
||||||
if ($row = $sth->fetch())
|
|
||||||
$entry_int_id = $row['int_id'];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug::log("resulting RID: $entry_ref_id, IID: $entry_int_id", Debug::LOG_VERBOSE);
|
Debug::log("resulting RID: $entry_ref_id, IID: $entry_int_id", Debug::LOG_VERBOSE);
|
||||||
|
|
||||||
$sth = $pdo->prepare("UPDATE ttrss_entries
|
// it's pointless to update base record we've just created
|
||||||
SET title = :title,
|
if (!$base_record_created) {
|
||||||
tsvector_combined = to_tsvector(:ts_lang, :ts_content),
|
$sth = $pdo->prepare("UPDATE ttrss_entries
|
||||||
content = :content,
|
SET title = :title,
|
||||||
content_hash = :content_hash,
|
tsvector_combined = to_tsvector(:ts_lang, :ts_content),
|
||||||
updated = :updated,
|
content = :content,
|
||||||
date_updated = NOW(),
|
content_hash = :content_hash,
|
||||||
num_comments = :num_comments,
|
updated = :updated,
|
||||||
plugin_data = :plugin_data,
|
date_updated = NOW(),
|
||||||
author = :author,
|
num_comments = :num_comments,
|
||||||
lang = :lang
|
plugin_data = :plugin_data,
|
||||||
WHERE id = :id");
|
author = :author,
|
||||||
|
lang = :lang
|
||||||
|
WHERE id = :id");
|
||||||
|
|
||||||
$params = [":title" => $entry_title,
|
$params = [":title" => $entry_title,
|
||||||
":content" => "$entry_content",
|
":content" => "$entry_content",
|
||||||
":content_hash" => $entry_current_hash,
|
":content_hash" => $entry_current_hash,
|
||||||
":updated" => $entry_timestamp_fmt,
|
":updated" => $entry_timestamp_fmt,
|
||||||
":num_comments" => (int)$num_comments,
|
":num_comments" => (int)$num_comments,
|
||||||
":plugin_data" => $entry_plugin_data,
|
":plugin_data" => $entry_plugin_data,
|
||||||
":author" => "$entry_author",
|
":author" => "$entry_author",
|
||||||
":lang" => $entry_language,
|
":lang" => $entry_language,
|
||||||
":id" => $ref_id,
|
":id" => $ref_id,
|
||||||
":ts_lang" => $feed_language,
|
":ts_lang" => $feed_language,
|
||||||
":ts_content" => mb_substr(strip_tags($entry_title) . " " . \Soundasleep\Html2Text::convert($entry_content), 0, 900000)
|
":ts_content" => mb_substr(strip_tags($entry_title) . " " . \Soundasleep\Html2Text::convert($entry_content), 0, 900000)
|
||||||
];
|
];
|
||||||
|
|
||||||
$sth->execute($params);
|
$sth->execute($params);
|
||||||
|
}
|
||||||
|
|
||||||
// update aux data
|
// update aux data
|
||||||
$sth = $pdo->prepare("UPDATE ttrss_user_entries
|
$sth = $pdo->prepare("UPDATE ttrss_user_entries
|
||||||
|
|||||||
Reference in New Issue
Block a user