From f4808dda09a01455cf36b28ccaae9e40e7c31d98 Mon Sep 17 00:00:00 2001 From: Rogan Hamby Date: Tue, 6 Mar 2018 10:55:31 -0500 Subject: [PATCH] making checking tables smarter after removing the m_wh uses --- mig-bin/mig-reporter | 37 ++++++++++++++++++++++++++++--------- 1 files changed, 28 insertions(+), 9 deletions(-) diff --git a/mig-bin/mig-reporter b/mig-bin/mig-reporter index 8914005..a0bb7d1 100755 --- a/mig-bin/mig-reporter +++ b/mig-bin/mig-reporter @@ -159,8 +159,6 @@ foreach my $t (@report_tags) { } } - print Dumper(@report_names); - #only has one level of failover now but could change to array of hashes and loops #but this keeps it simple and in practice I haven't needed more than two foreach my $rname (@report_names) { @@ -199,7 +197,7 @@ sub find_report { print "iteration $iteration "; foreach my $node ($dom->findnodes('//report')) { if ($node->findvalue('./tag') =~ $tag and $node->findvalue('./iteration') eq $iteration and $node->findvalue('./name') eq $name) { - print "succeeded ... "; + print "succeeded ... \n"; %report = ( name => $node->findvalue('./name'), report_title => $node->findvalue('./report_title'), @@ -212,7 +210,7 @@ sub find_report { return %report; } } - print "failed ... "; + print "failed ... \n"; return %report = ( name => "eaten by grue" ); @@ -259,17 +257,38 @@ sub check_table { my $query = shift; my $MIGSCHEMA = shift; - my $i = 0; + my $i; my $return_flag = 1; my @qe = split(/ /,$query); - my @tables = grep /MIGSCHEMA/, @qe; - + $i = @qe; + $i--; + my @tables; + while ($i > -1) { + if ($qe[$i] eq 'FROM' or $qe[$i] eq 'JOIN') { + my $q = $i + 1; + if ($qe[$q] ne '(SELECT') { + push @tables, $qe[$q]; + } + } + $i--; + } print "checking tables ... "; + + $i = 0; foreach my $table (@tables) { - $table =~ s/MIGSCHEMA.//g; $table =~ s/\)//g; $table =~ s/\prepare($sql); $sth->execute(); while (my @row = $sth->fetchrow_array) { -- 1.7.2.5