more efficient fixup of conversations

This commit is contained in:
Super-User 2009-06-28 20:15:45 +00:00
parent c755970141
commit b06edd1f27
1 changed files with 17 additions and 14 deletions

View File

@ -24,22 +24,17 @@ require_once INSTALLDIR.'/scripts/commandline.inc';
common_log(LOG_INFO, 'Fixing up conversations.'); common_log(LOG_INFO, 'Fixing up conversations.');
$notice = new Notice(); $nid = new Notice();
$notice->whereAdd('conversation is null'); $nid->query('select id, reply_to from notice where conversation is null');
$notice->orderBy('id');
$cnt = $notice->find(); while ($nid->fetch()) {
print "Found $cnt notices.\n"; $cid = null;
while ($notice->fetch()) { $notice = new Notice();
print "$notice->id =>"; if (empty($nid->reply_to)) {
$cid = $nid->id;
$orig = clone($notice);
if (empty($notice->reply_to)) {
$notice->conversation = $notice->id;
} else { } else {
$reply = Notice::staticGet('id', $notice->reply_to); $reply = Notice::staticGet('id', $notice->reply_to);
@ -52,6 +47,9 @@ while ($notice->fetch()) {
} else { } else {
$notice->conversation = $reply->conversation; $notice->conversation = $reply->conversation;
} }
unset($reply);
$reply = null;
} }
print "$notice->conversation"; print "$notice->conversation";
@ -63,5 +61,10 @@ while ($notice->fetch()) {
continue; continue;
} }
$notice = null;
$orig = null;
unset($notice);
unset($orig);
print ".\n"; print ".\n";
} }