@@ -4,7 +4,7 @@ use diesel::expression::{AsExpression, IntoSql};
4
4
use diesel:: pg:: { Pg , PgValue } ;
5
5
use diesel:: query_builder:: QueryId ;
6
6
use diesel:: serialize:: { self , IsNull , Output , ToSql } ;
7
- use diesel:: sql_types:: SqlType ;
7
+ use diesel:: sql_types:: { Array , Integer , SqlType } ;
8
8
use diesel:: * ;
9
9
use diesel_async:: { RunQueryDsl , SimpleAsyncConnection } ;
10
10
use std:: io:: Write ;
@@ -70,13 +70,6 @@ async fn custom_types_round_trip() {
70
70
] ;
71
71
let connection = & mut connection ( ) . await ;
72
72
73
- // Try encoding an array to test type metadata lookup
74
- let selected = select ( vec ! [ MyEnum :: Foo , MyEnum :: Bar ] . into_sql :: < sql_types:: Array < MyType > > ( ) )
75
- . get_result :: < Vec < MyEnum > > ( connection)
76
- . await
77
- . unwrap ( ) ;
78
- assert_eq ! ( vec![ MyEnum :: Foo , MyEnum :: Bar ] , selected) ;
79
-
80
73
connection
81
74
. batch_execute (
82
75
r#"
@@ -90,6 +83,16 @@ async fn custom_types_round_trip() {
90
83
. await
91
84
. unwrap ( ) ;
92
85
86
+ // Try encoding arrays to test type metadata lookup
87
+ let selected_data = ( vec ! [ MyEnum :: Foo , MyEnum :: Bar ] , vec ! [ 0i32 ] , vec ! [ vec![ MyEnum :: Foo ] ] ) ;
88
+ let selected = select (
89
+ selected_data. as_sql :: < ( Array < MyType > , Array < Integer > , Array < Array < MyType > > ) > ( ) ,
90
+ )
91
+ . get_result :: < ( Vec < MyEnum > , Vec < i32 > , Vec < Vec < MyEnum > > ) > ( connection)
92
+ . await
93
+ . unwrap ( ) ;
94
+ assert_eq ! ( selected_data, selected) ;
95
+
93
96
let inserted = insert_into ( custom_types:: table)
94
97
. values ( & data)
95
98
. get_results ( connection)
0 commit comments