#!/usr/bin/perl
use lib ".";
use DBI;
use DBD::mysql;
use Bio::Maxd;
use Sys::Hostname;

  my $dbase = "maxd";
  my $hostname = hostname();
  $host = $ENV{'MAXD_HOSTDB'} || $hostname || "localhost";
  print "Verifying MaxD for database '$dbase' at host '$host'.\n";
  my($user,$pass) = split(/\//,$ENV{'MAXD_USERID'});

  my $maxd = new Bio::Maxd(-host=>$host,-dbase=>$dbase,-user=>$user,-pass=>$pass);;
  my %tables = getAllTables($maxd->{'dbh'});
  verifySequenceTables($maxd->{'dbh'},%tables);

sub verifySequenceTables {
  my($dbh,%tables) = @_;
  foreach $table (qw(Hybridisation Image Measurement Description)) {
    my $newTable = $table . "_Seq";
    my $st = "select max(ID) from $table";
    my $sh = $dbh->prepare($st);
    my $rv = $sh->execute;
    my ($id)= $sh->fetchrow_array;
    $dbh->do(qq{DROP TABLE IF EXISTS $newTable});
    my $ok = $dbh->do(qq{CREATE TABLE $newTable (id INT NOT NULL)});
    print "verified $newTable\n" if ($ok);
    $ok += $dbh->do(qq{INSERT INTO $newTable VALUES ($id)});
  }
}

sub getAllTables {
  my($dbh) = @_;
  my($tname,%tables);
  my $st = "show tables";
  my $sh = $dbh->prepare($st);
  my $rv = $sh->execute;
  while($tname= $sh->fetchrow_array) {
    $tables{$tname}++;
  }
  return %tables;
}