db: fix bug handling ':' character
[smatch.git] / smatch_data / db / fill_db_sql.pl
blob92877a85fc30d18d41b6be3ca190fa27048978a3
1 #!/usr/bin/perl -w
3 use strict;
4 use DBI;
6 my $warns = shift;
8 if (!defined($warns)) {
9 print "usage: $0 <warns.txt>\n";
10 exit(1);
13 my $db = DBI->connect("dbi:SQLite:smatch_db.sqlite", "", "", {AutoCommit => 0});
14 $db->do("PRAGMA synchronous = OFF");
15 $db->do("PRAGMA cache_size = 800000");
16 $db->do("PRAGMA journal_mode = OFF");
17 $db->do("PRAGMA count_changes = OFF");
18 $db->do("PRAGMA temp_store = MEMORY");
19 $db->do("PRAGMA locking = EXCLUSIVE");
21 my ($dummy, $sql);
23 open(WARNS, "<$warns");
24 while (<WARNS>) {
26 if (!($_ =~ /^.*? [^ ]*\(\) SQL: /)) {
27 next;
29 ($dummy, $dummy, $sql) = split(/:/, $_, 3);
31 $db->do($sql);
34 $db->commit();
35 $db->disconnect();