chiark / gitweb /
De-%ify a big chunk of perl
[ypp-sc-tools.main.git] / yarrg / db-idempotent-populate
index ea73f60..9d7bab0 100755 (executable)
@@ -43,6 +43,7 @@ parse_info_serverside_ocean($oceanname);
 our $ocean= $oceans{$oceanname};
 
 db_setocean($oceanname);
+db_writer();
 db_connect();
 
 #---------- schema ----------
@@ -102,12 +103,28 @@ $dbh->commit;
 #---------- commodity list ----------
 
 {
-    my $sth= $dbh->prepare(<<'END')
- INSERT OR IGNORE INTO commods (commodname) VALUES (?);
+    my $insert= $dbh->prepare(<<'END')
+ INSERT OR IGNORE INTO commods
+     (unitmass,
+      unitvolume,
+      commodname)
+     VALUES (?,?,?);
+END
+    ;
+    my $update= $dbh->prepare(<<'END')
+ UPDATE commods
+     SET unitmass = ?,
+         unitvolume = ?
+     WHERE commodname = ?
 END
     ;
     foreach my $commod (sort keys %commods) {
-       $sth->execute($commod);
+       my $c= $commods{$commod};
+        die "no mass for $commod" unless defined $c->{Mass};
+        die "no colume for $commod" unless defined $c->{Volume};
+       my @qa= ($c->{Mass}, $c->{Volume}, $commod);
+       $insert->execute(@qa);
+       $update->execute(@qa);
     }
     $dbh->commit;
 }