my ($self) = @_;
my $failed = 0;
my $xref_id;
my $count;
my $dbi = $self->xref->dbc;
my $sth_stat = $dbi->prepare("insert into process_status (status, date) values('tests_started',now())");
$sth_stat->execute();
# dependent_xref and xref
my $count_sql = "select count(1) from dependent_xref d left join xref x on d.master_xref_id = x.xref_id where x.xref_id is null";
my $sql = "select distinct(d.master_xref_id) from dependent_xref d left join xref x on d.master_xref_id = x.xref_id where x.xref_id is null limit 10";
my $sth = $dbi->prepare($count_sql);
$sth->execute();
$sth->bind_columns(\$count);
$sth->fetch();
$sth->finish;
if($count){
$failed = 1;
$sth = $dbi->prepare($sql);
$sth->execute();
$sth->bind_columns(\$xref_id);
print STDERR "SQL QUERY: $sql\n";
while($sth->fetch){
print STDERR "Problem with master xref $xref_id\n";
}
$sth->finish;
}
$count_sql = "select count(1) from dependent_xref d left join xref x on d.dependent_xref_id = x.xref_id where x.xref_id is null";
$sql = "select distinct(d.dependent_xref_id) from dependent_xref d left join xref x on d.dependent_xref_id = x.xref_id where x.xref_id is null limit 10";
$sth = $dbi->prepare($count_sql);
$sth->execute();
$sth->bind_columns(\$count);
$sth->fetch();
$sth->finish;
if($count){
$failed = 1;
$sth = $dbi->prepare($sql);
$sth->execute();
$sth->bind_columns(\$xref_id);
print STDERR "SQL QUERY: $sql\n";
while($sth->fetch){
print STDERR "Problem with dependent xref $xref_id\n";
}
$sth->finish;
}
$count_sql = "select count(1) from primary_xref d left join xref x on d.xref_id = x.xref_id where x.xref_id is null";
$sql = "select distinct(d.xref_id) from primary_xref d left join xref x on d.xref_id = x.xref_id where x.xref_id is null limit 10";
$sth = $dbi->prepare($count_sql);
$sth->execute();
$sth->bind_columns(\$count);
$sth->fetch();
$sth->finish;
if($count){
$failed = 1;
$sth = $dbi->prepare($sql);
$sth->execute();
$sth->bind_columns(\$xref_id);
print STDERR "SQL QUERY: $sql\n";
while($sth->fetch){
print STDERR "Problem with primary xref $xref_id\n";
}
$sth->finish;
}
foreach my $type (qw(
transcript translation gene)){
$count_sql = "select count(1) from ".$type."_direct_xref d left join xref x on d.general_xref_id = x.xref_id where x.xref_id is null";
$sql = "select distinct(d.general_xref_id) from ".$type."_direct_xref d left join xref x on d.general_xref_id = x.xref_id where x.xref_id is null limit 10";
$sth = $dbi->prepare($count_sql);
$sth->execute();
$sth->bind_columns(\$count);
$sth->fetch();
$sth->finish;
if($count){
$failed = 1;
$sth = $dbi->prepare($sql);
$sth->execute();
$sth->bind_columns(\$xref_id);
print STDERR "SQL QUERY: $sql\n";
while($sth->fetch){
print STDERR "Problem with ".$type."_direct_xref $xref_id\n";
}
$sth->finish;
}
}
$count_sql = "select count(1) from synonym d left join xref x on d.xref_id = x.xref_id where x.xref_id is null";
$sql = "select distinct(d.xref_id) from synonym d left join xref x on d.xref_id = x.xref_id where x.xref_id is null limit 10";
$sth = $dbi->prepare($count_sql);
$sth->execute();
$sth->bind_columns(\$count);
$sth->fetch();
$sth->finish;
if($count){
$failed = 1;
$sth = $dbi->prepare($sql);
$sth->execute();
$sth->bind_columns(\$xref_id);
print STDERR "SQL QUERY: $sql\n";
while($sth->fetch){
print STDERR "Problem with synonym $xref_id\n";
}
$sth->finish;
}
$count_sql = "select count(1) from identity_xref d left join object_xref o on d.object_xref_id = o.object_xref_id where o.object_xref_id is null";
$sql = "select distinct(d.object_xref_id) from identity_xref d left join object_xref o on d.object_xref_id = o.object_xref_id where o.object_xref_id is null limit 10";
$sth = $dbi->prepare($count_sql);
$sth->execute();
$sth->bind_columns(\$count);
$sth->fetch();
$sth->finish;
if($count){
$failed = 1;
$sth = $dbi->prepare($sql);
$sth->execute();
$sth->bind_columns(\$xref_id);
print STDERR "SQL QUERY: $sql\n";
while($sth->fetch){
print STDERR "Problem with object_xref $xref_id\n";
}
$sth->finish;
}
foreach my $type (qw(
transcript translation gene)){
$count_sql = "select count(1) from gene_transcript_translation d left join ".$type."_stable_id x on d.".$type."_id = x.internal_id where x.internal_id is null and d.".$type."_id is not null";
$sql = "select distinct(d.".$type."_id) from gene_transcript_translation d left join ".$type."_stable_id x on d.".$type."_id = x.internal_id where x.internal_id is null and d.".$type."_id is not null limit 10";
$sth = $dbi->prepare($count_sql);
$sth->execute();
$sth->bind_columns(\$count);
$sth->fetch();
$sth->finish;
if($count){
$failed = 1;
$sth = $dbi->prepare($sql);
$sth->execute();
$sth->bind_columns(\$xref_id);
print STDERR "SQL QUERY: $sql\n";
while($sth->fetch){
print STDERR "Problem with ".$type."_id $xref_id\n";
}
$sth->finish;
}
}
if(!$failed){
$sth_stat = $dbi->prepare("insert into process_status (status, date) values('tests_finished',now())");
$sth_stat->execute();
}
else{
$sth_stat = $dbi->prepare("insert into process_status (status, date) values('tests_failed',now())");
$sth_stat->execute();
}
$sth_stat->finish;
return $failed;
}