]> mj.ucw.cz Git - pciids.git/commitdiff
Handle deleted items correctly in export
authorMichal Vaner <vorner@ucw.cz>
Sat, 30 Aug 2008 19:24:52 +0000 (21:24 +0200)
committerMichal Vaner <vorner@ucw.cz>
Sat, 30 Aug 2008 19:24:52 +0000 (21:24 +0200)
Need to do it in perl, SQL seems to be too weak to do this efectively

scripts/export.pl

index f8261b3f59a0a200982d0bf9b1632694bcaa2fde..84e2aab7e031cf2b5260f9f4756039c89b4a2d9f 100755 (executable)
@@ -9,11 +9,18 @@ use PciIds::Db;
 use PciIds::DBQAny;
 
 my $db = PciIds::DBQAny::new( connectDb(), {
-       'list' => 'SELECT id, name, note FROM locations WHERE name IS NOT NULL ORDER BY id'
+       'list' => 'SELECT id, name, note FROM locations WHERE id like "PC/%" OR id like "PD/%" ORDER BY id'
 } );
 
+my $lastInvalid = undef;
+
 foreach( @{$db->query( 'list', [] )} ) {
        my( $id, $name, $description ) = @{$_};
+       next if defined $lastInvalid and substr( $id, 0, length $lastInvalid ) eq $lastInvalid;
+       if( !defined $name || $name eq '' ) {
+               $lastInvalid = $id;
+               next;
+       }
        $_ = $id;
        my $prefix = ( /^PD\/..$/ ) ? 'C ' : '';
        s/^P.\///;