@@ -4,8 +4,8 @@ use diesel::types::*;
44
55#[ test]
66fn boolean_from_sql ( ) {
7- assert_eq ! ( true , query_single_value:: <Bool , bool >( "SELECT 't'::bool" ) ) ;
8- assert_eq ! ( false , query_single_value:: <Bool , bool >( "SELECT 'f'::bool" ) ) ;
7+ assert_eq ! ( true , query_single_value:: <Bool , bool >( "'t'::bool" ) ) ;
8+ assert_eq ! ( false , query_single_value:: <Bool , bool >( "'f'::bool" ) ) ;
99}
1010
1111#[ test]
@@ -18,9 +18,9 @@ fn boolean_to_sql() {
1818
1919#[ test]
2020fn i16_from_sql ( ) {
21- assert_eq ! ( 0 , query_single_value:: <SmallInt , i16 >( "SELECT 0::int2" ) ) ;
22- assert_eq ! ( -1 , query_single_value:: <SmallInt , i16 >( "SELECT -1::int2" ) ) ;
23- assert_eq ! ( 1 , query_single_value:: <SmallInt , i16 >( "SELECT 1::int2" ) ) ;
21+ assert_eq ! ( 0 , query_single_value:: <SmallInt , i16 >( "0::int2" ) ) ;
22+ assert_eq ! ( -1 , query_single_value:: <SmallInt , i16 >( "-1::int2" ) ) ;
23+ assert_eq ! ( 1 , query_single_value:: <SmallInt , i16 >( "1::int2" ) ) ;
2424}
2525
2626#[ test]
@@ -34,9 +34,9 @@ fn i16_to_sql_smallint() {
3434
3535#[ test]
3636fn i32_from_sql ( ) {
37- assert_eq ! ( 0 , query_single_value:: <Integer , i32 >( "SELECT 0" ) ) ;
38- assert_eq ! ( -1 , query_single_value:: <Integer , i32 >( "SELECT -1" ) ) ;
39- assert_eq ! ( 70000 , query_single_value:: <Integer , i32 >( "SELECT 70000" ) ) ;
37+ assert_eq ! ( 0 , query_single_value:: <Integer , i32 >( "0" ) ) ;
38+ assert_eq ! ( -1 , query_single_value:: <Integer , i32 >( "-1" ) ) ;
39+ assert_eq ! ( 70000 , query_single_value:: <Integer , i32 >( "70000" ) ) ;
4040}
4141
4242#[ test]
@@ -50,10 +50,10 @@ fn i32_to_sql_integer() {
5050
5151#[ test]
5252fn i64_from_sql ( ) {
53- assert_eq ! ( 0 , query_single_value:: <BigInt , i64 >( "SELECT 0::int8" ) ) ;
54- assert_eq ! ( -1 , query_single_value:: <BigInt , i64 >( "SELECT -1::int8" ) ) ;
53+ assert_eq ! ( 0 , query_single_value:: <BigInt , i64 >( "0::int8" ) ) ;
54+ assert_eq ! ( -1 , query_single_value:: <BigInt , i64 >( "-1::int8" ) ) ;
5555 assert_eq ! ( 283745982374 ,
56- query_single_value:: <BigInt , i64 >( "SELECT 283745982374::int8" ) ) ;
56+ query_single_value:: <BigInt , i64 >( "283745982374::int8" ) ) ;
5757}
5858
5959#[ test]
@@ -69,14 +69,14 @@ use std::{f32, f64};
6969
7070#[ test]
7171fn f32_from_sql ( ) {
72- assert_eq ! ( 0.0 , query_single_value:: <Float , f32 >( "SELECT 0.0::real" ) ) ;
73- assert_eq ! ( 0.5 , query_single_value:: <Float , f32 >( "SELECT 0.5::real" ) ) ;
74- let nan = query_single_value :: < Float , f32 > ( "SELECT 'NaN'::real" ) ;
72+ assert_eq ! ( 0.0 , query_single_value:: <Float , f32 >( "0.0::real" ) ) ;
73+ assert_eq ! ( 0.5 , query_single_value:: <Float , f32 >( "0.5::real" ) ) ;
74+ let nan = query_single_value :: < Float , f32 > ( "'NaN'::real" ) ;
7575 assert ! ( nan. is_nan( ) ) ;
7676 assert_eq ! ( f32 :: INFINITY ,
77- query_single_value:: <Float , f32 >( "SELECT 'Infinity'::real" ) ) ;
77+ query_single_value:: <Float , f32 >( "'Infinity'::real" ) ) ;
7878 assert_eq ! ( -f32 :: INFINITY ,
79- query_single_value:: <Float , f32 >( "SELECT '-Infinity'::real" ) ) ;
79+ query_single_value:: <Float , f32 >( "'-Infinity'::real" ) ) ;
8080}
8181
8282#[ test]
@@ -94,14 +94,14 @@ fn f32_to_sql_float() {
9494
9595#[ test]
9696fn f64_from_sql ( ) {
97- assert_eq ! ( 0.0 , query_single_value:: <Double , f64 >( "SELECT 0.0::double precision" ) ) ;
98- assert_eq ! ( 0.5 , query_single_value:: <Double , f64 >( "SELECT 0.5::double precision" ) ) ;
99- let nan = query_single_value :: < Double , f64 > ( "SELECT 'NaN'::double precision" ) ;
97+ assert_eq ! ( 0.0 , query_single_value:: <Double , f64 >( "0.0::double precision" ) ) ;
98+ assert_eq ! ( 0.5 , query_single_value:: <Double , f64 >( "0.5::double precision" ) ) ;
99+ let nan = query_single_value :: < Double , f64 > ( "'NaN'::double precision" ) ;
100100 assert ! ( nan. is_nan( ) ) ;
101101 assert_eq ! ( f64 :: INFINITY ,
102- query_single_value:: <Double , f64 >( "SELECT 'Infinity'::double precision" ) ) ;
102+ query_single_value:: <Double , f64 >( "'Infinity'::double precision" ) ) ;
103103 assert_eq ! ( -f64 :: INFINITY ,
104- query_single_value:: <Double , f64 >( "SELECT '-Infinity'::double precision" ) ) ;
104+ query_single_value:: <Double , f64 >( "'-Infinity'::double precision" ) ) ;
105105}
106106
107107#[ test]
@@ -122,8 +122,8 @@ fn f64_to_sql_float() {
122122
123123#[ test]
124124fn string_from_sql ( ) {
125- assert_eq ! ( "hello" , & query_single_value:: <VarChar , String >( "SELECT 'hello'" ) ) ;
126- assert_eq ! ( "world" , & query_single_value:: <VarChar , String >( "SELECT 'world'" ) ) ;
125+ assert_eq ! ( "hello" , & query_single_value:: <VarChar , String >( "'hello'" ) ) ;
126+ assert_eq ! ( "world" , & query_single_value:: <VarChar , String >( "'world'" ) ) ;
127127}
128128
129129#[ test]
@@ -144,11 +144,11 @@ fn string_to_sql_varchar() {
144144fn binary_from_sql ( ) {
145145 let invalid_utf8_bytes = vec ! [ 0x1Fu8 , 0x8Bu8 ] ;
146146 assert_eq ! ( invalid_utf8_bytes,
147- query_single_value:: <Binary , Vec <u8 >>( "SELECT E'\\ \\ x1F8B'::bytea" ) ) ;
147+ query_single_value:: <Binary , Vec <u8 >>( "E'\\ \\ x1F8B'::bytea" ) ) ;
148148 assert_eq ! ( Vec :: <u8 >:: new( ) ,
149- query_single_value:: <Binary , Vec <u8 >>( "SELECT ''::bytea" ) ) ;
149+ query_single_value:: <Binary , Vec <u8 >>( "''::bytea" ) ) ;
150150 assert_eq ! ( vec![ 0u8 ] ,
151- query_single_value:: <Binary , Vec <u8 >>( "SELECT E'\\ \\ 000'::bytea" ) ) ;
151+ query_single_value:: <Binary , Vec <u8 >>( "E'\\ \\ 000'::bytea" ) ) ;
152152}
153153
154154#[ test]
@@ -167,19 +167,19 @@ fn bytes_to_sql_binary() {
167167#[ test]
168168fn option_from_sql ( ) {
169169 assert_eq ! ( Some ( true ) ,
170- query_single_value:: <Nullable <Bool >, Option <bool >>( "SELECT 't'::bool" ) ) ;
170+ query_single_value:: <Nullable <Bool >, Option <bool >>( "'t'::bool" ) ) ;
171171 assert_eq ! ( None ,
172- query_single_value:: <Nullable <Bool >, Option <bool >>( "SELECT NULL" ) ) ;
172+ query_single_value:: <Nullable <Bool >, Option <bool >>( "NULL" ) ) ;
173173 assert_eq ! ( Some ( 1 ) ,
174- query_single_value:: <Nullable <Integer >, Option <i32 >>( "SELECT 1" ) ) ;
174+ query_single_value:: <Nullable <Integer >, Option <i32 >>( "1" ) ) ;
175175 assert_eq ! ( None ,
176- query_single_value:: <Nullable <Integer >, Option <i32 >>( "SELECT NULL" ) ) ;
176+ query_single_value:: <Nullable <Integer >, Option <i32 >>( "NULL" ) ) ;
177177 assert_eq ! ( Some ( "Hello!" . to_string( ) ) ,
178- query_single_value:: <Nullable <VarChar >, Option <String >>( "SELECT 'Hello!'" ) ) ;
178+ query_single_value:: <Nullable <VarChar >, Option <String >>( "'Hello!'" ) ) ;
179179 assert_eq ! ( Some ( "" . to_string( ) ) ,
180- query_single_value:: <Nullable <VarChar >, Option <String >>( "SELECT ''" ) ) ;
180+ query_single_value:: <Nullable <VarChar >, Option <String >>( "''" ) ) ;
181181 assert_eq ! ( None ,
182- query_single_value:: <Nullable <VarChar >, Option <String >>( "SELECT NULL" ) ) ;
182+ query_single_value:: <Nullable <VarChar >, Option <String >>( "NULL" ) ) ;
183183}
184184
185185#[ test]
@@ -201,12 +201,12 @@ fn option_to_sql() {
201201fn pg_array_from_sql ( ) {
202202 assert_eq ! ( vec![ true , false , true ] ,
203203 query_single_value:: <Array <Bool >, Vec <bool >>(
204- "SELECT ARRAY['t', 'f', 't']::bool[]" ) ) ;
204+ "ARRAY['t', 'f', 't']::bool[]" ) ) ;
205205 assert_eq ! ( vec![ 1 , 2 , 3 ] ,
206- query_single_value:: <Array <Integer >, Vec <i32 >>( "SELECT ARRAY[1, 2, 3]" ) ) ;
206+ query_single_value:: <Array <Integer >, Vec <i32 >>( "ARRAY[1, 2, 3]" ) ) ;
207207 assert_eq ! ( vec![ "Hello" . to_string( ) , "" . to_string( ) , "world" . to_string( ) ] ,
208208 query_single_value:: <Array <VarChar >, Vec <String >>(
209- "SELECT ARRAY['Hello', '', 'world']" ) ) ;
209+ "ARRAY['Hello', '', 'world']" ) ) ;
210210}
211211
212212#[ test]
@@ -225,7 +225,7 @@ fn to_sql_array() {
225225
226226#[ test]
227227fn pg_array_containing_null ( ) {
228- let query = "SELECT ARRAY['Hello', '', NULL, 'world']" ;
228+ let query = "ARRAY['Hello', '', NULL, 'world']" ;
229229 let data = query_single_value :: < Array < Nullable < VarChar > > , Vec < Option < String > > > ( query) ;
230230 let expected = vec ! [
231231 Some ( "Hello" . to_string( ) ) ,
@@ -240,10 +240,10 @@ fn pg_array_containing_null() {
240240fn timestamp_from_sql ( ) {
241241 use diesel:: data_types:: PgTimestamp ;
242242
243- let query = "SELECT '2015-11-13 13:26:48.041057-07'::timestamp" ;
243+ let query = "'2015-11-13 13:26:48.041057-07'::timestamp" ;
244244 let expected_value = PgTimestamp ( 500736408041057 ) ;
245245 assert_eq ! ( expected_value, query_single_value:: <Timestamp , PgTimestamp >( query) ) ;
246- let query = "SELECT '2015-11-13 13:26:49.041057-07'::timestamp" ;
246+ let query = "'2015-11-13 13:26:49.041057-07'::timestamp" ;
247247 let expected_value = PgTimestamp ( 500736409041057 ) ;
248248 assert_eq ! ( expected_value, query_single_value:: <Timestamp , PgTimestamp >( query) ) ;
249249}
@@ -266,30 +266,29 @@ fn pg_timestamp_to_sql_timestamp() {
266266fn pg_numeric_from_sql ( ) {
267267 use diesel:: data_types:: PgNumeric ;
268268
269- let query = "SELECT 1.0::numeric" ;
269+ let query = "1.0::numeric" ;
270270 let expected_value = PgNumeric :: Positive {
271271 digits : vec ! [ 1 ] ,
272272 weight : 0 ,
273273 scale : 1 ,
274274 } ;
275275 assert_eq ! ( expected_value, query_single_value:: <Numeric , PgNumeric >( query) ) ;
276- let query = "SELECT -31.0::numeric" ;
276+ let query = "-31.0::numeric" ;
277277 let expected_value = PgNumeric :: Negative {
278278 digits : vec ! [ 31 ] ,
279279 weight : 0 ,
280280 scale : 1 ,
281281 } ;
282282 assert_eq ! ( expected_value, query_single_value:: <Numeric , PgNumeric >( query) ) ;
283- let query = "SELECT 'NaN'::numeric" ;
283+ let query = "'NaN'::numeric" ;
284284 let expected_value = PgNumeric :: NaN ;
285285 assert_eq ! ( expected_value, query_single_value:: <Numeric , PgNumeric >( query) ) ;
286286}
287287
288- fn query_single_value < T : NativeSqlType , U : Queryable < T > > ( sql : & str ) -> U {
288+ fn query_single_value < T : NativeSqlType , U : Queryable < T > > ( sql_str : & str ) -> U {
289+ use diesel:: expression:: dsl:: sql;
289290 let connection = connection ( ) ;
290- let mut cursor = connection. query_sql :: < T , U > ( sql)
291- . unwrap ( ) ;
292- cursor. nth ( 0 ) . unwrap ( )
291+ select ( sql :: < T > ( sql_str) ) . first ( & connection) . unwrap ( )
293292}
294293
295294use std:: fmt:: Debug ;
0 commit comments