@@ -26,7 +26,7 @@ use sql_types::HasSqlType;
2626/// <https://www.postgresql.org/docs/9.4/static/libpq-connect.html#LIBPQ-CONNSTRING>
2727#[ allow( missing_debug_implementations) ]
2828pub struct PgConnection {
29- raw_connection : RawConnection ,
29+ pub ( crate ) raw_connection : RawConnection ,
3030 transaction_manager : AnsiTransactionManager ,
3131 statement_cache : StatementCache < Pg , Statement > ,
3232 metadata_cache : PgMetadataCache ,
@@ -38,7 +38,7 @@ impl SimpleConnection for PgConnection {
3838 fn batch_execute ( & self , query : & str ) -> QueryResult < ( ) > {
3939 let query = CString :: new ( query) ?;
4040 let inner_result = unsafe { self . raw_connection . exec ( query. as_ptr ( ) ) } ;
41- PgResult :: new ( inner_result?) ?;
41+ PgResult :: new ( inner_result?, self ) ?;
4242 Ok ( ( ) )
4343 }
4444}
@@ -76,7 +76,7 @@ impl Connection for PgConnection {
7676 {
7777 let ( query, params) = self . prepare_query ( & source. as_query ( ) ) ?;
7878 query
79- . execute ( & self . raw_connection , & params)
79+ . execute ( self , & params)
8080 . and_then ( |r| Cursor :: new ( r) . collect ( ) )
8181 }
8282
@@ -88,7 +88,7 @@ impl Connection for PgConnection {
8888 {
8989 let ( query, params) = self . prepare_query ( source) ?;
9090 query
91- . execute ( & self . raw_connection , & params)
91+ . execute ( self , & params)
9292 . and_then ( |r| NamedCursor :: new ( r) . collect ( ) )
9393 }
9494
@@ -98,9 +98,7 @@ impl Connection for PgConnection {
9898 T : QueryFragment < Pg > + QueryId ,
9999 {
100100 let ( query, params) = self . prepare_query ( source) ?;
101- query
102- . execute ( & self . raw_connection , & params)
103- . map ( |r| r. rows_affected ( ) )
101+ query. execute ( self , & params) . map ( |r| r. rows_affected ( ) )
104102 }
105103
106104 #[ doc( hidden) ]
@@ -157,20 +155,15 @@ impl PgConnection {
157155 } else {
158156 None
159157 } ;
160- Statement :: prepare (
161- & self . raw_connection ,
162- sql,
163- query_name. as_ref ( ) . map ( |s| & * * s) ,
164- & metadata,
165- )
158+ Statement :: prepare ( self , sql, query_name. as_ref ( ) . map ( |s| & * * s) , & metadata)
166159 } ) ;
167160
168161 Ok ( ( query?, binds) )
169162 }
170163
171164 fn execute_inner ( & self , query : & str ) -> QueryResult < PgResult > {
172- let query = Statement :: prepare ( & self . raw_connection , query, None , & [ ] ) ?;
173- query. execute ( & self . raw_connection , & Vec :: new ( ) )
165+ let query = Statement :: prepare ( self , query, None , & [ ] ) ?;
166+ query. execute ( self , & Vec :: new ( ) )
174167 }
175168
176169 fn set_config_options ( & self ) -> QueryResult < ( ) > {
0 commit comments