1 #!/usr/bin/perl -w
   2 
   3 use strict;
   4 use warnings;
   5 use bigint;
   6 use DBI;
   7 use Data::Dumper;
   8 use File::Basename;
   9 
  10 my $project = shift;
  11 $project =~ s/.*=(.*)/$1/;
  12 my $warns = shift;
  13 my $db_file = shift;
  14 
  15 my $db;
  16 
  17 sub 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 
  30 sub 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     open(FILE, "$dir/$project.constraints_required");
  38     while (<FILE>) {
  39         ($data, $op, $limit) = split(/,/);
  40         $op =~ s/ //g;
  41         $limit =~ s/^ +//;
  42         $limit =~ s/\n//;
  43         $db->do("insert into constraints_required values (?, ?, ?);", undef, $data, $op, $limit);
  44     }
  45     close(FILE);
  46 
  47     $db->commit();
  48 }
  49 
  50 connect_to_db($db_file);
  51 load_manual_constraints($0, $project);
  52 
  53 $db->commit();
  54 $db->disconnect();