diff options
author | Eric Wong <e@80x24.org> | 2024-01-23 22:08:59 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2024-01-24 01:53:49 +0000 |
commit | 13f19ce67e4c641405828fa16e563e3fbf6b8eb9 (patch) | |
tree | d9f5191df4cfe6796a024de5afb145ae728b103b | |
parent | 65690a33c5a527d5f3fef9320899eb9f4e1d25c8 (diff) | |
download | public-inbox-13f19ce67e4c641405828fa16e563e3fbf6b8eb9.tar.gz |
We can rely on SQLite to map `MAX(ds)' to `ds' rather than doing it in Perl, reducing the size of our Perl optree at the (smaller) expense of SQLite bytecode.
-rw-r--r-- | lib/PublicInbox/WwwTopics.pm | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/PublicInbox/WwwTopics.pm b/lib/PublicInbox/WwwTopics.pm index ad85a46d..9d270732 100644 --- a/lib/PublicInbox/WwwTopics.pm +++ b/lib/PublicInbox/WwwTopics.pm @@ -9,7 +9,7 @@ sub add_topic_html ($$) { my (undef, $smsg) = @_; my $s = ascii_html($smsg->{subject}); $s = '(no subject)' if $s eq ''; - $_[0] .= "\n".fmt_ts($smsg->{'MAX(ds)'} // $smsg->{ds}) . + $_[0] .= "\n".fmt_ts($smsg->{ds}) . qq{ <a\nhref="}.mid_href($smsg->{mid}).qq{/#r">$s</a>}; my $nr = $smsg->{'COUNT(num)'}; $_[0] .= " $nr+ messages" if $nr > 1; @@ -29,7 +29,7 @@ EOS sub topics_active ($) { $_[0]->do_get(<<EOS); -SELECT ddd,MAX(ds),COUNT(num) FROM over WHERE tid IN +SELECT ddd,MAX(ds) as ds,COUNT(num) FROM over WHERE tid IN (SELECT DISTINCT(tid) FROM over WHERE tid > 0 ORDER BY ts DESC LIMIT 200) AND +num > 0 GROUP BY tid @@ -43,7 +43,6 @@ sub topics_atom { # GET /$INBOX_NAME/topics_(new|active).atom my ($ctx) = @_; require PublicInbox::WwwAtomStream; my ($hdr, $smsg, $val); - $_->{ds} //= $_->{'MAX(ds)'} // 0 for @{$ctx->{msgs}}; PublicInbox::WwwAtomStream->response($ctx, \&topics_i); } |