Changeset 13130 for trunk/Nebulous/lib
- Timestamp:
- May 2, 2007, 10:14:46 AM (19 years ago)
- Location:
- trunk/Nebulous/lib/Nebulous
- Files:
-
- 2 edited
-
Server.pm (modified) (5 diffs)
-
Server/SQL.pm (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous/lib/Nebulous/Server.pm
r13115 r13130 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: Server.pm,v 1. 29 2007-05-02 01:00:10jhoblitt Exp $3 # $Id: Server.pm,v 1.30 2007-05-02 20:14:45 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server; … … 166 166 { 167 167 # get object ID 168 my $query = $db->prepare ( $sql->last_insert_id );168 my $query = $db->prepare_cached( $sql->last_insert_id ); 169 169 $query->execute; 170 170 ($object_id) = $query->fetchrow_array; 171 # XXX finish seems to be required when using LAST_INSERT_ID() or we 172 # get a warning about the stmt handling still be active the next 173 # time LAST_INSERT_ID() is invoked 174 $query->finish; 171 175 } 172 176 … … 185 189 { 186 190 # get instance ID 187 my $query = $db->prepare ( $sql->last_insert_id );191 my $query = $db->prepare_cached( $sql->last_insert_id ); 188 192 $query->execute; 189 193 ($ins_id) = $query->fetchrow_array; 194 # XXX finish seems to be required when using LAST_INSERT_ID() or we 195 # get a warning about the stmt handling still be active the next 196 # time LAST_INSERT_ID() is invoked 197 $query->finish; 190 198 } 191 199 }; … … 322 330 323 331 { 324 my $query = $db->prepare ( $sql->last_insert_id );332 my $query = $db->prepare_cached( $sql->last_insert_id ); 325 333 $query->execute(); 326 327 334 ($ins_id) = $query->fetchrow_array; 335 # XXX finish seems to be required when using LAST_INSERT_ID() or we 336 # get a warning about the stmt handling still be active the next 337 # time LAST_INSERT_ID() is invoked 338 $query->finish; 328 339 } 329 340 }; … … 1041 1052 $query = $db->prepare_cached( $sql->get_storage_volume_byname ); 1042 1053 $rows = $query->execute(0.95, $name); 1054 unless ($rows > 0) { 1055 $query->finish; 1056 $log->logdie("storage volume: $name is not available"); 1057 } 1058 # when matching by name we shouldn't ever match more than once 1059 if ($rows > 1) { 1060 $query->finish; 1061 $log->logdie("affected row count is $rows instead of 1"); 1062 } 1043 1063 } else { 1044 1064 $query = $db->prepare_cached( $sql->get_storage_volume ); 1045 1065 $rows = $query->execute(0.95); 1046 }1047 1048 # there has to be atleast one storage volume1049 unless ($rows > 0) {1050 $log->logdie( "affected row count is $rows instead of > 0" );1066 # there has to be atleast one storage volume 1067 unless ($rows > 0) { 1068 $query->finish; 1069 $log->logdie("no storage volume is available"); 1070 } 1051 1071 } 1052 1072 -
trunk/Nebulous/lib/Nebulous/Server/SQL.pm
r13115 r13130 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: SQL.pm,v 1.3 1 2007-05-02 01:00:10jhoblitt Exp $3 # $Id: SQL.pm,v 1.32 2007-05-02 20:14:46 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server::SQL; … … 176 176 }, 177 177 new_volume => qq{ 178 INSERT INTO volume (name, path )179 VALUES (?, ? )178 INSERT INTO volume (name, path, allocate) 179 VALUES (?, ?, TRUE) 180 180 }, 181 181 get_volume_by_name => qq{ … … 303 303 name VARCHAR(255) UNIQUE NOT NULL, 304 304 path VARCHAR(255) NOT NULL, 305 allocate BOOLEAN DEFAULT FALSE, 305 306 PRIMARY KEY(vol_id), 306 KEY(name(16)) 307 KEY(name(16)), 308 KEY(allocate) 307 309 ) ENGINE=innodb; 308 310 … … 335 337 DECLARE namevar VARCHAR(255); 336 338 DECLARE pathvar VARCHAR(255); 337 DECLARE cur1 CURSOR FOR SELECT vol_id, name, path FROM volume; 339 DECLARE cur1 CURSOR FOR SELECT vol_id, name, path FROM volume 340 WHERE allocate = TRUE; 338 341 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = TRUE; 339 342
Note:
See TracChangeset
for help on using the changeset viewer.
