@@ -54,7 +54,7 @@ use crate::detail::ErrorDetail;
5454use crate :: dynds:: DataSourcesTable ;
5555use crate :: primary:: DeploymentId ;
5656use crate :: relational:: index:: { CreateIndex , IndexList , Method } ;
57- use crate :: relational:: { Layout , LayoutCache , SqlName , Table } ;
57+ use crate :: relational:: { Layout , LayoutCache , SqlName , Table , STATEMENT_TIMEOUT } ;
5858use crate :: relational_queries:: { FromEntityData , JSONData } ;
5959use crate :: { advisory_lock, catalog, retry} ;
6060use crate :: { connection_pool:: ConnectionPool , detail} ;
@@ -293,12 +293,17 @@ impl DeploymentStore {
293293 query : & str ,
294294 ) -> Result < Vec < SqlQueryObject > , QueryExecutionError > {
295295 let query = format ! ( "select to_jsonb(sub.*) as data from ({}) as sub" , query) ;
296-
297296 let query = diesel:: sql_query ( query) ;
298297
299- // Execute the provided SQL query
300- let results = query
301- . load :: < JSONData > ( conn)
298+ let results = conn
299+ . transaction ( |conn| {
300+ if let Some ( ref timeout_sql) = * STATEMENT_TIMEOUT {
301+ conn. batch_execute ( timeout_sql) ?;
302+ }
303+
304+ // Execute the provided SQL query
305+ query. load :: < JSONData > ( conn)
306+ } )
302307 . map_err ( |e| QueryExecutionError :: SqlError ( e. to_string ( ) ) ) ?;
303308
304309 Ok ( results
0 commit comments