sub lms_pause {
my ($self) = @_;
$self->{fmap} = {};
- my $dbh = delete $self->{dbh};
- eval { $dbh->do('PRAGMA optimize') } if $dbh;
+ my $dbh = delete $self->{dbh} // return;
+ eval { $dbh->do('PRAGMA optimize') };
+ warn 'W: optimize ', $dbh->sqlite_db_filename, ': ', $@ if $@;
}
sub create_tables {
$self->{dbh} //= PublicInbox::Over::dbh_new($self, !$rw);
}
+sub mm_commit {
+ my ($self) = @_;
+ my $dbh = $self->{dbh} // return;
+ $dbh->commit;
+ eval { $dbh->do('PRAGMA optimize') };
+ warn 'W: optimize ', $dbh->sqlite_db_filename, ': ', $@ if $@;
+ $dbh;
+}
+
1;
delete $self->{txn} or return;
$self->{dbh}->commit;
eval { $self->{dbh}->do('PRAGMA optimize') };
+ warn 'W: optimize ', $self->{dbh}->sqlite_db_filename, ': ', $@ if $@;
}
sub begin_lazy {
}
}
${$sync->{max}} = $self->{batch_bytes};
-
- $self->{mm}->{dbh}->commit;
- eval { $self->{mm}->{dbh}->do('PRAGMA optimize') };
+ $self->{mm}->mm_commit;
my $xdb = $self->{xdb};
if ($newest && $xdb) {
my $cur = $xdb->get_metadata('last_commit');
$self->{im}->barrier if $self->{im};
my $shards = $self->{idx_shards};
if ($shards) {
- my $dbh = $self->{mm}->{dbh} if $self->{mm};
-
- # SQLite msgmap data is second in importance
- $dbh->commit if $dbh;
- eval { $dbh->do('PRAGMA optimize') };
+ # SQLite msgmap is second in importance (not in eidx)
+ my $dbh = $self->{mm} ? $self->{mm}->mm_commit : undef;
# SQLite overview is third
$self->{oidx}->commit_lazy;