@@ -11,12 +11,8 @@ use crate::types::Oid;
11
11
use crate :: HashMap ;
12
12
use crate :: { PgColumn , PgConnection , PgTypeInfo } ;
13
13
use futures_core:: future:: BoxFuture ;
14
- use futures_util:: TryFutureExt ;
15
14
use smallvec:: SmallVec ;
16
- use sqlx_core:: executor:: Executor ;
17
- use sqlx_core:: from_row:: FromRow ;
18
15
use sqlx_core:: query_builder:: QueryBuilder ;
19
- use sqlx_core:: raw_sql:: raw_sql;
20
16
use std:: sync:: Arc ;
21
17
22
18
/// Describes the type of the `pg_type.typtype` column
@@ -523,22 +519,7 @@ WHERE rngtypid = $1
523
519
. display ( )
524
520
. ok_or_else ( || err_protocol ! ( "cannot EXPLAIN unnamed statement: {stmt_id:?}" ) ) ?;
525
521
526
- let mut explain = format ! (
527
- "
528
- BEGIN;
529
- DO $$
530
- BEGIN
531
- IF EXISTS (
532
- SELECT 1
533
- FROM pg_settings
534
- WHERE name = 'plan_cache_mode'
535
- ) THEN
536
- SET LOCAL plan_cache_mode = 'force_generic_plan';
537
- END IF;
538
- END $$;
539
- EXPLAIN (VERBOSE, FORMAT JSON) EXECUTE {stmt_id_display}
540
- "
541
- ) ;
522
+ let mut explain = format ! ( "EXPLAIN (VERBOSE, FORMAT JSON) EXECUTE {stmt_id_display}" ) ;
542
523
let mut comma = false ;
543
524
544
525
if params_len > 0 {
@@ -554,15 +535,11 @@ WHERE rngtypid = $1
554
535
comma = true ;
555
536
}
556
537
557
- explain += ");
558
- ROLLBACK;
559
- " ;
538
+ explain += ")" ;
560
539
}
561
540
562
- let ( Json ( explains) , ) : ( Json < SmallVec < [ Explain ; 1 ] > > , ) = self
563
- . fetch_one ( raw_sql ( & explain) )
564
- . map_ok ( |row| FromRow :: from_row ( & row) )
565
- . await ??;
541
+ let ( Json ( explains) , ) : ( Json < SmallVec < [ Explain ; 1 ] > > , ) =
542
+ query_as ( & explain) . fetch_one ( self ) . await ?;
566
543
567
544
let mut nullables = Vec :: new ( ) ;
568
545
0 commit comments