@@ -49,9 +49,8 @@ fn get_id(conn: &Connection, name: &str) -> Result<i32, Error> {
49
49
50
50
// metaprogramming!
51
51
// WARNING: these must be hard-coded and NEVER user input.
52
- const METADATA : [ ( & str , & str ) ; 5 ] = [
52
+ const METADATA : & [ ( & str , & str ) ] = & [
53
53
( "author_rels" , "rid" ) ,
54
- ( "owner_rels" , "cid" ) ,
55
54
( "keyword_rels" , "rid" ) ,
56
55
( "builds" , "rid" ) ,
57
56
( "compression_rels" , "release" ) ,
@@ -60,7 +59,7 @@ const METADATA: [(&str, &str); 5] = [
60
59
fn delete_version_from_database ( conn : & Connection , name : & str , version : & str ) -> Result < ( ) , Error > {
61
60
let crate_id = get_id ( conn, name) ?;
62
61
let transaction = conn. transaction ( ) ?;
63
- for & ( table, column) in & METADATA {
62
+ for & ( table, column) in METADATA {
64
63
transaction. execute (
65
64
& format ! ( "DELETE FROM {} WHERE {} IN (SELECT id FROM releases WHERE crate_id = $1 AND version = $2)" , table, column) ,
66
65
& [ & crate_id, & version] ,
@@ -96,7 +95,7 @@ fn delete_crate_from_database(conn: &Connection, name: &str, crate_id: i32) -> R
96
95
"DELETE FROM sandbox_overrides WHERE crate_name = $1" ,
97
96
& [ & name] ,
98
97
) ?;
99
- for & ( table, column) in & METADATA {
98
+ for & ( table, column) in METADATA {
100
99
transaction. execute (
101
100
& format ! (
102
101
"DELETE FROM {} WHERE {} IN (SELECT id FROM releases WHERE crate_id = $1)" ,
@@ -105,6 +104,7 @@ fn delete_crate_from_database(conn: &Connection, name: &str, crate_id: i32) -> R
105
104
& [ & crate_id] ,
106
105
) ?;
107
106
}
107
+ transaction. execute ( "DELETE FROM owner_rels WHERE cid = $1;" , & [ & crate_id] ) ?;
108
108
transaction. execute ( "DELETE FROM releases WHERE crate_id = $1;" , & [ & crate_id] ) ?;
109
109
transaction. execute ( "DELETE FROM crates WHERE id = $1;" , & [ & crate_id] ) ?;
110
110
0 commit comments