#!/usr/bin/perl -w

use Pg;
use strict;
use vars qw($haslo $conn $query $result $prevnrfrm $prevknrfrm $state);

$haslo=shift;

die "Potrzebny argument: sowo do konkordancji"  unless $haslo;
print STDERR "Generuj konkordancj dla hasa '$haslo'.\n";

$conn = Pg::connectdb("dbname = frek");

die "Could not connect to the database"
    unless $conn->status == PGRES_CONNECTION_OK;

$query = "select w.nrfrm, f.forma, wd.nrfrm
from wystapienia wd, interpretacje, leksemy, wystapienia w, formy f
where wd.wfid=ifid and ilid=lid and haslo='$haslo'
  and (w.nrfrm between wd.nrfrm-5 and wd.nrfrm+5) and
      w.wfid=f.fid
group by w.wid, w.nrfrm, f.forma, wd.nrfrm
order by wd.nrfrm, w.wid;
";

print STDERR "Przetwarzanie zapytania...";
$result = $conn->exec($query);

die $conn->errorMessage unless $result->resultStatus == PGRES_TUPLES_OK;
print STDERR " gotowe.\n";

$prevnrfrm=0; $prevknrfrm=0; $state=0; 
while (my ($nrfrm,$forma,$knrfrm) = $result->fetchrow) {
    print ">" if ($prevnrfrm == $knrfrm && $nrfrm > $knrfrm);
    print $knrfrm == $prevknrfrm ? '' : "\n";
    print $nrfrm == $prevnrfrm ? '' : ' ';
    print "<" if ($prevnrfrm < $knrfrm && $nrfrm == $knrfrm);
    print "$forma" ;
#    print "$nrfrm $forma $knrfrm\n";
    $prevnrfrm=$nrfrm; $prevknrfrm=$knrfrm;
}


print "\n";
