Thread: [Lxr-commits] CVS: lxr/lib/LXR/Index Mysql.pm,1.13,1.14 Oracle.pm,1.2,1.3 Postgres.pm,1.11,1.12
Brought to you by:
ajlittoz
From: Dave B. <bro...@us...> - 2004-07-15 20:30:05
|
Update of /cvsroot/lxr/lxr/lib/LXR/Index In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17687/lib/LXR/Index Modified Files: Mysql.pm Oracle.pm Postgres.pm Log Message: add option to force full indexing Index: Mysql.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Index/Mysql.pm,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- Mysql.pm 21 Apr 2004 22:52:11 -0000 1.13 +++ Mysql.pm 15 Jul 2004 20:29:56 -0000 1.14 @@ -99,6 +99,30 @@ $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; } @@ -296,7 +320,18 @@ return $id; } - + +sub purge { + 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_useage}->execute($version); + $self->{delete_status}->execute($version); + $self->{delete_releases}->execute($version); + $self->{delete_files}->execute($version); + } + sub DESTROY { my ($self) = @_; Index: Oracle.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Index/Oracle.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Oracle.pm 14 Jul 2004 14:27:18 -0000 1.2 +++ Oracle.pm 15 Jul 2004 20:29:56 -0000 1.3 @@ -89,6 +89,26 @@ "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_useage} = $self->{dbh}->prepare + ("delete from useage ". + "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; } @@ -267,6 +287,17 @@ %symcache = (); } +sub purge { + 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_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; Index: Postgres.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Index/Postgres.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Postgres.pm 15 Jul 2004 20:16:03 -0000 1.11 +++ Postgres.pm 15 Jul 2004 20:29:56 -0000 1.12 @@ -109,6 +109,27 @@ $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_useage = $dbh->prepare + ("delete from useage ". + "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; } @@ -298,6 +319,16 @@ return $id; } +sub purge { + 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 + $delete_indexes->execute($version); + $delete_useage->execute($version); + $delete_status->execute($version); + $delete_releases->execute($version); + $delete_files->execute($version); + } sub setindexed { my ($self, $fileid) = @_; |