1
1
2
-
3
2
fn main ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
4
3
// Get input from CLI
5
4
let args: Vec < String > = std:: env:: args ( ) . collect ( ) ;
@@ -18,19 +17,22 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
18
17
) ?;
19
18
20
19
let query = format ! ( "INSERT INTO person (name, age) VALUES ('{}', '{}')" , name, age) ;
20
+ let query2 = "INSERT INTO person (id) VALUES ($1)" ;
21
21
22
22
conn. execute ( query. as_str ( ) , & [ ] ) ?; // $ sql-sink
23
23
conn. batch_execute ( query. as_str ( ) ) ?; // $ sql-sink
24
24
25
25
conn. prepare ( query. as_str ( ) ) ?; // $ sql-sink
26
- // conn.prepare_typed(query.as_str() , &[])?;
26
+ conn. prepare_typed ( query2 , & [ postgres :: types :: Type :: INT4 ] ) ?; // $ sql-sink
27
27
28
28
conn. query ( query. as_str ( ) , & [ ] ) ?; // $ sql-sink
29
29
conn. query_one ( query. as_str ( ) , & [ ] ) ?; // $ sql-sink
30
30
conn. query_opt ( query. as_str ( ) , & [ ] ) ?; // $ sql-sink
31
- // conn.query_raw(query.as_str(), &[])?;
32
- // conn.query_typed(query.as_str(), &[])?;
33
- // conn.query_typed_raw(query.as_str(), &[])?;
31
+ let params: Vec < i32 > = vec ! [ 0 ] ;
32
+ conn. query_raw ( query. as_str ( ) , params) ?; // $ sql-sink
33
+ conn. query_typed ( query. as_str ( ) , & [ ] ) ?; // $ sql-sink
34
+ let params: Vec < ( i32 , postgres:: types:: Type ) > = vec ! [ ( 0 , postgres:: types:: Type :: INT4 ) ] ;
35
+ conn. query_typed_raw ( query2, params) ?; // $ sql-sink
34
36
35
37
for row in & conn. query ( "SELECT id, name, age FROM person" , & [ ] ) ? { // $ sql-sink
36
38
let id: i32 = row. get ( "id" ) ; // $ database-read
@@ -39,5 +41,14 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
39
41
println ! ( "found person: {} {} {}" , id, name, age) ;
40
42
}
41
43
44
+ for message in & conn. simple_query ( "SELECT id, name, age FROM person" ) ? { // $ MISSING: sql-sink
45
+ if let postgres:: SimpleQueryMessage :: Row ( row) = message {
46
+ let id: i32 = row. get ( 0 ) . unwrap ( ) . parse ( ) . unwrap ( ) ; // $ MISSING: database-read
47
+ let name: & str = row. get ( 1 ) . unwrap ( ) ; // $ MISSING: database-read
48
+ let age: i32 = row. get ( 2 ) . unwrap ( ) . parse ( ) . unwrap ( ) ; // $ MISSING: database-read
49
+ println ! ( "found person: {} {} {}" , id, name, age) ;
50
+ }
51
+ }
52
+
42
53
Ok ( ( ) )
43
54
}
0 commit comments