]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/V2Writable.pm
sqlite: PRAGMA optimize on close
[public-inbox.git] / lib / PublicInbox / V2Writable.pm
index fcd7ffe2317ba518d06ff3faf3d8328600d4d1a1..d04cdda6e3dc2eeaff75096fa92c25e0e96ecd0e 100644 (file)
@@ -622,7 +622,18 @@ sub done {
                my $m = $err ? 'rollback' : 'commit';
                eval { $mm->{dbh}->$m };
                $err .= "msgmap $m: $@\n" if $@;
+               eval { $mm->{dbh}->do('PRAGMA optimize') };
+               $err .= "msgmap optimize: $@\n" if $@;
        }
+       if ($self->{oidx} && $self->{oidx}->{dbh}) {
+               if ($err) {
+                       eval { $self->{oidx}->rollback_lazy };
+                       $err .= "overview rollback: $@\n" if $@;
+               }
+               eval { $self->{oidx}->{dbh}->do('PRAGMA optimize') };
+               $err .= "overview optimize: $@\n" if $@;
+       }
+
        my $shards = delete $self->{idx_shards};
        if ($shards) {
                for (@$shards) {