228 |
#### warn "WARNING: Suspect use of \$_ in method create_index. name[$name]_[$_]"; |
#### warn "WARNING: Suspect use of \$_ in method create_index. name[$name]_[$_]"; |
229 |
$self->{indexes}->{$name} = |
$self->{indexes}->{$name} = |
230 |
WAIT::Index->new( |
WAIT::Index->new( |
231 |
file => $self->file.'/'.$name, |
file => $self->path.'/'.$name, |
232 |
subname => $name, |
subname => $name, |
233 |
env => $self->{env}, |
env => $self->{env}, |
234 |
maindbfile => $self->maindbfile, |
maindbfile => $self->maindbfile, |
295 |
} |
} |
296 |
|
|
297 |
my $name = join '_', ($parm{attribute}, @{$parm{pipeline}}); |
my $name = join '_', ($parm{attribute}, @{$parm{pipeline}}); |
298 |
my $idx = WAIT::InvertedIndex->new(file => $self->file.'/'.$name, |
my $idx = WAIT::InvertedIndex->new(file => $self->path.'/'.$name, |
299 |
subname=> $name, |
subname=> $name, |
300 |
env => $self->{env}, |
env => $self->{env}, |
301 |
maindbfile => $self->maindbfile, |
maindbfile => $self->maindbfile, |
310 |
} |
} |
311 |
|
|
312 |
sub dir { |
sub dir { |
313 |
$_[0]->file; |
$_[0]->path; |
314 |
} |
} |
315 |
|
|
316 |
=head2 C<$tb-E<gt>layout> |
=head2 C<$tb-E<gt>layout> |
342 |
if ((caller)[0] eq 'WAIT::Database') { # database knows about this |
if ((caller)[0] eq 'WAIT::Database') { # database knows about this |
343 |
$self->close; # just make sure |
$self->close; # just make sure |
344 |
|
|
345 |
my $file = $self->file; |
my $path = $self->path; |
346 |
|
|
347 |
for (values %{$self->{indexes}}) { |
for (values %{$self->{indexes}}) { |
348 |
$_->drop; |
$_->drop; |
349 |
} |
} |
350 |
unlink "$file/records"; |
unlink "$path/records"; |
351 |
rmdir "$file/read" or warn "Could not rmdir '$file/read'"; |
rmdir "$path/read" or warn "Could not rmdir '$path/read'"; |
352 |
|
|
353 |
} else { |
} else { |
354 |
croak ref($self)."::drop called directly"; |
croak ref($self)."::drop called directly"; |
368 |
return $self->{path} if $self->{path}; |
return $self->{path} if $self->{path}; |
369 |
require Data::Dumper; print STDERR "Line " . __LINE__ . ", File: " . __FILE__ . "\n" . Data::Dumper->new([$self],[qw(self)])->Indent(1)->Useqq(1)->Dump; # XXX |
require Data::Dumper; print STDERR "Line " . __LINE__ . ", File: " . __FILE__ . "\n" . Data::Dumper->new([$self],[qw(self)])->Indent(1)->Useqq(1)->Dump; # XXX |
370 |
require Carp; |
require Carp; |
371 |
Carp::confess("NO file attr"); |
Carp::confess("NO path attr"); |
372 |
} |
} |
373 |
|
|
374 |
sub open { |
sub open { |
375 |
my $self = shift; |
my $self = shift; |
376 |
my $file = $self->file . '/records'; |
my $path = $self->path . '/records'; |
377 |
|
|
378 |
mrequire ref($self); # that's tricky eh? |
mrequire ref($self); # that's tricky eh? |
379 |
if (defined $self->{'layout'}) { |
if (defined $self->{'layout'}) { |
410 |
my $flags; |
my $flags; |
411 |
if ($self->{mode} & O_RDWR) { |
if ($self->{mode} & O_RDWR) { |
412 |
$flags = DB_CREATE; # | DB_INIT_MPOOL | DB_PRIVATE | DB_INIT_CDB; |
$flags = DB_CREATE; # | DB_INIT_MPOOL | DB_PRIVATE | DB_INIT_CDB; |
413 |
warn "Flags on table $file set to 'writing'"; |
warn "Flags on table $path set to 'writing'"; |
414 |
} else { |
} else { |
415 |
$flags = DB_RDONLY; |
$flags = DB_RDONLY; |
416 |
# warn "Flags on table $file set to 'readonly'"; |
# warn "Flags on table $path set to 'readonly'"; |
417 |
} |
} |
418 |
unless (defined $self->{dbh}) { |
unless (defined $self->{dbh}) { |
419 |
my $subname = $self->tablename . "/records"; |
my $subname = $self->tablename . "/records"; |
670 |
delete $self->{dbh}; |
delete $self->{dbh}; |
671 |
} |
} |
672 |
untie %{$self->{db}}; |
untie %{$self->{db}}; |
673 |
for my $att (qw(env db file maindbfile)) { |
for my $att (qw(env db path maindbfile)) { |
674 |
delete $self->{$att}; |
delete $self->{$att}; |
675 |
warn "----->Deleted att $att<-----"; |
warn "----->Deleted att $att<-----"; |
676 |
} |
} |