#!/usr/bin/perl -w

use lib "/tass/src/perl";

use TASSIV;
use strict;
use Pg;
use IO::Socket;

autoflush STDOUT;

my $tass = Pg::connectdb( "dbname=$db_name" );
die "Could not connect to database $db_name"
   unless PGRES_CONNECTION_OK eq $tass->status;

open( FILE, "< /tass/catalogs/Tycho-2/data/catalog.dat" );

my $sql = <<__END_COPY__;

COPY composit
FROM stdin
__END_COPY__

my ( $result, $magv, $ra, $dec );
my $count = 1;

$result = $tass->exec( $sql );
die $sql . $tass->errorMessage
   unless PGRES_COPY_IN eq $result->resultStatus;


while( <FILE> )
   {
   my @line = split( '\|', $_ );
   next unless ( ( $line[17] =~ /[\d.-]+/o ) && ( $line[19] =~ /[\d.-]+/o ) );
   if ( $line[ 1 ] eq "X" )
      {
      $ra = $line[24];
      $dec = $line[25];
      }
   else
      {
      $ra = $line[2];
      $dec = $line[3];
      }

   $magv = $line[ 19 ] + 0.008 - 0.0988 * ($line[ 17 ] - $line[ 19 ]);

   $tass->putline( join( "\t", $count, $ra, $dec, 0, 0, 0, 0, 0, 0, $magv ) . "\n" );

   print "." if !($count % 1000);
   printf( "%7d\n", $count ) if !($count % 70000);
   ++$count;
   }

close( FILE );

$tass->putline( "\\.\n" );
print "\n";
die $tass->errorMessage unless 0 eq $tass->endcopy;

$sql = "SELECT setval( 'composit_id_seq', 10000000 )\n";
print $sql;
$tass->exec( $sql );
$sql = "CREATE INDEX c_index ON composit USING BTREE( ra, decl)\n";
print $sql;
$tass->exec( $sql );
$sql = "VACUUM analyze\n";
print $sql;
$tass->exec( $sql );



