IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 20019


Ignore:
Timestamp:
Oct 9, 2008, 10:37:41 AM (18 years ago)
Author:
jhoblitt
Message:

change getmountedvol() to preserve the state of FOREIGN_KEY_CHECKS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm

    r20018 r20019  
    11# Copyright (c) 2004  Joshua Hoblitt
    22#
    3 # $Id: SQL.pm,v 1.68 2008-10-09 20:27:51 jhoblitt Exp $
     3# $Id: SQL.pm,v 1.69 2008-10-09 20:37:41 jhoblitt Exp $
    44
    55package Nebulous::Server::SQL;
     
    498498    DECLARE xattrvar BOOLEAN;
    499499    DECLARE trans_level VARCHAR(255);
     500    DECLARE key_checks BOOLEAN;
    500501    DECLARE cur1 CURSOR FOR SELECT vol_id, name, host, path, allocate, available, xattr FROM myvolume;
    501502    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = TRUE;
    502503
    503 --   SET FOREIGN_KEY_CHECKS=0;
    504 
     504    -- store the okey checking state
     505    SELECT @@FOREIGN_KEY_CHECKS INTO key_checks;
     506    -- disable foregin check checks to prevent deadlocks on the mountedvol table
     507    SET FOREIGN_KEY_CHECKS=0;
     508
     509    -- make sure the temp table does not already exist... this can happy if the
     510    -- stored proc fails for some reason
     511    DROP TABLE IF EXISTS myvolume;
    505512    CREATE TEMPORARY TABLE myvolume LIKE volume;
    506513    INSERT INTO myvolume SELECT * FROM volume;
     
    537544--    SET @@session.tx_isolation = trans_level;
    538545
     546    -- restore the original key checking state
     547    SET @@FOREIGN_KEY_CHECKS = key_checks;
     548
    539549    DROP TABLE IF EXISTS myvolume;
    540550
    541 --    SET FOREIGN_KEY_CHECKS=1;
     551    SET FOREIGN_KEY_CHECKS=1;
    542552
    543553    COMMIT;
Note: See TracChangeset for help on using the changeset viewer.