+ my $shard = $self->{shard};
+ defined $shard or die "shard not given";
+ $dir .= "/$shard";
+ }
+}
+
+sub _xdb ($) {
+ my ($self) = @_;
+ my $dir = xdir($self, 1);
+ my ($xdb, $slow_phrase);
+ my $qpf = \($self->{qp_flags} ||= $QP_FLAGS);
+ if ($self->{version} >= 2) {
+ foreach my $shard (<$dir/*>) {
+ -d $shard && $shard =~ m!/[0-9]+\z! or next;
+ my $sub = $X{Database}->new($shard);
+ if ($xdb) {
+ $xdb->add_database($sub);
+ } else {
+ $xdb = $sub;
+ }
+ $slow_phrase ||= -f "$shard/iamchert";
+ }
+ } else {
+ $slow_phrase = -f "$dir/iamchert";
+ $xdb = $X{Database}->new($dir);