Thread: [Lxr-commits] CVS: lxr/lib/LXR/Index DB.pm,1.11,1.12 DBI.pm,1.19,1.20 Mysql.pm,1.15,1.16 Oracle.pm,1
Brought to you by:
ajlittoz
From: Dave B. <bro...@us...> - 2004-07-19 19:50:36
|
Update of /cvsroot/lxr/lxr/lib/LXR/Index In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7323/lib/LXR/Index Modified Files: DB.pm DBI.pm Mysql.pm Oracle.pm Postgres.pm Log Message: formatting (with eclipse EPIC plugin which uses PerlTidy. options used: line width 100, cuddle else, use tabs, tab-width 4) Index: DB.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Index/DB.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- DB.pm 15 Aug 2001 15:50:27 -0000 1.11 +++ DB.pm 19 Jul 2004 19:50:21 -0000 1.12 @@ -11,7 +11,7 @@ # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. @@ -24,48 +24,46 @@ use DB_File; use NDBM_File; - sub new { - my ($self, $dbpath, $mode) = @_; + my ( $self, $dbpath, $mode ) = @_; my ($foo); - $self = bless({}, $self); + $self = bless( {}, $self ); $$self{'dbpath'} = $dbpath; $$self{'dbpath'} =~ s@/*$@/@; - foreach ('releases', 'files', 'symbols', 'indexes', 'status') { + foreach ( 'releases', 'files', 'symbols', 'indexes', 'status' ) { $foo = {}; - tie (%$foo, 'NDBM_File' , $$self{'dbpath'}.$_, - $mode||O_RDONLY, 0664) || - die "Can't open database ".$$self{'dbpath'}.$_. "\n"; + tie( %$foo, 'NDBM_File', $$self{'dbpath'} . $_, $mode || O_RDONLY, 0664 ) + || die "Can't open database " . $$self{'dbpath'} . $_ . "\n"; $$self{$_} = $foo; } - + return $self; } sub index { - my ($self, $symname, $fileid, $line, $type, $rel) = @_; + my ( $self, $symname, $fileid, $line, $type, $rel ) = @_; my $symid = $self->symid($symname); - $self->{'indexes'}{$symid} .= join("\t", $fileid, $line, $type, $rel)."\0"; -# $$self{'index'}{$self->symid($symname, $release)} = -# join("\t", $filename, $line, $type, ''); + $self->{'indexes'}{$symid} .= join( "\t", $fileid, $line, $type, $rel ) . "\0"; + + # $$self{'index'}{$self->symid($symname, $release)} = + # join("\t", $filename, $line, $type, ''); } # Returns array of (fileid, line, type) sub getindex { - my ($self, $symname, $release) = @_; + my ( $self, $symname, $release ) = @_; - my (@d, $f); - foreach $f (split(/\0/, - $$self{'indexes'}{$self->symid($symname, $release)})) { - my ($fi, $l, $t, $s) = split(/\t/, $f); + my ( @d, $f ); + foreach $f ( split( /\0/, $$self{'indexes'}{ $self->symid( $symname, $release ) } ) ) { + my ( $fi, $l, $t, $s ) = split( /\t/, $f ); - my %r = map { ($_ => 1) } split(/;/, $self->{'releases'}{$fi}); + my %r = map { ( $_ => 1 ) } split( /;/, $self->{'releases'}{$fi} ); next unless $r{$release}; - push(@d, [ $self->filename($fi), $l, $t, $s ]); + push( @d, [ $self->filename($fi), $l, $t, $s ] ); } return @d; } @@ -75,26 +73,28 @@ } sub relate { - my ($self, $symname, $release, $rsymname, $reltype) = @_; - my $symid = $self->symid($symname, $release); + my ( $self, $symname, $release, $rsymname, $reltype ) = @_; + my $symid = $self->symid( $symname, $release ); - $$self{''}{$symid} = join("", $$self{'relation'}{$self->symid($symname, $release)}, join("\t", $self->symid($rsymname, $release), $reltype, '')); + $$self{''}{$symid} = join( "", + $$self{'relation'}{ $self->symid( $symname, $release ) }, + join( "\t", $self->symid( $rsymname, $release ), $reltype, '' ) ); } sub getrelations { - my ($self, $symname, $release) = @_; + my ( $self, $symname, $release ) = @_; } sub fileid { - my ($self , $filename, $release) = @_; - - return $filename.';'.$release; + my ( $self, $filename, $release ) = @_; + + return $filename . ';' . $release; } # Convert from fileid to filename sub filename { - my ($self, $fileid) = @_; - my ($filename) = split(/;/, $fileid); + my ( $self, $fileid ) = @_; + my ($filename) = split( /;/, $fileid ); return $filename; } @@ -102,7 +102,7 @@ # If this file has not been indexed earlier, mark it as being indexed # now and return true. Return false if already indexed. sub toindex { - my ($self, $fileid) = @_; + my ( $self, $fileid ) = @_; return undef if $self->{'status'}{$fileid} >= 1; @@ -112,26 +112,25 @@ # Indicate that this filerevision is part of this release sub release { - my ($self, $fileid, $release) = @_; + my ( $self, $fileid, $release ) = @_; - $self->{'releases'}{$fileid} .= $release.";"; + $self->{'releases'}{$fileid} .= $release . ";"; } sub symid { - my ($self, $symname, $release) = @_; + my ( $self, $symname, $release ) = @_; my ($symid); return $symname; } sub issymbol { - my ($self, $symname, $release) = @_; + my ( $self, $symname, $release ) = @_; - return $$self{'indexes'}{$self->symid($symname, $release)}; + return $$self{'indexes'}{ $self->symid( $symname, $release ) }; } sub empty_cache { } - 1; Index: DBI.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Index/DBI.pm,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- DBI.pm 26 Feb 2002 16:18:46 -0000 1.19 +++ DBI.pm 19 Jul 2004 19:50:21 -0000 1.20 @@ -11,7 +11,7 @@ # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. @@ -23,21 +23,20 @@ use strict; sub new { - my ($self, $dbname) = @_; + my ( $self, $dbname ) = @_; my ($index); - if($dbname =~ /^dbi:mysql:/i) { - require LXR::Index::Mysql; - $index = new LXR::Index::Mysql($dbname); - } elsif($dbname =~ /^dbi:Pg:/i) { - require LXR::Index::Postgres; - $index = new LXR::Index::Postgres($dbname); - } elsif($dbname =~ /^dbi:oracle:/i) { - require LXR::Index::Oracle; - $index = new LXR::Index::Oracle($dbname); + if ( $dbname =~ /^dbi:mysql:/i ) { + require LXR::Index::Mysql; + $index = new LXR::Index::Mysql($dbname); + } elsif ( $dbname =~ /^dbi:Pg:/i ) { + require LXR::Index::Postgres; + $index = new LXR::Index::Postgres($dbname); + } elsif ( $dbname =~ /^dbi:oracle:/i ) { + require LXR::Index::Oracle; + $index = new LXR::Index::Oracle($dbname); } return $index; } - 1; Index: Mysql.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Index/Mysql.pm,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Mysql.pm 15 Jul 2004 20:42:41 -0000 1.15 +++ Mysql.pm 19 Jul 2004 19:50:21 -0000 1.16 @@ -11,7 +11,7 @@ # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. @@ -29,148 +29,140 @@ @ISA = ("LXR::Index"); sub new { - my ($self, $dbname) = @_; + my ( $self, $dbname ) = @_; - $self = bless({}, $self); - if(defined($config->{dbpass})) { - $self->{dbh} = DBI->connect($dbname, $config->{dbuser}, - $config->{dbpass}) - || fatal "Can't open connection to database\n"; + $self = bless( {}, $self ); + if ( defined( $config->{dbpass} ) ) { + $self->{dbh} = DBI->connect( $dbname, $config->{dbuser}, $config->{dbpass} ) + || fatal "Can't open connection to database\n"; } else { - $self->{dbh} = DBI->connect($dbname, "lxr", $config->{dbpass}) - || fatal "Can't open connection to database\n"; + $self->{dbh} = DBI->connect( $dbname, "lxr", $config->{dbpass} ) + || fatal "Can't open connection to database\n"; } - %files = (); + %files = (); %symcache = (); - $self->{files_select} = $self->{dbh}->prepare - ("select fileid from files where filename = ? and revision = ?"); - $self->{files_insert} = $self->{dbh}->prepare - ("insert into files (filename, revision, fileid) values (?, ?, NULL)"); + $self->{files_select} = + $self->{dbh}->prepare("select fileid from files where filename = ? and revision = ?"); + $self->{files_insert} = + $self->{dbh}->prepare("insert into files (filename, revision, fileid) values (?, ?, NULL)"); - $self->{symbols_byname} = $self->{dbh}->prepare - ("select symid from symbols where symname = ?"); - $self->{symbols_byid} = $self->{dbh}->prepare - ("select symname from symbols where symid = ?"); - $self->{symbols_insert} = $self->{dbh}->prepare - ("insert into symbols (symname, symid) values ( ?, NULL)"); - $self->{symbols_remove} = $self->{dbh}->prepare - ("delete from symbols where symname = ?"); + $self->{symbols_byname} = $self->{dbh}->prepare("select symid from symbols where symname = ?"); + $self->{symbols_byid} = $self->{dbh}->prepare("select symname from symbols where symid = ?"); + $self->{symbols_insert} = + $self->{dbh}->prepare("insert into symbols (symname, symid) values ( ?, NULL)"); + $self->{symbols_remove} = $self->{dbh}->prepare("delete from symbols where symname = ?"); - $self->{indexes_select} = $self->{dbh}->prepare - ("select f.filename, i.line, d.declaration, i.relsym ". - "from symbols s, indexes i, files f, releases r, declarations d ". - "where s.symid = i.symid and i.fileid = f.fileid ". - "and f.fileid = r.fileid ". - "and i.langid = d.langid and i.type = d.declid ". - "and s.symname = ? and r.release = ?"); - $self->{indexes_insert} = $self->{dbh}->prepare - ("insert into indexes (symid, fileid, line, langid, type, relsym) values (?, ?, ?, ?, ?, ?)"); + $self->{indexes_select} = + $self->{dbh}->prepare( "select f.filename, i.line, d.declaration, i.relsym " + . "from symbols s, indexes i, files f, releases r, declarations d " + . "where s.symid = i.symid and i.fileid = f.fileid " + . "and f.fileid = r.fileid " + . "and i.langid = d.langid and i.type = d.declid " + . "and s.symname = ? and r.release = ?" ); + $self->{indexes_insert} = + $self->{dbh}->prepare( + "insert into indexes (symid, fileid, line, langid, type, relsym) values (?, ?, ?, ?, ?, ?)" + ); - $self->{releases_select} = $self->{dbh}->prepare - ("select * from releases where fileid = ? and release = ?"); - $self->{releases_insert} = $self->{dbh}->prepare - ("insert into releases (fileid, release) values (?, ?)"); + $self->{releases_select} = + $self->{dbh}->prepare("select * from releases where fileid = ? and release = ?"); + $self->{releases_insert} = + $self->{dbh}->prepare("insert into releases (fileid, release) values (?, ?)"); - $self->{status_get} = $self->{dbh}->prepare - ("select status from status where fileid = ?"); + $self->{status_get} = $self->{dbh}->prepare("select status from status where fileid = ?"); $self->{status_insert} = $self->{dbh}->prepare -# ("insert into status select ?, 0 except select fileid, 0 from status"); - ("insert into status (fileid, status) values (?, ?)"); - $self->{status_update} = $self->{dbh}->prepare - ("update status set status = ? where fileid = ? and status <= ?"); + # ("insert into status select ?, 0 except select fileid, 0 from status"); + ("insert into status (fileid, status) values (?, ?)"); - $self->{usage_insert} = $self->{dbh}->prepare - ("insert into useage (fileid, line, symid) values (?, ?, ?)"); - $self->{usage_select} = $self->{dbh}->prepare - ("select f.filename, u.line ". - "from symbols s, files f, releases r, useage u ". - "where s.symid = u.symid ". - "and f.fileid = u.fileid ". - "and u.fileid = r.fileid ". - "and s.symname = ? and r.release = ? ". - "order by f.filename"); - $self->{decl_select} = $self->{dbh}->prepare - ("select declid from declarations where langid = ? and ". - "declaration = ?"); - $self->{decl_insert} = $self->{dbh}->prepare - ("insert into declarations (declid, langid, declaration) values (NULL, ?, ?)"); + $self->{status_update} = + $self->{dbh}->prepare("update status set status = ? where fileid = ? and status <= ?"); - $self->{delete_indexes} = $self->{dbh}->prepare - ("delete from indexes ". - "using indexes i, releases r ". - "where i.fileid = r.fileid ". - "and r.release = ?"); - $self->{delete_useage} = $self->{dbh}->prepare - ("delete from useage ". - "using useage u, releases r ". - "where u.fileid = r.fileid ". - "and r.release = ?"); - $self->{delete_status} = $self->{dbh}->prepare - ("delete from status ". - "using status s, releases r ". - "where s.fileid = r.fileid ". - "and r.release = ?"); - $self->{delete_releases} = $self->{dbh}->prepare - ("delete from releases ". - "where release = ?"); - $self->{delete_files} = $self->{dbh}->prepare - ("delete from files ". - "using files f, releases r ". - "where f.fileid = r.fileid ". - "and r.release = ?"); + $self->{usage_insert} = + $self->{dbh}->prepare("insert into useage (fileid, line, symid) values (?, ?, ?)"); + $self->{usage_select} = + $self->{dbh}->prepare( "select f.filename, u.line " + . "from symbols s, files f, releases r, useage u " + . "where s.symid = u.symid " + . "and f.fileid = u.fileid " + . "and u.fileid = r.fileid " + . "and s.symname = ? and r.release = ? " + . "order by f.filename" ); + $self->{decl_select} = + $self->{dbh} + ->prepare( "select declid from declarations where langid = ? and " . "declaration = ?" ); + $self->{decl_insert} = + $self->{dbh} + ->prepare("insert into declarations (declid, langid, declaration) values (NULL, ?, ?)"); + + $self->{delete_indexes} = + $self->{dbh}->prepare( "delete from indexes " + . "using indexes i, releases r " + . "where i.fileid = r.fileid " + . "and r.release = ?" ); + $self->{delete_useage} = + $self->{dbh}->prepare( "delete from useage " + . "using useage u, releases r " + . "where u.fileid = r.fileid " + . "and r.release = ?" ); + $self->{delete_status} = + $self->{dbh}->prepare( "delete from status " + . "using status s, releases r " + . "where s.fileid = r.fileid " + . "and r.release = ?" ); + $self->{delete_releases} = + $self->{dbh}->prepare( "delete from releases " . "where release = ?" ); + $self->{delete_files} = + $self->{dbh}->prepare( "delete from files " + . "using files f, releases r " + . "where f.fileid = r.fileid " + . "and r.release = ?" ); return $self; } sub index { - my ($self, $symname, $fileid, $line, $langid, $type, $relsym) = @_; + my ( $self, $symname, $fileid, $line, $langid, $type, $relsym ) = @_; - $self->{indexes_insert}->execute($self->symid($symname), - $fileid, - $line, - $langid, - $type, - $relsym ? $self->symid($relsym) : undef); + $self->{indexes_insert}->execute( $self->symid($symname), + $fileid, $line, $langid, $type, $relsym ? $self->symid($relsym) : undef ); } sub reference { - my ($self, $symname, $fileid, $line) = @_; + my ( $self, $symname, $fileid, $line ) = @_; - $self->{usage_insert}->execute($fileid, - $line, - $self->symid($symname)); + $self->{usage_insert}->execute( $fileid, $line, $self->symid($symname) ); } sub getindex { - my ($self, $symname, $release) = @_; - my ($rows, @ret); + my ( $self, $symname, $release ) = @_; + my ( $rows, @ret ); - $rows = $self->{indexes_select}->execute("$symname", "$release"); + $rows = $self->{indexes_select}->execute( "$symname", "$release" ); - while ($rows-- > 0) { - push(@ret, [ $self->{indexes_select}->fetchrow_array ]); + while ( $rows-- > 0 ) { + push( @ret, [ $self->{indexes_select}->fetchrow_array ] ); } $self->{indexes_select}->finish(); - map { $$_[3] &&= $self->symname($$_[3]) } @ret; + map { $$_[3] &&= $self->symname( $$_[3] ) } @ret; return @ret; } sub getreference { - my ($self, $symname, $release) = @_; - my ($rows, @ret); + my ( $self, $symname, $release ) = @_; + my ( $rows, @ret ); - $rows = $self->{usage_select}->execute("$symname", "$release"); + $rows = $self->{usage_select}->execute( "$symname", "$release" ); - while ($rows-- > 0) { - push(@ret, [ $self->{usage_select}->fetchrow_array ]); + while ( $rows-- > 0 ) { + push( @ret, [ $self->{usage_select}->fetchrow_array ] ); } $self->{usage_select}->finish(); @@ -179,16 +171,16 @@ } sub fileid { - my ($self, $filename, $revision) = @_; + my ( $self, $filename, $revision ) = @_; my ($fileid); # CAUTION: $revision is not $release! - unless (defined($fileid = $files{"$filename\t$revision"})) { - $self->{files_select}->execute($filename, $revision); + unless ( defined( $fileid = $files{"$filename\t$revision"} ) ) { + $self->{files_select}->execute( $filename, $revision ); ($fileid) = $self->{files_select}->fetchrow_array(); unless ($fileid) { - $self->{files_insert}->execute($filename, $revision); - $self->{files_select}->execute($filename, $revision); + $self->{files_insert}->execute( $filename, $revision ); + $self->{files_select}->execute( $filename, $revision ); ($fileid) = $self->{files_select}->fetchrow_array(); } $files{"$filename\t$revision"} = $fileid; @@ -199,28 +191,29 @@ # Indicate that this filerevision is part of this release sub release { - my ($self, $fileid, $release) = @_; + my ( $self, $fileid, $release ) = @_; - my $rows = $self->{releases_select}->execute($fileid+0, $release); + my $rows = $self->{releases_select}->execute( $fileid + 0, $release ); $self->{releases_select}->finish(); - unless ($rows > 0) { - $self->{releases_insert}->execute($fileid, $release); + unless ( $rows > 0 ) { + $self->{releases_insert}->execute( $fileid, $release ); $self->{releases_insert}->finish(); } } sub symid { - my ($self, $symname) = @_; + my ( $self, $symname ) = @_; my ($symid); $symid = $symcache{$symname}; - unless (defined($symid)) { + unless ( defined($symid) ) { $self->{symbols_byname}->execute($symname); ($symid) = $self->{symbols_byname}->fetchrow_array(); $self->{symbols_byname}->finish(); unless ($symid) { $self->{symbols_insert}->execute($symname); + # Get the id of the new symbol $self->{symbols_byname}->execute($symname); ($symid) = $self->{symbols_byname}->fetchrow_array(); @@ -233,10 +226,10 @@ } sub symname { - my ($self, $symid) = @_; + my ( $self, $symid ) = @_; my ($symname); - $self->{symbols_byid}->execute($symid+0); + $self->{symbols_byid}->execute( $symid + 0 ); ($symname) = $self->{symbols_byid}->fetchrow_array(); $self->{symbols_byid}->finish(); @@ -244,11 +237,11 @@ } sub issymbol { - my ($self, $symname) = @_; + my ( $self, $symname ) = @_; my ($symid); $symid = $symcache{$symname}; - unless (defined($symid)) { + unless ( defined($symid) ) { $self->{symbols_byname}->execute($symname); ($symid) = $self->{symbols_byname}->fetchrow_array(); $self->{symbols_byname}->finish(); @@ -261,27 +254,27 @@ # If this file has not been indexed earlier return true. Return false # if already indexed. sub toindex { - my ($self, $fileid) = @_; + my ( $self, $fileid ) = @_; my ($status); $self->{status_get}->execute($fileid); $status = $self->{status_get}->fetchrow_array(); $self->{status_get}->finish(); - if(!defined($status)) { - $self->{status_insert}->execute($fileid+0, 0); + if ( !defined($status) ) { + $self->{status_insert}->execute( $fileid + 0, 0 ); } - + return $status == 0; } sub setindexed { - my ($self, $fileid) = @_; - $self->{status_update}->execute(1, $fileid, 0); - } + my ( $self, $fileid ) = @_; + $self->{status_update}->execute( 1, $fileid, 0 ); +} sub toreference { - my ($self, $fileid) = @_; + my ( $self, $fileid ) = @_; my ($status); $self->{status_get}->execute($fileid); @@ -292,73 +285,71 @@ } sub setreferenced { - my ($self, $fileid) = @_; - $self->{status_update}->execute(2, $fileid, 1); - } - + my ( $self, $fileid ) = @_; + $self->{status_update}->execute( 2, $fileid, 1 ); +} -# This function should be called before parsing each new file, +# This function should be called before parsing each new file, # if this is not done the too much memory will be used and -# tings will become very slow. +# tings will become very slow. sub empty_cache { %symcache = (); } sub getdecid { - my ($self, $lang, $string) = @_; + my ( $self, $lang, $string ) = @_; - my $rows = $self->{decl_select}->execute($lang, $string); - $self->{decl_select}->finish(); - - unless ($rows > 0) { - $self->{decl_insert}->execute($lang, $string); - } + my $rows = $self->{decl_select}->execute( $lang, $string ); + $self->{decl_select}->finish(); - $self->{decl_select}->execute($lang, $string); - my $id = $self->{decl_select}->fetchrow_array(); - $self->{decl_select}->finish(); + unless ( $rows > 0 ) { + $self->{decl_insert}->execute( $lang, $string ); + } - return $id; + $self->{decl_select}->execute( $lang, $string ); + my $id = $self->{decl_select}->fetchrow_array(); + $self->{decl_select}->finish(); + + return $id; } sub purge { - my ($self, $version) = @_; + my ( $self, $version ) = @_; + # we don't delete symbols, because they might be used by other versions - # so we can end up with unused symbols, but that doesn't cause any problems + # so we can end up with unused symbols, but that doesn't cause any problems $self->{delete_indexes}->execute($version); $self->{delete_useage}->execute($version); $self->{delete_status}->execute($version); $self->{delete_releases}->execute($version); $self->{delete_files}->execute($version); - } - +} sub DESTROY { my ($self) = @_; - $self->{files_select} = undef; - $self->{files_insert} = undef; - $self->{symbols_byname} = undef; - $self->{symbols_byid} = undef; - $self->{symbols_insert} = undef; - $self->{indexes_insert} = undef; + $self->{files_select} = undef; + $self->{files_insert} = undef; + $self->{symbols_byname} = undef; + $self->{symbols_byid} = undef; + $self->{symbols_insert} = undef; + $self->{indexes_insert} = undef; $self->{releases_insert} = undef; - $self->{status_insert} = undef; - $self->{status_update} = undef; - $self->{usage_insert} = undef; - $self->{usage_select} = undef; - $self->{decl_select} = undef; - $self->{decl_insert} = undef; - $self->{delete_indexes} = undef; - $self->{delete_useage} = undef; - $self->{delete_status} = undef; + $self->{status_insert} = undef; + $self->{status_update} = undef; + $self->{usage_insert} = undef; + $self->{usage_select} = undef; + $self->{decl_select} = undef; + $self->{decl_insert} = undef; + $self->{delete_indexes} = undef; + $self->{delete_useage} = undef; + $self->{delete_status} = undef; $self->{delete_releases} = undef; - $self->{delete_files} = undef; - - if($self->{dbh}) { + $self->{delete_files} = undef; + + if ( $self->{dbh} ) { $self->{dbh}->disconnect(); $self->{dbh} = undef; } } - 1; Index: Oracle.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Index/Oracle.pm,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Oracle.pm 15 Jul 2004 20:42:41 -0000 1.4 +++ Oracle.pm 19 Jul 2004 19:50:21 -0000 1.5 @@ -11,7 +11,7 @@ # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. @@ -29,164 +29,153 @@ @ISA = ("LXR::Index"); sub new { - my ($self, $dbname) = @_; + my ( $self, $dbname ) = @_; - $self = bless({}, $self); - - $self->{dbh} = DBI->connect($dbname, $config->{dbuser}, $config->{dbpass}, { RaiseError => 1, AutoCommit => 1 }) - || fatal "Can't open connection to database\n"; + $self = bless( {}, $self ); - %files = (); + $self->{dbh} = + DBI->connect( $dbname, $config->{dbuser}, $config->{dbpass}, + { RaiseError => 1, AutoCommit => 1 } ) + || fatal "Can't open connection to database\n"; + + %files = (); %symcache = (); - $self->{files_select} = $self->{dbh}->prepare - ("select fileid from files where filename = ? and revision = ?"); - $self->{files_insert} = $self->{dbh}->prepare - ("insert into files values (?, ?, filenum.nextval)"); + $self->{files_select} = + $self->{dbh}->prepare("select fileid from files where filename = ? and revision = ?"); + $self->{files_insert} = + $self->{dbh}->prepare("insert into files values (?, ?, filenum.nextval)"); - $self->{symbols_byname} = $self->{dbh}->prepare - ("select symid from symbols where symname = ?"); - $self->{symbols_byid} = $self->{dbh}->prepare - ("select symname from symbols where symid = ?"); - $self->{symbols_insert} = $self->{dbh}->prepare - ("insert into symbols values ( ?, symnum.nextval)"); - $self->{symbols_remove} = $self->{dbh}->prepare - ("delete from symbols where symname = ?"); + $self->{symbols_byname} = $self->{dbh}->prepare("select symid from symbols where symname = ?"); + $self->{symbols_byid} = $self->{dbh}->prepare("select symname from symbols where symid = ?"); + $self->{symbols_insert} = + $self->{dbh}->prepare("insert into symbols values ( ?, symnum.nextval)"); + $self->{symbols_remove} = $self->{dbh}->prepare("delete from symbols where symname = ?"); - $self->{indexes_select} = $self->{dbh}->prepare - ("select f.filename, i.line, i.type, i.relsym ". - "from symbols s, indexes i, files f, releases r ". - "where s.symid = i.symid and i.fileid = f.fileid ". - "and f.fileid = r.fileid ". - "and s.symname = ? and r.release = ? "); - $self->{indexes_insert} = $self->{dbh}->prepare - ("insert into indexes values (?, ?, ?, ?, ?)"); + $self->{indexes_select} = + $self->{dbh}->prepare( "select f.filename, i.line, i.type, i.relsym " + . "from symbols s, indexes i, files f, releases r " + . "where s.symid = i.symid and i.fileid = f.fileid " + . "and f.fileid = r.fileid " + . "and s.symname = ? and r.release = ? " ); + $self->{indexes_insert} = $self->{dbh}->prepare("insert into indexes values (?, ?, ?, ?, ?)"); - $self->{releases_select} = $self->{dbh}->prepare - ("select * from releases where fileid = ? and release = ?"); - - $self->{releases_insert} = $self->{dbh}->prepare - ("insert into releases values (?, ?)"); + $self->{releases_select} = + $self->{dbh}->prepare("select * from releases where fileid = ? and release = ?"); - $self->{status_get} = $self->{dbh}->prepare - ("select status from status where fileid = ?"); + $self->{releases_insert} = $self->{dbh}->prepare("insert into releases values (?, ?)"); + + $self->{status_get} = $self->{dbh}->prepare("select status from status where fileid = ?"); $self->{status_insert} = $self->{dbh}->prepare -# ("insert into status select ?, 0 except select fileid, 0 from status"); - ("insert into status values (?, ?)"); - $self->{status_update} = $self->{dbh}->prepare - ("update status set status = ? where fileid = ? and status <= ?"); + # ("insert into status select ?, 0 except select fileid, 0 from status"); + ("insert into status values (?, ?)"); - $self->{usage_insert} = $self->{dbh}->prepare - ("insert into usage values (?, ?, ?)"); - $self->{usage_select} = $self->{dbh}->prepare - ("select f.filename, u.line ". - "from symbols s, files f, releases r, usage u ". - "where s.symid = u.symid ". - "and f.fileid = u.fileid ". - "and u.fileid = r.fileid and ". - "s.symname = ? and r.release = ? ". - "order by f.filename"); + $self->{status_update} = + $self->{dbh}->prepare("update status set status = ? where fileid = ? and status <= ?"); - $self->{delete_indexes} = $self->{dbh}->prepare - ("delete from indexes ". - "where fileid in ". - " (select fileid from releases where release = ?)"); - $self->{delete_usage} = $self->{dbh}->prepare - ("delete from usage ". - "where fileid in ". - " (select fileid from releases where release = ?)"); - $self->{delete_status} = $self->{dbh}->prepare - ("delete from status ". - "where fileid in ". - " (select fileid from releases where release = ?)"); - $self->{delete_releases} = $self->{dbh}->prepare - ("delete from releases ". - "where release = ?"); - $self->{delete_files} = $self->{dbh}->prepare - ("delete from files ". - "where fileid in ". - " (select fileid from releases where release = ?)"); + $self->{usage_insert} = $self->{dbh}->prepare("insert into usage values (?, ?, ?)"); + $self->{usage_select} = + $self->{dbh}->prepare( "select f.filename, u.line " + . "from symbols s, files f, releases r, usage u " + . "where s.symid = u.symid " + . "and f.fileid = u.fileid " + . "and u.fileid = r.fileid and " + . "s.symname = ? and r.release = ? " + . "order by f.filename" ); + + $self->{delete_indexes} = + $self->{dbh}->prepare( "delete from indexes " + . "where fileid in " + . " (select fileid from releases where release = ?)" ); + $self->{delete_usage} = + $self->{dbh}->prepare( "delete from usage " + . "where fileid in " + . " (select fileid from releases where release = ?)" ); + $self->{delete_status} = + $self->{dbh}->prepare( "delete from status " + . "where fileid in " + . " (select fileid from releases where release = ?)" ); + $self->{delete_releases} = + $self->{dbh}->prepare( "delete from releases " . "where release = ?" ); + $self->{delete_files} = + $self->{dbh}->prepare( "delete from files " + . "where fileid in " + . " (select fileid from releases where release = ?)" ); - return $self; } sub index { - my ($self, $symname, $fileid, $line, $type, $relsym) = @_; + my ( $self, $symname, $fileid, $line, $type, $relsym ) = @_; - $self->{indexes_insert}->execute($self->symid($symname), - $fileid, - $line, - $type, - $relsym ? $self->symid($relsym) : undef); + $self->{indexes_insert}->execute( $self->symid($symname), + $fileid, $line, $type, $relsym ? $self->symid($relsym) : undef ); } sub reference { - my ($self, $symname, $fileid, $line) = @_; + my ( $self, $symname, $fileid, $line ) = @_; - $self->{usage_insert}->execute($fileid, - $line, - $self->symid($symname)); + $self->{usage_insert}->execute( $fileid, $line, $self->symid($symname) ); } -sub getindex { # Hinzugefügt von Variable @row, While-Schleife - my ($self, $symname, $release) = @_; - my ($rows, @ret, @row); +sub getindex { # Hinzugefügt von Variable @row, While-Schleife + my ( $self, $symname, $release ) = @_; + my ( $rows, @ret, @row ); - $rows = $self->{indexes_select}->execute("$symname", "$release"); - - while (@row = $self->{indexes_select}->fetchrow_array){ - push (@ret,[@row]); + $rows = $self->{indexes_select}->execute( "$symname", "$release" ); + + while ( @row = $self->{indexes_select}->fetchrow_array ) { + push( @ret, [@row] ); } - + #while ($rows-- > 0) { # push(@ret, [ $self->{indexes_select}->fetchrow_array ]); #} $self->{indexes_select}->finish(); - map { $$_[3] &&= $self->symname($$_[3]) } @ret; + map { $$_[3] &&= $self->symname( $$_[3] ) } @ret; return @ret; } sub getreference { - my ($self, $symname, $release) = @_; - my ($rows, @ret, @row); - - $rows = $self->{usage_select}->execute("$symname", "$release"); + my ( $self, $symname, $release ) = @_; + my ( $rows, @ret, @row ); - while (@row = $self->{usage_select}->fetchrow_array){ - push (@ret,[@row]); + $rows = $self->{usage_select}->execute( "$symname", "$release" ); + + while ( @row = $self->{usage_select}->fetchrow_array ) { + push( @ret, [@row] ); } - + #while ($rows-- > 0) { # push(@ret, [ $self->{usage_select}->fetchrow_array ]); #} - $self->{usage_select}->finish(); + $self->{usage_select}->finish(); return @ret; } sub fileid { - my ($self, $filename, $revision) = @_; + my ( $self, $filename, $revision ) = @_; my ($fileid); # CAUTION: $revision is not $release! - unless (defined($fileid = $files{"$filename\t$revision"})) { - $self->{files_select}->execute($filename, $revision); + unless ( defined( $fileid = $files{"$filename\t$revision"} ) ) { + $self->{files_select}->execute( $filename, $revision ); ($fileid) = $self->{files_select}->fetchrow_array(); - unless ($fileid) { - $self->{files_insert}->execute($filename, $revision); - $self->{files_select}->execute($filename, $revision); + unless ($fileid) { + $self->{files_insert}->execute( $filename, $revision ); + $self->{files_select}->execute( $filename, $revision ); ($fileid) = $self->{files_select}->fetchrow_array(); - + } - + $files{"$filename\t$revision"} = $fileid; $self->{files_select}->finish(); } @@ -195,31 +184,32 @@ # Indicate that this filerevision is part of this release sub release { - my ($self, $fileid, $release) = @_; + my ( $self, $fileid, $release ) = @_; my (@row); - my $rows = $self->{releases_select}->execute($fileid+0, $release); - while (@row = $self->{releases_select}->fetchrow_array){ - $rows=1; - } + my $rows = $self->{releases_select}->execute( $fileid + 0, $release ); + while ( @row = $self->{releases_select}->fetchrow_array ) { + $rows = 1; + } $self->{releases_select}->finish(); - unless ($rows > 0) { - $self->{releases_insert}->execute($fileid+0, $release); + unless ( $rows > 0 ) { + $self->{releases_insert}->execute( $fileid + 0, $release ); $self->{releases_insert}->finish(); } } sub symid { - my ($self, $symname) = @_; + my ( $self, $symname ) = @_; my ($symid); $symid = $symcache{$symname}; - unless (defined($symid)) { + unless ( defined($symid) ) { $self->{symbols_byname}->execute($symname); ($symid) = $self->{symbols_byname}->fetchrow_array(); $self->{symbols_byname}->finish(); unless ($symid) { $self->{symbols_insert}->execute($symname); + # Get the id of the new symbol $self->{symbols_byname}->execute($symname); ($symid) = $self->{symbols_byname}->fetchrow_array(); @@ -232,10 +222,10 @@ } sub symname { - my ($self, $symid) = @_; + my ( $self, $symid ) = @_; my ($symname); - $self->{symbols_byid}->execute($symid+0); + $self->{symbols_byid}->execute( $symid + 0 ); ($symname) = $self->{symbols_byid}->fetchrow_array(); $self->{symbols_byid}->finish(); @@ -243,11 +233,11 @@ } sub issymbol { - my ($self, $symname) = @_; + my ( $self, $symname ) = @_; my ($symid); $symid = $symcache{$symname}; - unless (defined($symid)) { + unless ( defined($symid) ) { $self->{symbols_byname}->execute($symname); ($symid) = $self->{symbols_byname}->fetchrow_array(); $self->{symbols_byname}->finish(); @@ -260,68 +250,68 @@ # If this file has not been indexed earlier, mark it as being indexed # now and return true. Return false if already indexed. sub toindex { - my ($self, $fileid) = @_; + my ( $self, $fileid ) = @_; my ($status); $self->{status_get}->execute($fileid); $status = $self->{status_get}->fetchrow_array(); $self->{status_get}->finish(); - if(!defined($status)) { - $self->{status_insert}->execute($fileid+0, 0); + if ( !defined($status) ) { + $self->{status_insert}->execute( $fileid + 0, 0 ); } - return $self->{status_update}->execute(1, $fileid, 0) > 0; + return $self->{status_update}->execute( 1, $fileid, 0 ) > 0; } sub toreference { - my ($self, $fileid) = @_; + my ( $self, $fileid ) = @_; my ($rv); - return $self->{status_update}->execute(2, $fileid, 1) > 0; + return $self->{status_update}->execute( 2, $fileid, 1 ) > 0; } -# This function should be called before parsing each new file, +# This function should be called before parsing each new file, # if this is not done the too much memory will be used and -# tings will become very slow. +# tings will become very slow. sub empty_cache { %symcache = (); } sub purge { - my ($self, $version) = @_; + my ( $self, $version ) = @_; + # we don't delete symbols, because they might be used by other versions - # so we can end up with unused symbols, but that doesn't cause any problems - $self ->{delete_indexes}->execute($version); - $self ->{$delete_usage}->execute($version); - $self ->{$delete_status}->execute($version); - $self ->{$delete_releases}->execute($version); - $self ->{$delete_files}->execute($version); - } + # so we can end up with unused symbols, but that doesn't cause any problems + $self->{delete_indexes}->execute($version); + $self->{$delete_usage}->execute($version); + $self->{$delete_status}->execute($version); + $self->{$delete_releases}->execute($version); + $self->{$delete_files}->execute($version); +} sub DESTROY { my ($self) = @_; - $self->{files_select} = undef; - $self->{files_insert} = undef; - $self->{symbols_byname} = undef; - $self->{symbols_byid} = undef; - $self->{symbols_insert} = undef; - $self->{indexes_insert} = undef; + $self->{files_select} = undef; + $self->{files_insert} = undef; + $self->{symbols_byname} = undef; + $self->{symbols_byid} = undef; + $self->{symbols_insert} = undef; + $self->{indexes_insert} = undef; $self->{releases_insert} = undef; - $self->{status_insert} = undef; - $self->{status_update} = undef; - $self->{usage_insert} = undef; - $self->{usage_select} = undef; - $self->{delete_indexes} = undef; - $self->{delete_useage} = undef; - $self->{delete_status} = undef; + $self->{status_insert} = undef; + $self->{status_update} = undef; + $self->{usage_insert} = undef; + $self->{usage_select} = undef; + $self->{delete_indexes} = undef; + $self->{delete_useage} = undef; + $self->{delete_status} = undef; $self->{delete_releases} = undef; - $self->{delete_files} = undef; + $self->{delete_files} = undef; - if($self->{dbh}) { + if ( $self->{dbh} ) { $self->{dbh}->disconnect(); $self->{dbh} = undef; } } - 1; Index: Postgres.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Index/Postgres.pm,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- Postgres.pm 19 Jul 2004 13:55:30 -0000 1.14 +++ Postgres.pm 19 Jul 2004 19:50:21 -0000 1.15 @@ -11,7 +11,7 @@ # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. @@ -25,170 +25,149 @@ use LXR::Common; use vars qw($dbh $transactions %files %symcache $commitlimit - $files_select $filenum_nextval $files_insert - $symbols_byname $symbols_byid $symnum_nextval - $symbols_remove $symbols_insert $indexes_select $indexes_insert - $releases_select $releases_insert $status_insert - $status_update $usage_insert $usage_select $decl_select - $declid_nextnum $decl_insert $delete_indexes $delete_usage - $delete_status $delete_releases $delete_files); - + $files_select $filenum_nextval $files_insert + $symbols_byname $symbols_byid $symnum_nextval + $symbols_remove $symbols_insert $indexes_select $indexes_insert + $releases_select $releases_insert $status_insert + $status_update $usage_insert $usage_select $decl_select + $declid_nextnum $decl_insert $delete_indexes $delete_usage + $delete_status $delete_releases $delete_files); sub new { - my ($self, $dbname) = @_; + my ( $self, $dbname ) = @_; - $self = bless({}, $self); - $dbh ||= DBI->connect($dbname, $config->{'dbuser'}, $config->{'dbpass'}); + $self = bless( {}, $self ); + $dbh ||= DBI->connect( $dbname, $config->{'dbuser'}, $config->{'dbpass'} ); die($DBI::errstr) unless $dbh; $$dbh{'AutoCommit'} = 0; -# $dbh->trace(1); - $commitlimit = 100; + # $dbh->trace(1); + + $commitlimit = 100; $transactions = 0; - %files = (); - %symcache = (); + %files = (); + %symcache = (); - $files_select = $dbh->prepare - ("select fileid from files where filename = ? and revision = ?"); - $filenum_nextval = $dbh->prepare - ("select nextval('filenum')"); - $files_insert = $dbh->prepare - ("insert into files values (?, ?, ?)"); + $files_select = $dbh->prepare("select fileid from files where filename = ? and revision = ?"); + $filenum_nextval = $dbh->prepare("select nextval('filenum')"); + $files_insert = $dbh->prepare("insert into files values (?, ?, ?)"); - $symbols_byname = $dbh->prepare - ("select symid from symbols where symname = ?"); - $symbols_byid = $dbh->prepare - ("select symname from symbols where symid = ?"); - $symnum_nextval = $dbh->prepare - ("select nextval('symnum')"); - $symbols_insert = $dbh->prepare - ("insert into symbols values (?, ?)"); - $symbols_remove = $dbh->prepare - ("delete from symbols where symname = ?"); + $symbols_byname = $dbh->prepare("select symid from symbols where symname = ?"); + $symbols_byid = $dbh->prepare("select symname from symbols where symid = ?"); + $symnum_nextval = $dbh->prepare("select nextval('symnum')"); + $symbols_insert = $dbh->prepare("insert into symbols values (?, ?)"); + $symbols_remove = $dbh->prepare("delete from symbols where symname = ?"); - $indexes_select = $dbh->prepare - ("select f.filename, i.line, d.declaration, i.relsym ". - "from symbols s, indexes i, files f, releases r, declarations d ". - "where s.symid = i.symid and i.fileid = f.fileid ". - "and f.fileid = r.fileid ". - "and i.langid = d.langid and i.type = d.declid ". - "and s.symname = ? and r.release = ?"); - $indexes_insert = $dbh->prepare - ("insert into indexes (symid, fileid, line, langid, type, relsym) ". - "values (?, ?, ?, ?, ?, ?)"); + $indexes_select = + $dbh->prepare( "select f.filename, i.line, d.declaration, i.relsym " + . "from symbols s, indexes i, files f, releases r, declarations d " + . "where s.symid = i.symid and i.fileid = f.fileid " + . "and f.fileid = r.fileid " + . "and i.langid = d.langid and i.type = d.declid " + . "and s.symname = ? and r.release = ?" ); + $indexes_insert = + $dbh->prepare( "insert into indexes (symid, fileid, line, langid, type, relsym) " + . "values (?, ?, ?, ?, ?, ?)" ); - $releases_select = $dbh->prepare - ("select * from releases where fileid = ? and release = ?"); - $releases_insert = $dbh->prepare - ("insert into releases values (?, ?)"); + $releases_select = $dbh->prepare("select * from releases where fileid = ? and release = ?"); + $releases_insert = $dbh->prepare("insert into releases values (?, ?)"); $status_insert = $dbh->prepare -# ("insert into status select ?, 0 except select fileid, 0 from status"); - ("insert into status select ?, 0 where not exists ". - "(select * from status where fileid = ?)"); - $status_update = $dbh->prepare - ("update status set status = ? where fileid = ? and status <= ?"); + # ("insert into status select ?, 0 except select fileid, 0 from status"); + ( "insert into status select ?, 0 where not exists " + . "(select * from status where fileid = ?)" ); - $usage_insert = $dbh->prepare - ("insert into usage values (?, ?, ?)"); - $usage_select = $dbh->prepare - ("select f.filename, u.line ". - "from symbols s, files f, releases r, usage u ". - "where s.symid = u.symid ". - "and f.fileid = u.fileid ". - "and f.fileid = r.fileid and ". - "s.symname = ? and r.release = ?"); + $status_update = $dbh->prepare("update status set status = ? where fileid = ? and status <= ?"); - $declid_nextnum = $dbh->prepare - ("select nextval('declnum')"); - - $decl_select = $dbh->prepare - ("select declid from declarations where langid = ? and ". - "declaration = ?"); - $decl_insert = $dbh->prepare - ("insert into declarations (declid, langid, declaration) values (?, ?, ?)"); + $usage_insert = $dbh->prepare("insert into usage values (?, ?, ?)"); + $usage_select = + $dbh->prepare( "select f.filename, u.line " + . "from symbols s, files f, releases r, usage u " + . "where s.symid = u.symid " + . "and f.fileid = u.fileid " + . "and f.fileid = r.fileid and " + . "s.symname = ? and r.release = ?" ); - $delete_indexes = $dbh->prepare - ("delete from indexes ". - "where fileid in ". - " (select fileid from releases where release = ?)"); - $delete_usage = $dbh->prepare - ("delete from usage ". - "where fileid in ". - " (select fileid from releases where release = ?)"); - $delete_status = $dbh->prepare - ("delete from status ". - "where fileid in ". - " (select fileid from releases where release = ?)"); - $delete_releases = $dbh->prepare - ("delete from releases ". - "where release = ?"); - $delete_files = $dbh->prepare - ("delete from files ". - "where fileid in ". - " (select fileid from releases where release = ?)"); + $declid_nextnum = $dbh->prepare("select nextval('declnum')"); + + $decl_select = + $dbh->prepare( "select declid from declarations where langid = ? and " . "declaration = ?" ); + $decl_insert = + $dbh->prepare("insert into declarations (declid, langid, declaration) values (?, ?, ?)"); + + $delete_indexes = + $dbh->prepare( "delete from indexes " + . "where fileid in " + . " (select fileid from releases where release = ?)" ); + $delete_usage = + $dbh->prepare( "delete from usage " + . "where fileid in " + . " (select fileid from releases where release = ?)" ); + $delete_status = + $dbh->prepare( "delete from status " + . "where fileid in " + . " (select fileid from releases where release = ?)" ); + $delete_releases = $dbh->prepare( "delete from releases " . "where release = ?" ); + $delete_files = + $dbh->prepare( "delete from files " + . "where fileid in " + . " (select fileid from releases where release = ?)" ); return $self; } sub empty_cache { - %symcache = (); + %symcache = (); } sub commit_if_limit { - unless (++$transactions % $commitlimit) { + unless ( ++$transactions % $commitlimit ) { $dbh->commit(); } } sub index { - my ($self, $symname, $fileid, $line, $langid, $type, $relsym) = @_; + my ( $self, $symname, $fileid, $line, $langid, $type, $relsym ) = @_; - $indexes_insert->execute($self->symid($symname), - $fileid, - $line, - $langid, - $type, - $relsym ? $self->symid($relsym) : undef); + $indexes_insert->execute( $self->symid($symname), + $fileid, $line, $langid, $type, $relsym ? $self->symid($relsym) : undef ); commit_if_limit(); } sub reference { - my ($self, $symname, $fileid, $line) = @_; + my ( $self, $symname, $fileid, $line ) = @_; - $usage_insert->execute($fileid, - $line, - $self->symid($symname)); + $usage_insert->execute( $fileid, $line, $self->symid($symname) ); commit_if_limit(); } sub getindex { - my ($self, $symname, $release) = @_; - my ($rows, @ret); + my ( $self, $symname, $release ) = @_; + my ( $rows, @ret ); - $rows = $indexes_select->execute("$symname", "$release"); + $rows = $indexes_select->execute( "$symname", "$release" ); - while ($rows-- > 0) { - push(@ret, [ $indexes_select->fetchrow_array ]); + while ( $rows-- > 0 ) { + push( @ret, [ $indexes_select->fetchrow_array ] ); } $indexes_select->finish(); - map { $$_[3] &&= $self->symname($$_[3]) } @ret; + map { $$_[3] &&= $self->symname( $$_[3] ) } @ret; return @ret; } sub getreference { - my ($self, $symname, $release) = @_; - my ($rows, @ret); + my ( $self, $symname, $release ) = @_; + my ( $rows, @ret ); - $rows = $usage_select->execute("$symname", "$release"); + $rows = $usage_select->execute( "$symname", "$release" ); - while ($rows-- > 0) { - push(@ret, [ $usage_select->fetchrow_array ]); + while ( $rows-- > 0 ) { + push( @ret, [ $usage_select->fetchrow_array ] ); } $usage_select->finish(); @@ -197,29 +176,29 @@ } sub relate { - my ($self, $symname, $release, $rsymname, $reltype) = @_; + my ( $self, $symname, $release, $rsymname, $reltype ) = @_; -# $relation{$self->symid($symname, $release)} .= -# join("\t", $self->symid($rsymname, $release), $reltype, ''); + # $relation{$self->symid($symname, $release)} .= + # join("\t", $self->symid($rsymname, $release), $reltype, ''); } sub getrelations { - my ($self, $symname, $release) = @_; + my ( $self, $symname, $release ) = @_; } sub fileid { - my ($self, $filename, $revision) = @_; + my ( $self, $filename, $revision ) = @_; my ($fileid); # CAUTION: $revision is not $release! - unless (defined($fileid = $files{"$filename\t$revision"})) { - $files_select->execute($filename, $revision); + unless ( defined( $fileid = $files{"$filename\t$revision"} ) ) { + $files_select->execute( $filename, $revision ); ($fileid) = $files_select->fetchrow_array(); unless ($fileid) { $filenum_nextval->execute(); ($fileid) = $filenum_nextval->fetchrow_array(); - $files_insert->execute($filename, $revision, $fileid); + $files_insert->execute( $filename, $revision, $fileid ); } $files{"$filename\t$revision"} = $fileid; } @@ -229,32 +208,30 @@ # Indicate that this filerevision is part of this release sub release { - my ($self, $fileid, $release) = @_; - + my ( $self, $fileid, $release ) = @_; - $releases_select->execute($fileid+0, $release); + $releases_select->execute( $fileid + 0, $release ); my $firstrow = $releases_select->fetchrow_array(); - -# $releases_select->finish(); + # $releases_select->finish(); unless ($firstrow) { - $releases_insert->execute($fileid+0, $release); + $releases_insert->execute( $fileid + 0, $release ); } commit_if_limit(); } sub symid { - my ($self, $symname) = @_; + my ( $self, $symname ) = @_; my ($symid); - unless (defined($symid = $symcache{$symname})) { + unless ( defined( $symid = $symcache{$symname} ) ) { $symbols_byname->execute($symname); ($symid) = $symbols_byname->fetchrow_array(); unless ($symid) { $symnum_nextval->execute(); ($symid) = $symnum_nextval->fetchrow_array(); - $symbols_insert->execute($symname, $symid); + $symbols_insert->execute( $symname, $symid ); } $symcache{$symname} = $symid; } @@ -263,66 +240,67 @@ } sub symname { - my ($self, $symid) = @_; + my ( $self, $symid ) = @_; my ($symname); - $symbols_byid->execute($symid+0); + $symbols_byid->execute( $symid + 0 ); ($symname) = $symbols_byid->fetchrow_array(); return $symname; } sub issymbol { - my ($self, $symname) = @_; + my ( $self, $symname ) = @_; - unless (exists($symcache{$symname})) { + unless ( exists( $symcache{$symname} ) ) { $symbols_byname->execute($symname); - ($symcache{$symname}) = $symbols_byname->fetchrow_array(); + ( $symcache{$symname} ) = $symbols_byname->fetchrow_array(); } - + return $symcache{$symname}; } # If this file has not been indexed earlier, mark it as being indexed # now and return true. Return false if already indexed. sub toindex { - my ($self, $fileid) = @_; + my ( $self, $fileid ) = @_; - $status_insert->execute($fileid+0, $fileid+0); + $status_insert->execute( $fileid + 0, $fileid + 0 ); commit_if_limit(); - return $status_update->execute(1, $fileid+0, 0) > 0; + return $status_update->execute( 1, $fileid + 0, 0 ) > 0; } sub toreference { - my ($self, $fileid) = @_; + my ( $self, $fileid ) = @_; - return $status_update->execute(2, $fileid, 1) > 0; + return $status_update->execute( 2, $fileid, 1 ) > 0; } sub getdecid { - my ($self, $lang, $string) = @_; + my ( $self, $lang, $string ) = @_; - my $rows = $decl_select->execute($lang, $string); - $decl_select->finish(); - - unless ($rows > 0) { - $declid_nextnum->execute(); - my ($declid) = $declid_nextnum->fetchrow_array(); - $decl_insert->execute($declid, $lang, $string); - } + my $rows = $decl_select->execute( $lang, $string ); + $decl_select->finish(); - $decl_select->execute($lang, $string); + unless ( $rows > 0 ) { + $declid_nextnum->execute(); + my ($declid) = $declid_nextnum->fetchrow_array(); + $decl_insert->execute( $declid, $lang, $string ); + } + + $decl_select->execute( $lang, $string ); my $id = $decl_select->fetchrow_array(); - $decl_select->finish(); + $decl_select->finish(); commit_if_limit(); - return $id; + return $id; } sub purge { - my ($self, $version) = @_; + my ( $self, $version ) = @_; + # we don't delete symbols, because they might be used by other versions - # so we can end up with unused symbols, but that doesn't cause any problems + # so we can end up with unused symbols, but that doesn't cause any problems $delete_indexes->execute($version); $delete_usage->execute($version); $delete_status->execute($version); @@ -332,45 +310,45 @@ } sub setindexed { - my ($self, $fileid) = @_; - $status_update->execute(1, $fileid, 0); + my ( $self, $fileid ) = @_; + $status_update->execute( 1, $fileid, 0 ); } + sub setreferenced { - my ($self, $fileid) = @_; - $status_update->execute(2, $fileid, 1); + my ( $self, $fileid ) = @_; + $status_update->execute( 2, $fileid, 1 ); } sub END { - $files_select= undef; - $filenum_nextval= undef; - $files_insert = undef; - $symbols_byname= undef; - $symbols_byid= undef; - $symnum_nextval = undef; - $symbols_remove= undef; - $symbols_insert= undef; - $indexes_select= undef; - $indexes_insert = undef; - $releases_select= undef; - $releases_insert= undef; - $status_insert = undef; - $status_update= undef; - $usage_insert= undef; - $usage_select= undef; - $decl_select = undef; - $declid_nextnum= undef; - $decl_insert = undef; - $delete_indexes = undef; - $delete_usage = undef; - $delete_status = undef; + $files_select = undef; + $filenum_nextval = undef; + $files_insert = undef; + $symbols_byname = undef; + $symbols_byid = undef; + $symnum_nextval = undef; + $symbols_remove = undef; + $symbols_insert = undef; + $indexes_select = undef; + $indexes_insert = undef; + $releases_select = undef; + $releases_insert = undef; + $status_insert = undef; + $status_update = undef; + $usage_insert = undef; + $usage_select = undef; + $decl_select = undef; + $declid_nextnum = undef; + $decl_insert = undef; + $delete_indexes = undef; + $delete_usage = undef; + $delete_status = undef; $delete_releases = undef; - $delete_files = undef; - + $delete_files = undef; + $dbh->commit(); $dbh->disconnect(); $dbh = undef; } - 1; |