@@ -3,40 +3,43 @@ use tokio_postgres::types::{Date, Timestamp};
3
3
4
4
use crate :: types:: test_type;
5
5
6
+ // time 0.2 does not [yet?] support parsing fractional seconds
7
+ // https://github.com/time-rs/time/issues/226
8
+
6
9
#[ tokio:: test]
7
- async fn test_naive_date_time_params ( ) {
10
+ async fn test_primitive_date_time_params ( ) {
8
11
fn make_check ( time : & str ) -> ( Option < PrimitiveDateTime > , & str ) {
9
12
(
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 ( ) ) ,
11
14
time,
12
15
)
13
16
}
14
17
test_type (
15
18
"TIMESTAMP" ,
16
19
& [
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
20
23
( None , "NULL" ) ,
21
24
] ,
22
25
)
23
26
. await ;
24
27
}
25
28
26
29
#[ tokio:: test]
27
- async fn test_with_special_naive_date_time_params ( ) {
30
+ async fn test_with_special_primitive_date_time_params ( ) {
28
31
fn make_check ( time : & str ) -> ( Timestamp < PrimitiveDateTime > , & str ) {
29
32
(
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 ( ) ) ,
31
34
time,
32
35
)
33
36
}
34
37
test_type (
35
38
"TIMESTAMP" ,
36
39
& [
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
40
43
( Timestamp :: PosInfinity , "'infinity'" ) ,
41
44
( Timestamp :: NegInfinity , "'-infinity'" ) ,
42
45
] ,
@@ -45,39 +48,39 @@ async fn test_with_special_naive_date_time_params() {
45
48
}
46
49
47
50
#[ tokio:: test]
48
- async fn test_date_time_params ( ) {
51
+ async fn test_offset_date_time_params ( ) {
49
52
fn make_check ( time : & str ) -> ( Option < OffsetDateTime > , & str ) {
50
53
(
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 ( ) ) ,
52
55
time,
53
56
)
54
57
}
55
58
test_type (
56
59
"TIMESTAMP WITH TIME ZONE" ,
57
60
& [
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
61
64
( None , "NULL" ) ,
62
65
] ,
63
66
)
64
67
. await ;
65
68
}
66
69
67
70
#[ tokio:: test]
68
- async fn test_with_special_date_time_params ( ) {
71
+ async fn test_with_special_offset_date_time_params ( ) {
69
72
fn make_check ( time : & str ) -> ( Timestamp < OffsetDateTime > , & str ) {
70
73
(
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 ( ) ) ,
72
75
time,
73
76
)
74
77
}
75
78
test_type (
76
79
"TIMESTAMP WITH TIME ZONE" ,
77
80
& [
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
81
84
( Timestamp :: PosInfinity , "'infinity'" ) ,
82
85
( Timestamp :: NegInfinity , "'-infinity'" ) ,
83
86
] ,
@@ -130,16 +133,16 @@ async fn test_with_special_date_params() {
130
133
async fn test_time_params ( ) {
131
134
fn make_check ( time : & str ) -> ( Option < time_02:: Time > , & str ) {
132
135
(
133
- Some ( time_02:: Time :: parse ( time, "'%H:%M:%S.%f '" ) . unwrap ( ) ) ,
136
+ Some ( time_02:: Time :: parse ( time, "'%H:%M:%S'" ) . unwrap ( ) ) ,
134
137
time,
135
138
)
136
139
}
137
140
test_type (
138
141
"TIME" ,
139
142
& [
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
143
146
( None , "NULL" ) ,
144
147
] ,
145
148
)
0 commit comments