--- trunk/perl/scripts/cpanest 2005/09/17 00:48:32 24 +++ trunk/perl/scripts/cpanest 2005/09/17 20:48:42 25 @@ -154,7 +154,7 @@ my $tb = new HyperEstraier::WAIT::Table( uri => $OPT{node}, - attr => ['docid', 'headline', 'source', 'size', 'parent'], + attr => ['docid', 'headline', 'source', 'size', 'parent', 'version'], key => 'docid', invindex => [ qw/name synopsis bugs description text environment example author/ ], debug => $OPT{debug}, @@ -422,14 +422,13 @@ next if $OPT{match} and $ARCHIVE{$tar} !~ /$OPT{match}/o; my $base = (split /\//, $ARCHIVE{$tar})[-1]; my $parent; - my $parent_mdate; my %attr; # logging if ($OPT{trust_mtime}) { $attr{'@mdate'} = strftime('%Y-%m-%dT%H:%M:%S+00:00', gmtime($VERSION{$tar})); - $parent_mdate = $attr{'@mdate'}; + $parent->{'@mdate'} = $attr{'@mdate'}; printf "%-20s %10s %s\t", $tar, $attr{'@mdate'}, $base; } else { $attr{'version'} = $VERSION{$tar}; @@ -442,7 +441,7 @@ print "skipping\n"; next ARCHIVE; } else { - $parent = $tb->insert(docid => $base, + $parent->{_id} = $tb->insert(docid => $base, headline => $ARCHIVE{$tar}, %attr ) unless $OPT{test}; @@ -500,7 +499,7 @@ print "Please alias '$tar' to '$prefix' next time!\n"; print "See alias table later.\n"; $NEW_ALIAS{$tar} = $prefix; - $tb->delete_by_key($parent); + $tb->delete_by_key($parent->{_id}); next ARCHIVE; } else { print "Assuming that tar file name $tar is a valid prefix\n"; @@ -558,7 +557,6 @@ $fh->print($val); index_pod(file => $path, parent => $parent, text => $val, source => $ARCHIVE{$tar}, - mdate => $parent_mdate, ); } } @@ -667,6 +665,7 @@ $record->{size} = length($parm{'text'}); my $headline = $record->{name} || $did; + # additional fields for Hyper Estraier $record->{'@mdate'} = $parm{'mdate'} if ($parm{'mdate'}); $headline =~ s/^$DATA//o; # $did @@ -678,10 +677,14 @@ headline => $headline, %{$record}); } else { + foreach (keys %{$parm{parent}}) { + next if (/^_/); + $record->{$_} = $parm{parent}->{$_} if ($parm{parent}->{$_}); + } $tb->insert('docid' => $did, headline => $headline, source => $parm{source}, - parent => $parm{parent}, + parent => $parm{parent}->{_id}, %{$record}); } } @@ -780,45 +783,6 @@ } } -sub create_table { - my %parm = @_; - - my $access = bless {}, 'WAIT::Document::Find'; - - my $stem = [{ - 'prefix' => ['isotr', 'isolc'], - 'intervall' => ['isotr', 'isolc'], - }, 'isotr', 'isolc', 'split2', 'stop', 'Stem']; - my $text = [{ - 'prefix' => ['isotr', 'isolc'], - 'intervall' => ['isotr', 'isolc'], - }, - 'isotr', 'isolc', 'split2', 'stop']; - my $sound = ['isotr', 'isolc', 'split2', 'Soundex'],; - - my $tb = - $parm{db}->create_table - (name => $parm{table}, - attr => ['docid', 'headline', 'source', 'size', 'parent'], - keyset => [['docid']], - layout => $parm{layout}, - access => $access, - invindex => - [ - 'name' => $stem, - 'synopsis' => $stem, - 'bugs' => $stem, - 'description' => $stem, - 'text' => $stem, - 'environment' => $text, - 'example' => $text, 'example' => $stem, - 'author' => $sound, 'author' => $stem, - ] - ); - die "Could not create table '$parm{table}'" unless $tb; - $tb; -} - my %MON; my $YEAR;