diff options
author | Mario Vavti <mario@mariovavti.com> | 2022-11-24 16:08:57 +0100 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2022-11-24 16:08:57 +0100 |
commit | 680cf25f37348d2da978196554e07f1694475763 (patch) | |
tree | 4c6a263e4ac825cb0e1aba45c2a59f8c431fc984 | |
parent | 7ec6df495f5e740b16d7bdca89b18a3f6bc78c80 (diff) | |
download | volse-hubzilla-680cf25f37348d2da978196554e07f1694475763.tar.gz volse-hubzilla-680cf25f37348d2da978196554e07f1694475763.tar.bz2 volse-hubzilla-680cf25f37348d2da978196554e07f1694475763.zip |
de-duplicate by mid. there is no combined index for uid and uuid hence the query could be slow if an uid has a lot of items. the workaround for hubzilla < 4.0 is not required anymore
-rw-r--r-- | include/items.php | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/include/items.php b/include/items.php index 0f477e761..b414928fd 100644 --- a/include/items.php +++ b/include/items.php @@ -1848,21 +1848,11 @@ function item_store($arr, $allow_exec = false, $deliver = true) { if($parent_deleted) $arr['item_deleted'] = 1; - if($arr['uuid']) { - $r = q("SELECT id FROM item WHERE uuid = '%s' AND uid = %d and revision = %d LIMIT 1", - dbesc($arr['uuid']), - intval($arr['uid']), - intval($arr['revision']) - ); - } - else { - $r = q("SELECT id FROM item WHERE (mid = '%s' OR mid = '%s') AND uid = %d and revision = %d LIMIT 1", - dbesc($arr['mid']), - dbesc(basename(rawurldecode($arr['mid']))), // de-duplicate relayed comments from hubzilla < 4.0 - intval($arr['uid']), - intval($arr['revision']) - ); - } + $r = q("SELECT id FROM item WHERE mid = '%s' AND uid = %d and revision = %d LIMIT 1", + dbesc($arr['mid']), + intval($arr['uid']), + intval($arr['revision']) + ); if($r) { logger('duplicate item ignored. ' . print_r($arr,true)); |