1*1f5207b7SJohn Levon#!/usr/bin/perl -w 2*1f5207b7SJohn Levon 3*1f5207b7SJohn Levonuse strict; 4*1f5207b7SJohn Levonuse warnings; 5*1f5207b7SJohn Levonuse bigint; 6*1f5207b7SJohn Levonuse DBI; 7*1f5207b7SJohn Levonuse Data::Dumper; 8*1f5207b7SJohn Levonuse File::Basename; 9*1f5207b7SJohn Levonuse Try::Tiny; 10*1f5207b7SJohn Levon 11*1f5207b7SJohn Levonmy $project = shift; 12*1f5207b7SJohn Levon$project =~ s/.*=(.*)/$1/; 13*1f5207b7SJohn Levonmy $warns = shift; 14*1f5207b7SJohn Levonmy $db_file = shift; 15*1f5207b7SJohn Levon 16*1f5207b7SJohn Levonmy $db; 17*1f5207b7SJohn Levon 18*1f5207b7SJohn Levonsub connect_to_db($) 19*1f5207b7SJohn Levon{ 20*1f5207b7SJohn Levon my $name = shift; 21*1f5207b7SJohn Levon 22*1f5207b7SJohn Levon $db = DBI->connect("dbi:SQLite:$name", "", "", {AutoCommit => 0}); 23*1f5207b7SJohn Levon 24*1f5207b7SJohn Levon $db->do("PRAGMA cache_size = 800000"); 25*1f5207b7SJohn Levon $db->do("PRAGMA journal_mode = OFF"); 26*1f5207b7SJohn Levon $db->do("PRAGMA count_changes = OFF"); 27*1f5207b7SJohn Levon $db->do("PRAGMA temp_store = MEMORY"); 28*1f5207b7SJohn Levon $db->do("PRAGMA locking = EXCLUSIVE"); 29*1f5207b7SJohn Levon} 30*1f5207b7SJohn Levon 31*1f5207b7SJohn Levonsub copy_constraints($$) 32*1f5207b7SJohn Levon{ 33*1f5207b7SJohn Levon my $full_path = shift; 34*1f5207b7SJohn Levon my $project = shift; 35*1f5207b7SJohn Levon my $dir = dirname($full_path); 36*1f5207b7SJohn Levon 37*1f5207b7SJohn Levon $db->do('insert or ignore into constraints (str) select bound from constraints_required'); 38*1f5207b7SJohn Levon 39*1f5207b7SJohn Levon $db->commit(); 40*1f5207b7SJohn Levon} 41*1f5207b7SJohn Levon 42*1f5207b7SJohn Levonconnect_to_db($db_file); 43*1f5207b7SJohn Levoncopy_constraints($0, $project); 44*1f5207b7SJohn Levon 45*1f5207b7SJohn Levon$db->commit(); 46*1f5207b7SJohn Levon$db->disconnect(); 47