@@ -54,7 +54,7 @@ use crate::detail::ErrorDetail;
54
54
use crate :: dynds:: DataSourcesTable ;
55
55
use crate :: primary:: { DeploymentId , Primary } ;
56
56
use 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 } ;
58
58
use crate :: relational_queries:: { FromEntityData , JSONData } ;
59
59
use crate :: { advisory_lock, catalog, retry} ;
60
60
use crate :: { detail, ConnectionPool } ;
@@ -297,12 +297,17 @@ impl DeploymentStore {
297
297
query : & str ,
298
298
) -> Result < Vec < SqlQueryObject > , QueryExecutionError > {
299
299
let query = format ! ( "select to_jsonb(sub.*) as data from ({}) as sub" , query) ;
300
-
301
300
let query = diesel:: sql_query ( query) ;
302
301
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
+ } )
306
311
. map_err ( |e| QueryExecutionError :: SqlError ( e. to_string ( ) ) ) ?;
307
312
308
313
Ok ( results
0 commit comments