@@ -25,9 +25,15 @@ async fn prepare(
2525 sql : & str ,
2626 parameters : & [ PgTypeInfo ] ,
2727 metadata : Option < Arc < PgStatementMetadata > > ,
28+ persistent : bool ,
2829) -> Result < ( StatementId , Arc < PgStatementMetadata > ) , Error > {
29- let id = conn. inner . next_statement_id ;
30- conn. inner . next_statement_id = id. next ( ) ;
30+ let id = if persistent {
31+ let id = conn. inner . next_statement_id ;
32+ conn. inner . next_statement_id = id. next ( ) ;
33+ id
34+ } else {
35+ StatementId :: UNNAMED
36+ } ;
3137
3238 // build a list of type OIDs to send to the database in the PARSE command
3339 // we have not yet started the query sequence, so we are *safe* to cleanly make
@@ -163,8 +169,7 @@ impl PgConnection {
163169 & mut self ,
164170 sql : & str ,
165171 parameters : & [ PgTypeInfo ] ,
166- // should we store the result of this prepare to the cache
167- store_to_cache : bool ,
172+ persistent : bool ,
168173 // optional metadata that was provided by the user, this means they are reusing
169174 // a statement object
170175 metadata : Option < Arc < PgStatementMetadata > > ,
@@ -173,9 +178,9 @@ impl PgConnection {
173178 return Ok ( ( * statement) . clone ( ) ) ;
174179 }
175180
176- let statement = prepare ( self , sql, parameters, metadata) . await ?;
181+ let statement = prepare ( self , sql, parameters, metadata, persistent ) . await ?;
177182
178- if store_to_cache && self . inner . cache_statement . is_enabled ( ) {
183+ if persistent && self . inner . cache_statement . is_enabled ( ) {
179184 if let Some ( ( id, _) ) = self . inner . cache_statement . insert ( sql, statement. clone ( ) ) {
180185 self . inner . stream . write_msg ( Close :: Statement ( id) ) ?;
181186 self . write_sync ( ) ;
0 commit comments