12 $project =~ s/.*=(.*)/$1/;
16 sub preserve_existing_constraints
()
18 if (! -e
"smatch_db.sqlite") {
22 my $db = DBI
->connect("dbi:SQLite:$db_file", "", "",);
23 $db->do('attach "smatch_db.sqlite" as old_db');
24 $db->do('insert into constraints select * from old_db.constraints');
34 $db = DBI
->connect("dbi:SQLite:$name", "", "", {AutoCommit
=> 0});
36 $db->do("PRAGMA cache_size = 800000");
37 $db->do("PRAGMA journal_mode = OFF");
38 $db->do("PRAGMA count_changes = OFF");
39 $db->do("PRAGMA temp_store = MEMORY");
40 $db->do("PRAGMA locking = EXCLUSIVE");
43 sub load_manual_constraints
($$)
45 my $full_path = shift;
47 my $dir = dirname
($full_path);
49 open(FILE
, "$dir/$project.constraints");
52 $db->do("insert or ignore into constraints (str) values ('$_')");
56 open(FILE
, "$dir/$project.constraints_required");
61 ($dummy, $dummy, $limit) = split(/,/);
65 $db->do("insert or ignore into constraints (str) values ('$limit')");
73 preserve_existing_constraints
();
75 connect_to_db
($db_file);
76 load_manual_constraints
($0, $project);