X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXSql%2FSQLite.pm;h=36bcc46da72554ae53721a85b147f8f6868b0e6b;hb=refs%2Fheads%2Fstaging;hp=834b4b66e798447a423b6ca246f704041949520c;hpb=7b9256ceade8b18b48f848c9ac659c2de7322b0b;p=spider.git diff --git a/perl/DXSql/SQLite.pm b/perl/DXSql/SQLite.pm index 834b4b66..36bcc46d 100644 --- a/perl/DXSql/SQLite.pm +++ b/perl/DXSql/SQLite.pm @@ -3,7 +3,7 @@ # # Stuff like table creates and (later) alters # -# $Id$ +# # # Copyright (c) 2005 Dirk Koopman G1TLH # @@ -12,6 +12,7 @@ package DXSql::SQLite; use DXDebug; +use vars qw(@ISA); @ISA = qw{DXSql}; sub show_tables @@ -21,11 +22,36 @@ sub show_tables my $sth = $self->prepare($s); $sth->execute; my @out; - push @out, $sth->fetchrow_array; + while (my @t = $sth->fetchrow_array) { + push @out, @t; + } $sth->finish; return @out; } +sub has_ipaddr +{ + my $self = shift; + my $s = q(PRAGMA table_info(spot)); + my $sth = $self->prepare($s); + $sth->execute; + while (my @t = $sth->fetchrow_array) { + if ($t[1] eq 'ipaddr') { + $sth->finish; + return 1; + } + } + $sth->finish; + return undef; +} + +sub add_ipaddr +{ + my $self = shift; + my $s = q(alter table spot add column ipaddr text); + $self->do($s); +} + sub spot_create_table { my $self = shift; @@ -44,7 +70,8 @@ spotcq int, spotteritu int, spottercq int, spotstate text, -spotterstate text +spotterstate text, +ipaddr text )}; $self->do($s); } @@ -52,10 +79,14 @@ spotterstate text sub spot_add_indexes { my $self = shift; - $self->do('create index spot_ix1 on spot(time desc)'); dbg('adding spot index ix1'); - $self->do('create index spot_ix2 on spot(spotcall asc)'); + $self->do('create index spot_ix1 on spot(time asc)'); dbg('adding spot index ix2'); + $self->do('create index spot_ix2 on spot(spotcall asc)'); + dbg('adding spot index ix3'); + $self->do('create index spot_ix3 on spot(freq asc)'); + dbg('adding spot index ix4'); + $self->do('create index spot_ix4 on spot(spotter asc)'); }