IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 20293


Ignore:
Timestamp:
Oct 21, 2008, 10:18:18 AM (18 years ago)
Author:
bills
Message:

after researching problems with last_insert_id() decided not to use it
Too many caveats

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/DataStoreServer/scripts/dsreg

    r20288 r20293  
    378378        die("failed to insert $fileset") if (!defined($count) or ($count == 0E0));
    379379
    380         my $fileset_id = $dbh->last_insert_id(undef, undef, undef, undef);
    381 
    382         die("last_insert_id returned undef") if (!defined($fileset_id));
    383         die("last_insert_id returned 0") if (!$fileset_id);
    384 
    385         # make sure that no-one got in and created a fileset with this name while we were busy
    386         $count = $dbh->do("SELECT fileset_id FROM dsFileset WHERE fileset_name = ?" .
    387                         " AND prod_id = $prod_id", undef, ($fileset));
    388         if ($count > 1) {
     380        # I don't use last_insert_id() because I've seen some problems with it and
     381        # the DBI perldoc says that it's use is problematic
     382        my @fsids = $dbh->selectrow_array("SELECT fileset_id FROM dsFileset" .
     383                        " WHERE fileset_name = '$fileset' AND prod_id = $prod_id");
     384        my $nfs = @fsids;
     385        if (!$nfs) {
     386            die("fileset '$fileset' missing even though we just added it");
     387        } elsif ($nfs > 1) {
    389388            die("Fileset '$fileset' already exists under $product.");
    390389        }
     390        my $fileset_id = $fsids[0];
    391391
    392392        foreach my $ref (@files) {
Note: See TracChangeset for help on using the changeset viewer.