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 use Try::Tiny; 10 11 my $project = shift; 12 $project =~ s/.*=(.*)/$1/; 13 my $warns = shift; 14 my $db_file = shift; 15 16 my $db; 17 18 sub connect_to_db($) 19 { 20 my $name = shift; 21 22 $db = DBI->connect("dbi:SQLite:$name", "", "", {AutoCommit => 0}); 23 24 $db->do("PRAGMA cache_size = 800000"); 25 $db->do("PRAGMA journal_mode = OFF"); 26 $db->do("PRAGMA count_changes = OFF"); 27 $db->do("PRAGMA temp_store = MEMORY"); 28 $db->do("PRAGMA locking = EXCLUSIVE"); 29 } 30 31 sub copy_constraints($$) 32 { 33 my $full_path = shift; 34 my $project = shift; 35 my $dir = dirname($full_path); 36 37 $db->do('insert or ignore into constraints (str) select bound from constraints_required'); 38 39 $db->commit(); 40 } 41 42 connect_to_db($db_file); 43 copy_constraints($0, $project); 44 45 $db->commit(); 46 $db->disconnect();