@@ -54,7 +54,7 @@ use crate::detail::ErrorDetail;
5454use crate :: dynds:: DataSourcesTable ;
5555use crate :: primary:: { DeploymentId , Primary } ;
5656use crate :: relational:: index:: { CreateIndex , IndexList , Method } ;
57- use crate :: relational:: { self , Layout , LayoutCache , SqlName , Table } ;
57+ use crate :: relational:: { self , Layout , LayoutCache , SqlName , Table , STATEMENT_TIMEOUT } ;
5858use crate :: relational_queries:: { FromEntityData , JSONData } ;
5959use crate :: { advisory_lock, catalog, retry} ;
6060use crate :: { detail, ConnectionPool } ;
@@ -297,12 +297,17 @@ impl DeploymentStore {
297297 query : & str ,
298298 ) -> Result < Vec < SqlQueryObject > , QueryExecutionError > {
299299 let query = format ! ( "select to_jsonb(sub.*) as data from ({}) as sub" , query) ;
300-
301300 let query = diesel:: sql_query ( query) ;
302301
303- // Execute the provided SQL query
304- let results = query
305- . load :: < JSONData > ( conn)
302+ let results = conn
303+ . transaction ( |conn| {
304+ if let Some ( ref timeout_sql) = * STATEMENT_TIMEOUT {
305+ conn. batch_execute ( timeout_sql) ?;
306+ }
307+
308+ // Execute the provided SQL query
309+ query. load :: < JSONData > ( conn)
310+ } )
306311 . map_err ( |e| QueryExecutionError :: SqlError ( e. to_string ( ) ) ) ?;
307312
308313 Ok ( results
0 commit comments