sub count_shards ($) {
my ($self) = @_;
- $self->{ibx} ? do {
+ if (my $ibx = $self->{ibx}) {
# always load existing shards in case core count changes:
# Also, shard count may change while -watch is running
- my $srch = $self->{ibx}->search or return 0;
- delete $self->{ibx}->{search};
+ my $srch = $ibx->search or return 0;
+ delete $ibx->{search};
$srch->{nshard} // 0
- } : $self->{nshard}; # self->{nshard} is for ExtSearchIdx
+ } else { # ExtSearchIdx
+ $self->{nshard} // do {
+ if ($self->xdb_sharded) {
+ $self->{nshard} // die 'BUG: {nshard} unset';
+ } else {
+ 0;
+ }
+ }
+ }
}
sub new {
my @removed = $self->{oidx}->remove_oid($oid, $mid);
for my $num (@removed) {
my $idx = idx_shard($self, $num);
- $idx->shard_remove($oid, $num);
+ $idx->shard_remove($num);
}
}