1#!/usr/bin/perl -w 2 3use strict; 4use warnings; 5use bigint; 6use DBI; 7use Data::Dumper; 8use File::Basename; 9 10my $project = shift; 11$project =~ s/.*=(.*)/$1/; 12my $warns = shift; 13my $db_file = shift; 14 15my $db; 16 17sub connect_to_db($) 18{ 19 my $name = shift; 20 21 $db = DBI->connect("dbi:SQLite:$name", "", "", {AutoCommit => 0}); 22 23 $db->do("PRAGMA cache_size = 800000"); 24 $db->do("PRAGMA journal_mode = OFF"); 25 $db->do("PRAGMA count_changes = OFF"); 26 $db->do("PRAGMA temp_store = MEMORY"); 27 $db->do("PRAGMA locking = EXCLUSIVE"); 28} 29 30sub load_manual_constraints($$) 31{ 32 my $full_path = shift; 33 my $project = shift; 34 my $dir = dirname($full_path); 35 my ($data, $op, $limit); 36 37 if ($project =~ /^$/) { 38 return; 39 } 40 41 open(FILE, "$dir/$project.constraints_required"); 42 while (<FILE>) { 43 ($data, $op, $limit) = split(/,/); 44 $op =~ s/ //g; 45 $limit =~ s/^ +//; 46 $limit =~ s/\n//; 47 $db->do("insert into constraints_required values (?, ?, ?);", undef, $data, $op, $limit); 48 } 49 close(FILE); 50 51 $db->commit(); 52} 53 54connect_to_db($db_file); 55load_manual_constraints($0, $project); 56 57$db->commit(); 58$db->disconnect(); 59