Changeset 5478
- Timestamp:
- Nov 4, 2005, 4:35:45 PM (21 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
-
Nebulous-Server/lib/Nebulous/Server.pm (modified) (3 diffs)
-
Nebulous-Server/lib/Nebulous/Server/SQL.pm (modified) (6 diffs)
-
Nebulous/lib/Nebulous/Server.pm (modified) (3 diffs)
-
Nebulous/lib/Nebulous/Server/SQL.pm (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous-Server/lib/Nebulous/Server.pm
r4874 r5478 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: Server.pm,v 1.1 0 2005-08-25 01:44:32jhoblitt Exp $3 # $Id: Server.pm,v 1.11 2005-11-05 02:35:45 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server; … … 103 103 104 104 my $uri; 105 my $object_id; 105 106 my $ins_id; 106 107 … … 109 110 # create storage_object 110 111 my $query = $db->prepare_cached( $sql->new_object ); 111 $query->execute( $key, $class, $comment ); 112 $query->execute( 'NULL', $key ); 113 } 114 115 { 116 # get object ID 117 my $query = $db->prepare_cached( $sql->last_insert_id ); 118 $query->execute; 119 ( $object_id ) = $query->fetchrow_array; 120 121 $query->finish; 122 } 123 124 { 125 # create storage_object_attr 126 my $query = $db->prepare_cached( $sql->new_object_attr ); 127 $query->execute( $object_id, $class, $comment ); 112 128 } 113 129 -
trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm
r4933 r5478 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: SQL.pm,v 1. 9 2005-08-31 21:00:12jhoblitt Exp $3 # $Id: SQL.pm,v 1.10 2005-11-05 02:35:45 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server::SQL; … … 24 24 new_object => qq{ 25 25 INSERT INTO storage_object 26 (so_id, ext_id, class_id, comment, read_lock, write_lock) 27 VALUES (NULL, ?, ?, ?, 0, NULL) 26 (so_id, ext_id) 27 VALUES (?, ?) 28 }, 29 new_object_attr => qq{ 30 INSERT INTO storage_object_attr 31 (so_id, class_id, comment, read_lock, write_lock) 32 VALUES (?, ?, ?, 0, NULL) 28 33 }, 29 34 delete_object => qq{ … … 40 45 }, 41 46 get_object => qq{ 42 SELECT so_id, ext_id, class_id, comment, read_lock, write_lock, epoch, mtime 47 SELECT storage_object.so_id, 48 ext_id, class_id, comment, read_lock, write_lock, epoch, mtime 43 49 FROM storage_object 50 LEFT JOIN storage_object_attr 51 USING (so_id) 44 52 WHERE ext_id = ? 45 53 }, 46 54 get_object_locks => qq{ 47 SELECT so_id, read_lock, write_lock 55 SELECT storage_object.so_id, 56 read_lock, write_lock 48 57 FROM storage_object 58 LEFT JOIN storage_object_attr 59 USING (so_id) 49 60 WHERE ext_id = ? 50 61 FOR UPDATE 51 62 }, 52 63 set_write_lock => qq{ 53 UPDATE storage_object 64 UPDATE storage_object_attr 65 LEFT JOIN storage_object 66 USING(so_id) 54 67 SET write_lock = 'write' 55 WHERE ext_id = ?68 WHERE storage_object.ext_id = ? 56 69 }, 57 70 delete_write_lock => qq{ 58 UPDATE storage_object 71 UPDATE storage_object_attr 72 LEFT JOIN storage_object 73 USING(so_id) 59 74 SET write_lock = NULL 60 75 WHERE ext_id = ? 61 76 }, 62 77 increment_read_lock => qq{ 63 UPDATE storage_object 64 SET read_lock = read_lock+1 78 UPDATE storage_object_attr 79 LEFT JOIN storage_object 80 USING(so_id) 81 SET read_lock = read_lock + 1 65 82 WHERE ext_id = ? 66 83 }, 67 84 decrement_read_lock => qq{ 68 UPDATE storage_object 69 SET read_lock = read_lock-1 85 UPDATE storage_object_attr 86 LEFT JOIN storage_object 87 USING(so_id) 88 SET read_lock = read_lock - 1 70 89 WHERE ext_id = ? 71 90 }, … … 85 104 }, 86 105 get_object_instances => qq{ 87 SELECT storage_object.so_id, uri, assigned_location 106 SELECT storage_object.so_id, 107 uri, assigned_location 88 108 FROM storage_object 89 109 LEFT JOIN instance 90 110 USING (so_id) 91 WHERE storage_object.ext_id = ?111 WHERE ext_id = ? 92 112 }, 93 113 get_storage_volume_byname => qq{ … … 143 163 144 164 __DATA__ 165 DROP TABLE IF EXISTS storage_object; 145 166 CREATE TABLE storage_object ( 146 167 so_id BIGINT NOT NULL AUTO_INCREMENT, 147 168 ext_id VARCHAR(255) BINARY NOT NULL UNIQUE, 169 PRIMARY KEY(so_id), 170 KEY(ext_id(64)) 171 ) ENGINE=innodb; 172 173 DROP TABLE IF EXISTS storage_object_attr ; 174 CREATE TABLE storage_object_attr ( 175 so_id BIGINT NOT NULL AUTO_INCREMENT, 148 176 class_id TINYINT NOT NULL, 149 177 comment VARCHAR(255), … … 153 181 mtime TIMESTAMP, 154 182 PRIMARY KEY(so_id), 155 KEY(ext_id(64)),156 183 KEY(class_id) 157 184 ) ENGINE=innodb; -
trunk/Nebulous/lib/Nebulous/Server.pm
r4874 r5478 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: Server.pm,v 1.1 0 2005-08-25 01:44:32jhoblitt Exp $3 # $Id: Server.pm,v 1.11 2005-11-05 02:35:45 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server; … … 103 103 104 104 my $uri; 105 my $object_id; 105 106 my $ins_id; 106 107 … … 109 110 # create storage_object 110 111 my $query = $db->prepare_cached( $sql->new_object ); 111 $query->execute( $key, $class, $comment ); 112 $query->execute( 'NULL', $key ); 113 } 114 115 { 116 # get object ID 117 my $query = $db->prepare_cached( $sql->last_insert_id ); 118 $query->execute; 119 ( $object_id ) = $query->fetchrow_array; 120 121 $query->finish; 122 } 123 124 { 125 # create storage_object_attr 126 my $query = $db->prepare_cached( $sql->new_object_attr ); 127 $query->execute( $object_id, $class, $comment ); 112 128 } 113 129 -
trunk/Nebulous/lib/Nebulous/Server/SQL.pm
r4933 r5478 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: SQL.pm,v 1. 9 2005-08-31 21:00:12jhoblitt Exp $3 # $Id: SQL.pm,v 1.10 2005-11-05 02:35:45 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server::SQL; … … 24 24 new_object => qq{ 25 25 INSERT INTO storage_object 26 (so_id, ext_id, class_id, comment, read_lock, write_lock) 27 VALUES (NULL, ?, ?, ?, 0, NULL) 26 (so_id, ext_id) 27 VALUES (?, ?) 28 }, 29 new_object_attr => qq{ 30 INSERT INTO storage_object_attr 31 (so_id, class_id, comment, read_lock, write_lock) 32 VALUES (?, ?, ?, 0, NULL) 28 33 }, 29 34 delete_object => qq{ … … 40 45 }, 41 46 get_object => qq{ 42 SELECT so_id, ext_id, class_id, comment, read_lock, write_lock, epoch, mtime 47 SELECT storage_object.so_id, 48 ext_id, class_id, comment, read_lock, write_lock, epoch, mtime 43 49 FROM storage_object 50 LEFT JOIN storage_object_attr 51 USING (so_id) 44 52 WHERE ext_id = ? 45 53 }, 46 54 get_object_locks => qq{ 47 SELECT so_id, read_lock, write_lock 55 SELECT storage_object.so_id, 56 read_lock, write_lock 48 57 FROM storage_object 58 LEFT JOIN storage_object_attr 59 USING (so_id) 49 60 WHERE ext_id = ? 50 61 FOR UPDATE 51 62 }, 52 63 set_write_lock => qq{ 53 UPDATE storage_object 64 UPDATE storage_object_attr 65 LEFT JOIN storage_object 66 USING(so_id) 54 67 SET write_lock = 'write' 55 WHERE ext_id = ?68 WHERE storage_object.ext_id = ? 56 69 }, 57 70 delete_write_lock => qq{ 58 UPDATE storage_object 71 UPDATE storage_object_attr 72 LEFT JOIN storage_object 73 USING(so_id) 59 74 SET write_lock = NULL 60 75 WHERE ext_id = ? 61 76 }, 62 77 increment_read_lock => qq{ 63 UPDATE storage_object 64 SET read_lock = read_lock+1 78 UPDATE storage_object_attr 79 LEFT JOIN storage_object 80 USING(so_id) 81 SET read_lock = read_lock + 1 65 82 WHERE ext_id = ? 66 83 }, 67 84 decrement_read_lock => qq{ 68 UPDATE storage_object 69 SET read_lock = read_lock-1 85 UPDATE storage_object_attr 86 LEFT JOIN storage_object 87 USING(so_id) 88 SET read_lock = read_lock - 1 70 89 WHERE ext_id = ? 71 90 }, … … 85 104 }, 86 105 get_object_instances => qq{ 87 SELECT storage_object.so_id, uri, assigned_location 106 SELECT storage_object.so_id, 107 uri, assigned_location 88 108 FROM storage_object 89 109 LEFT JOIN instance 90 110 USING (so_id) 91 WHERE storage_object.ext_id = ?111 WHERE ext_id = ? 92 112 }, 93 113 get_storage_volume_byname => qq{ … … 143 163 144 164 __DATA__ 165 DROP TABLE IF EXISTS storage_object; 145 166 CREATE TABLE storage_object ( 146 167 so_id BIGINT NOT NULL AUTO_INCREMENT, 147 168 ext_id VARCHAR(255) BINARY NOT NULL UNIQUE, 169 PRIMARY KEY(so_id), 170 KEY(ext_id(64)) 171 ) ENGINE=innodb; 172 173 DROP TABLE IF EXISTS storage_object_attr ; 174 CREATE TABLE storage_object_attr ( 175 so_id BIGINT NOT NULL AUTO_INCREMENT, 148 176 class_id TINYINT NOT NULL, 149 177 comment VARCHAR(255), … … 153 181 mtime TIMESTAMP, 154 182 PRIMARY KEY(so_id), 155 KEY(ext_id(64)),156 183 KEY(class_id) 157 184 ) ENGINE=innodb;
Note:
See TracChangeset
for help on using the changeset viewer.
