@@ -54,7 +54,7 @@ use crate::detail::ErrorDetail;
54
54
use crate :: dynds:: DataSourcesTable ;
55
55
use crate :: primary:: DeploymentId ;
56
56
use crate :: relational:: index:: { CreateIndex , IndexList , Method } ;
57
- use crate :: relational:: { Layout , LayoutCache , SqlName , Table } ;
57
+ use crate :: relational:: { 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 :: { connection_pool:: ConnectionPool , detail} ;
@@ -293,12 +293,17 @@ impl DeploymentStore {
293
293
query : & str ,
294
294
) -> Result < Vec < SqlQueryObject > , QueryExecutionError > {
295
295
let query = format ! ( "select to_jsonb(sub.*) as data from ({}) as sub" , query) ;
296
-
297
296
let query = diesel:: sql_query ( query) ;
298
297
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
+ } )
302
307
. map_err ( |e| QueryExecutionError :: SqlError ( e. to_string ( ) ) ) ?;
303
308
304
309
Ok ( results
0 commit comments