Additional "is null" check in post update / create the "vid" if needed

This commit is contained in:
Michael 2020-05-31 15:48:31 +00:00
parent 20b93306ad
commit 7ac4a08e1b
2 changed files with 12 additions and 6 deletions

View file

@ -831,7 +831,7 @@ class PostUpdate
}
/**
* update the "vid" (verb) field in the item table
* update the "vid" (verb) field in the item table
*
* @return bool "true" when the job is done
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
@ -851,10 +851,10 @@ class PostUpdate
$start_id = $id;
$rows = 0;
$items = DBA::p("SELECT `item`.`id`, `item`.`vid`, `item`.`verb` AS `item-verb`, `item-content`.`verb`, `item-activity`.`activity`
$items = DBA::p("SELECT `item`.`id`, `item`.`verb` AS `item-verb`, `item-content`.`verb`, `item-activity`.`activity`
FROM `item` LEFT JOIN `item-content` ON `item-content`.`uri-id` = `item`.`uri-id`
LEFT JOIN `item-activity` ON `item-activity`.`uri-id` = `item`.`uri-id` AND `item`.`gravity` = ?
WHERE `item`.`id` >= ? ORDER BY `item`.`id` LIMIT 10000", GRAVITY_ACTIVITY, $id);
WHERE `item`.`id` >= ? AND `item`.`vid` IS NULL ORDER BY `item`.`id` LIMIT 10000", GRAVITY_ACTIVITY, $id);
if (DBA::errorNo() != 0) {
Logger::error('Database error', ['no' => DBA::errorNo(), 'message' => DBA::errorMessage()]);

View file

@ -72,7 +72,7 @@ class Item
'event-id', 'event-created', 'event-edited', 'event-start', 'event-finish',
'event-summary', 'event-desc', 'event-location', 'event-type',
'event-nofinish', 'event-adjust', 'event-ignore', 'event-id',
'delivery_queue_count', 'delivery_queue_done', 'delivery_queue_failed', 'activity'
'delivery_queue_count', 'delivery_queue_done', 'delivery_queue_failed'
];
// Field list that is used to deliver items via the protocols
@ -285,6 +285,10 @@ class Item
}
}
if (array_key_exists('vid', $row) && is_null($row['vid']) && !empty($row['verb'])) {
$row['vid'] = Verb::getID($row['verb']);
}
if (!array_key_exists('verb', $row) || in_array($row['verb'], ['', Activity::POST, Activity::SHARE])) {
// Build the file string out of the term entries
if (array_key_exists('file', $row) && empty($row['file'])) {
@ -1777,7 +1781,7 @@ class Item
// Check for hashtags in the body and repair or add hashtag links
self::setHashtags($item);
// Fill the cache field
self::putInCache($item);
@ -1796,12 +1800,14 @@ class Item
}
$body = $item['body'];
// We just remove everything that is content
foreach (array_merge(self::CONTENT_FIELDLIST, self::MIXED_CONTENT_FIELDLIST) as $field) {
unset($item[$field]);
}
unset($item['activity']);
// Filling item related side tables
// Diaspora signature