@@ -3,40 +3,43 @@ use tokio_postgres::types::{Date, Timestamp};
33
44use crate :: types:: test_type;
55
6+ // time 0.2 does not [yet?] support parsing fractional seconds
7+ // https://github.com/time-rs/time/issues/226
8+
69#[ tokio:: test]
7- async fn test_naive_date_time_params ( ) {
10+ async fn test_primitive_date_time_params ( ) {
811 fn make_check ( time : & str ) -> ( Option < PrimitiveDateTime > , & str ) {
912 (
10- Some ( PrimitiveDateTime :: parse ( time, "'%Y-%m-%d %H:%M:%S.%f '" ) . unwrap ( ) ) ,
13+ Some ( PrimitiveDateTime :: parse ( time, "'%Y-%m-%d %H:%M:%S'" ) . unwrap ( ) ) ,
1114 time,
1215 )
1316 }
1417 test_type (
1518 "TIMESTAMP" ,
1619 & [
17- make_check ( "'1970-01-01 00:00:00.010000000 '" ) ,
18- make_check ( "'1965-09-25 11:19:33.100314000 '" ) ,
19- make_check ( "'2010-02-09 23:11:45.120200000 '" ) ,
20+ make_check ( "'1970-01-01 00:00:00'" ) , // .010000000
21+ make_check ( "'1965-09-25 11:19:33'" ) , // .100314000
22+ make_check ( "'2010-02-09 23:11:45'" ) , // .120200000
2023 ( None , "NULL" ) ,
2124 ] ,
2225 )
2326 . await ;
2427}
2528
2629#[ tokio:: test]
27- async fn test_with_special_naive_date_time_params ( ) {
30+ async fn test_with_special_primitive_date_time_params ( ) {
2831 fn make_check ( time : & str ) -> ( Timestamp < PrimitiveDateTime > , & str ) {
2932 (
30- Timestamp :: Value ( PrimitiveDateTime :: parse ( time, "'%Y-%m-%d %H:%M:%S.%f '" ) . unwrap ( ) ) ,
33+ Timestamp :: Value ( PrimitiveDateTime :: parse ( time, "'%Y-%m-%d %H:%M:%S'" ) . unwrap ( ) ) ,
3134 time,
3235 )
3336 }
3437 test_type (
3538 "TIMESTAMP" ,
3639 & [
37- make_check ( "'1970-01-01 00:00:00.010000000 '" ) ,
38- make_check ( "'1965-09-25 11:19:33.100314000 '" ) ,
39- make_check ( "'2010-02-09 23:11:45.120200000 '" ) ,
40+ make_check ( "'1970-01-01 00:00:00'" ) , // .010000000
41+ make_check ( "'1965-09-25 11:19:33'" ) , // .100314000
42+ make_check ( "'2010-02-09 23:11:45'" ) , // .120200000
4043 ( Timestamp :: PosInfinity , "'infinity'" ) ,
4144 ( Timestamp :: NegInfinity , "'-infinity'" ) ,
4245 ] ,
@@ -45,39 +48,39 @@ async fn test_with_special_naive_date_time_params() {
4548}
4649
4750#[ tokio:: test]
48- async fn test_date_time_params ( ) {
51+ async fn test_offset_date_time_params ( ) {
4952 fn make_check ( time : & str ) -> ( Option < OffsetDateTime > , & str ) {
5053 (
51- Some ( OffsetDateTime :: parse ( time, "'%Y-%m-%d %H:%M:%S.%f '" ) . unwrap ( ) ) ,
54+ Some ( OffsetDateTime :: parse ( time, "'%Y-%m-%d %H:%M:%S %z '" ) . unwrap ( ) ) ,
5255 time,
5356 )
5457 }
5558 test_type (
5659 "TIMESTAMP WITH TIME ZONE" ,
5760 & [
58- make_check ( "'1970-01-01 00:00:00.010000000 '" ) ,
59- make_check ( "'1965-09-25 11:19:33.100314000 '" ) ,
60- make_check ( "'2010-02-09 23:11:45.120200000 '" ) ,
61+ make_check ( "'1970-01-01 00:00:00 +0000 '" ) , // .010000000
62+ make_check ( "'1965-09-25 11:19:33 +0000 '" ) , // .100314000
63+ make_check ( "'2010-02-09 23:11:45 +0000 '" ) , // .120200000
6164 ( None , "NULL" ) ,
6265 ] ,
6366 )
6467 . await ;
6568}
6669
6770#[ tokio:: test]
68- async fn test_with_special_date_time_params ( ) {
71+ async fn test_with_special_offset_date_time_params ( ) {
6972 fn make_check ( time : & str ) -> ( Timestamp < OffsetDateTime > , & str ) {
7073 (
71- Timestamp :: Value ( OffsetDateTime :: parse ( time, "'%Y-%m-%d %H:%M:%S.%f '" ) . unwrap ( ) ) ,
74+ Timestamp :: Value ( OffsetDateTime :: parse ( time, "'%Y-%m-%d %H:%M:%S %z '" ) . unwrap ( ) ) ,
7275 time,
7376 )
7477 }
7578 test_type (
7679 "TIMESTAMP WITH TIME ZONE" ,
7780 & [
78- make_check ( "'1970-01-01 00:00:00.010000000 '" ) ,
79- make_check ( "'1965-09-25 11:19:33.100314000 '" ) ,
80- make_check ( "'2010-02-09 23:11:45.120200000 '" ) ,
81+ make_check ( "'1970-01-01 00:00:00 +0000 '" ) , // .010000000
82+ make_check ( "'1965-09-25 11:19:33 +0000 '" ) , // .100314000
83+ make_check ( "'2010-02-09 23:11:45 +0000 '" ) , // .120200000
8184 ( Timestamp :: PosInfinity , "'infinity'" ) ,
8285 ( Timestamp :: NegInfinity , "'-infinity'" ) ,
8386 ] ,
@@ -130,16 +133,16 @@ async fn test_with_special_date_params() {
130133async fn test_time_params ( ) {
131134 fn make_check ( time : & str ) -> ( Option < time_02:: Time > , & str ) {
132135 (
133- Some ( time_02:: Time :: parse ( time, "'%H:%M:%S.%f '" ) . unwrap ( ) ) ,
136+ Some ( time_02:: Time :: parse ( time, "'%H:%M:%S'" ) . unwrap ( ) ) ,
134137 time,
135138 )
136139 }
137140 test_type (
138141 "TIME" ,
139142 & [
140- make_check ( "'00:00:00.010000000 '" ) ,
141- make_check ( "'11:19:33.100314000 '" ) ,
142- make_check ( "'23:11:45.120200000 '" ) ,
143+ make_check ( "'00:00:00'" ) , // .010000000
144+ make_check ( "'11:19:33'" ) , // .100314000
145+ make_check ( "'23:11:45'" ) , // .120200000
143146 ( None , "NULL" ) ,
144147 ] ,
145148 )
0 commit comments