]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Over.pm
thread: prevent hidden threads in /$INBOX/ landing page
[public-inbox.git] / lib / PublicInbox / Over.pm
index da0f11e5dfded738323b92a1233a0d827ae447d8..30f2603f7d2a4324d02c1900593c4a80253ba790 100644 (file)
@@ -15,7 +15,11 @@ use Compress::Zlib qw(uncompress);
 sub dbh_new {
        my ($self) = @_;
        my $ro = ref($self) eq 'PublicInbox::Over';
-       my $dbh = DBI->connect("dbi:SQLite:dbname=$self->{filename}",'','', {
+       my $f = $self->{filename};
+       if (!$ro && !-f $f) { # SQLite defaults mode to 0644, we want 0666
+               open my $fh, '+>>', $f or die "failed to open $f: $!";
+       }
+       my $dbh = DBI->connect("dbi:SQLite:dbname=$f",'','', {
                AutoCommit => 1,
                RaiseError => 1,
                PrintError => 0,
@@ -59,7 +63,7 @@ sub do_get {
 sub query_xover {
        my ($self, $beg, $end) = @_;
        do_get($self, <<'', {}, $beg, $end);
-SELECT * FROM over WHERE num >= ? AND num <= ?
+SELECT num,ts,ds,ddd FROM over WHERE num >= ? AND num <= ?
 ORDER BY num ASC
 
 }
@@ -131,7 +135,7 @@ sub recent {
                }
        }
        my $msgs = do_get($self, <<"", $opts, @v);
-SELECT * FROM over WHERE $s
+SELECT ts,ds,ddd FROM over WHERE $s
 
        return $msgs unless wantarray;
 
@@ -145,7 +149,7 @@ sub get_art {
        my ($self, $num) = @_;
        my $dbh = $self->connect;
        my $smsg = $dbh->selectrow_hashref(<<'', undef, $num);
-SELECT * from OVER where num = ? LIMIT 1
+SELECT num,ds,ts,ddd FROM over WHERE num = ? LIMIT 1
 
        return load_from_row($smsg) if $smsg;
        undef;