blob: 987a6c78e006f6837b1bb4c8d99257a0cb041ce6 [file] [log] [blame]
#!/usr/bin/perl
# Copyright (c) 2006 Eclipse Foundation, made available under EPL v1.0
# Contributors Ward Cunningham, Bjorn Freeman-Benson
#
# usage:
# insert.pl < TAB_FILE
#
use strict;
use FileHandle;
use DBI;
sub writelog {
my $line = shift;
my $logfilename = "logs/inserts.log";
my $date = `date`;
chomp($date);
open LOG, ">>$logfilename";
print LOG $date . " " . $line . "\n";
close LOG;
}
require 'dbpassconfig'; our $db_password;
chomp( $db_password );
my $dsn = 'DBI:mysql:dashboard';
my $db_user_name = 'dashboard';
my $dbh = DBI->connect($dsn, $db_user_name, $db_password);
my $line;
my @header;
my $count = 0;
my $sth;
$_ = shift;
my $batch = /\-\-batch/;
my $table = $batch ? "commits_batch" : "commits";
while( $line = <STDIN> ) {
chomp($line);
if( $line =~ /^#(.*)/ ) {
my $header = $1;
@header = split /\t/, $header;
my @questions = map( "?", @header );
my $sql =
"INSERT INTO $table ( "
. join( ", ", @header )
. " ) VALUES ("
. join( ", ", @questions )
. " );";
$sth = $dbh->prepare($sql) or writelog( "prepare error: " . $dbh->errstr );
} else {
$count++;
my @body = split( /\t/, $line );
if( @body == 1 ) {
} elsif( @body == 2 ) {
$sth->execute( $body[0], $body[1] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 3 ) {
$sth->execute( $body[0], $body[1], $body[2] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 4 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 5 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3],
$body[4] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 6 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3],
$body[4], $body[5] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 7 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3],
$body[4], $body[5], $body[6] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 8 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3],
$body[4], $body[5], $body[6], $body[7] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 9 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3],
$body[4], $body[5], $body[6], $body[7],
$body[8] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 10 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3],
$body[4], $body[5], $body[6], $body[7],
$body[8], $body[9] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 11 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3],
$body[4], $body[5], $body[6], $body[7],
$body[8], $body[9], $body[10] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 12 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3],
$body[4], $body[5], $body[6], $body[7],
$body[8], $body[9], $body[10], $body[11] ) or writelog( "query error: " . $sth->errstr);
} elsif( @body == 13 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3],
$body[4], $body[5], $body[6], $body[7],
$body[8], $body[9], $body[10], $body[11],
$body[12] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 14 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3],
$body[4], $body[5], $body[6], $body[7],
$body[8], $body[9], $body[10], $body[11],
$body[12], $body[13] ) or writelog( "query error: " . $sth->errstr );
} elsif( @body == 15 ) {
$sth->execute( $body[0], $body[1], $body[2], $body[3],
$body[4], $body[5], $body[6], $body[7],
$body[8], $body[9], $body[10], $body[11],
$body[12], $body[13], $body[14] ) or writelog( "query error: " . $sth->errstr );
}
}
}
$sth = $dbh->prepare("DELETE FROM $table WHERE YEAR < 1980 LIMIT 2") or writelog( "prepare error: " . $dbh->errstr );
my $affected_rows = $sth->execute() or writelog( "query error: " . $sth->errstr );
# Debug logging to make sure we're deleting offending rows as needed
my $logfh = new FileHandle(">>deletedcount.log") or writelog("Can't open deletecount.log for writing");
if(defined($logfh)) {
$logfh->print(scalar localtime(time) . ": " . $affected_rows . " deleted");
$logfh->close();
}
$sth->finish();
$dbh->disconnect();
writelog( "inserted $count rows to $table" );
print stderr "|";