@@ -527,11 +527,12 @@ func TestCustomTimezone(t *testing.T) {
527
527
528
528
tpl := resp .Data [0 ].([]interface {})
529
529
if respDt , ok := toDatetime (tpl [0 ]); ok {
530
- zone , offset := respDt .ToTime ().Zone ()
530
+ zone := respDt .ToTime ().Location ().String ()
531
+ _ , offset := respDt .ToTime ().Zone ()
531
532
if zone != customZone {
532
533
t .Fatalf ("Expected zone %s instead of %s" , customZone , zone )
533
534
}
534
- if offset != customOffset {
535
+ if offset != 240 * 60 {
535
536
t .Fatalf ("Expected offset %d instead of %d" , customOffset , offset )
536
537
}
537
538
@@ -586,62 +587,63 @@ var datetimeSample = []struct {
586
587
fmt string
587
588
dt string
588
589
mpBuf string // MessagePack buffer.
590
+ zone string
589
591
}{
590
592
/* Cases for base encoding without a timezone. */
591
- {time .RFC3339 , "2012-01-31T23:59:59.000000010Z" , "d8047f80284f000000000a00000000000000" },
592
- {time .RFC3339 , "1970-01-01T00:00:00.000000010Z" , "d80400000000000000000a00000000000000" },
593
- {time .RFC3339 , "2010-08-12T11:39:14Z" , "d70462dd634c00000000" },
594
- {time .RFC3339 , "1984-03-24T18:04:05Z" , "d7041530c31a00000000" },
595
- {time .RFC3339 , "2010-01-12T00:00:00Z" , "d70480bb4b4b00000000" },
596
- {time .RFC3339 , "1970-01-01T00:00:00Z" , "d7040000000000000000" },
597
- {time .RFC3339 , "1970-01-01T00:00:00.123456789Z" , "d804000000000000000015cd5b0700000000" },
598
- {time .RFC3339 , "1970-01-01T00:00:00.12345678Z" , "d80400000000000000000ccd5b0700000000" },
599
- {time .RFC3339 , "1970-01-01T00:00:00.1234567Z" , "d8040000000000000000bccc5b0700000000" },
600
- {time .RFC3339 , "1970-01-01T00:00:00.123456Z" , "d804000000000000000000ca5b0700000000" },
601
- {time .RFC3339 , "1970-01-01T00:00:00.12345Z" , "d804000000000000000090b25b0700000000" },
602
- {time .RFC3339 , "1970-01-01T00:00:00.1234Z" , "d804000000000000000040ef5a0700000000" },
603
- {time .RFC3339 , "1970-01-01T00:00:00.123Z" , "d8040000000000000000c0d4540700000000" },
604
- {time .RFC3339 , "1970-01-01T00:00:00.12Z" , "d8040000000000000000000e270700000000" },
605
- {time .RFC3339 , "1970-01-01T00:00:00.1Z" , "d804000000000000000000e1f50500000000" },
606
- {time .RFC3339 , "1970-01-01T00:00:00.01Z" , "d80400000000000000008096980000000000" },
607
- {time .RFC3339 , "1970-01-01T00:00:00.001Z" , "d804000000000000000040420f0000000000" },
608
- {time .RFC3339 , "1970-01-01T00:00:00.0001Z" , "d8040000000000000000a086010000000000" },
609
- {time .RFC3339 , "1970-01-01T00:00:00.00001Z" , "d80400000000000000001027000000000000" },
610
- {time .RFC3339 , "1970-01-01T00:00:00.000001Z" , "d8040000000000000000e803000000000000" },
611
- {time .RFC3339 , "1970-01-01T00:00:00.0000001Z" , "d80400000000000000006400000000000000" },
612
- {time .RFC3339 , "1970-01-01T00:00:00.00000001Z" , "d80400000000000000000a00000000000000" },
613
- {time .RFC3339 , "1970-01-01T00:00:00.000000001Z" , "d80400000000000000000100000000000000" },
614
- {time .RFC3339 , "1970-01-01T00:00:00.000000009Z" , "d80400000000000000000900000000000000" },
615
- {time .RFC3339 , "1970-01-01T00:00:00.00000009Z" , "d80400000000000000005a00000000000000" },
616
- {time .RFC3339 , "1970-01-01T00:00:00.0000009Z" , "d80400000000000000008403000000000000" },
617
- {time .RFC3339 , "1970-01-01T00:00:00.000009Z" , "d80400000000000000002823000000000000" },
618
- {time .RFC3339 , "1970-01-01T00:00:00.00009Z" , "d8040000000000000000905f010000000000" },
619
- {time .RFC3339 , "1970-01-01T00:00:00.0009Z" , "d8040000000000000000a0bb0d0000000000" },
620
- {time .RFC3339 , "1970-01-01T00:00:00.009Z" , "d80400000000000000004054890000000000" },
621
- {time .RFC3339 , "1970-01-01T00:00:00.09Z" , "d8040000000000000000804a5d0500000000" },
622
- {time .RFC3339 , "1970-01-01T00:00:00.9Z" , "d804000000000000000000e9a43500000000" },
623
- {time .RFC3339 , "1970-01-01T00:00:00.99Z" , "d80400000000000000008033023b00000000" },
624
- {time .RFC3339 , "1970-01-01T00:00:00.999Z" , "d8040000000000000000c0878b3b00000000" },
625
- {time .RFC3339 , "1970-01-01T00:00:00.9999Z" , "d80400000000000000006043993b00000000" },
626
- {time .RFC3339 , "1970-01-01T00:00:00.99999Z" , "d8040000000000000000f0a29a3b00000000" },
627
- {time .RFC3339 , "1970-01-01T00:00:00.999999Z" , "d804000000000000000018c69a3b00000000" },
628
- {time .RFC3339 , "1970-01-01T00:00:00.9999999Z" , "d80400000000000000009cc99a3b00000000" },
629
- {time .RFC3339 , "1970-01-01T00:00:00.99999999Z" , "d8040000000000000000f6c99a3b00000000" },
630
- {time .RFC3339 , "1970-01-01T00:00:00.999999999Z" , "d8040000000000000000ffc99a3b00000000" },
631
- {time .RFC3339 , "1970-01-01T00:00:00.0Z" , "d7040000000000000000" },
632
- {time .RFC3339 , "1970-01-01T00:00:00.00Z" , "d7040000000000000000" },
633
- {time .RFC3339 , "1970-01-01T00:00:00.000Z" , "d7040000000000000000" },
634
- {time .RFC3339 , "1970-01-01T00:00:00.0000Z" , "d7040000000000000000" },
635
- {time .RFC3339 , "1970-01-01T00:00:00.00000Z" , "d7040000000000000000" },
636
- {time .RFC3339 , "1970-01-01T00:00:00.000000Z" , "d7040000000000000000" },
637
- {time .RFC3339 , "1970-01-01T00:00:00.0000000Z" , "d7040000000000000000" },
638
- {time .RFC3339 , "1970-01-01T00:00:00.00000000Z" , "d7040000000000000000" },
639
- {time .RFC3339 , "1970-01-01T00:00:00.000000000Z" , "d7040000000000000000" },
640
- {time .RFC3339 , "1973-11-29T21:33:09Z" , "d70415cd5b0700000000" },
641
- {time .RFC3339 , "2013-10-28T17:51:56Z" , "d7043ca46e5200000000" },
642
- {time .RFC3339 , "9999-12-31T23:59:59Z" , "d7047f41f4ff3a000000" },
593
+ {time .RFC3339 , "2012-01-31T23:59:59.000000010Z" , "d8047f80284f000000000a00000000000000" , "" },
594
+ {time .RFC3339 , "1970-01-01T00:00:00.000000010Z" , "d80400000000000000000a00000000000000" , "" },
595
+ {time .RFC3339 , "2010-08-12T11:39:14Z" , "d70462dd634c00000000" , "" },
596
+ {time .RFC3339 , "1984-03-24T18:04:05Z" , "d7041530c31a00000000" , "" },
597
+ {time .RFC3339 , "2010-01-12T00:00:00Z" , "d70480bb4b4b00000000" , "" },
598
+ {time .RFC3339 , "1970-01-01T00:00:00Z" , "d7040000000000000000" , "" },
599
+ {time .RFC3339 , "1970-01-01T00:00:00.123456789Z" , "d804000000000000000015cd5b0700000000" , "" },
600
+ {time .RFC3339 , "1970-01-01T00:00:00.12345678Z" , "d80400000000000000000ccd5b0700000000" , "" },
601
+ {time .RFC3339 , "1970-01-01T00:00:00.1234567Z" , "d8040000000000000000bccc5b0700000000" , "" },
602
+ {time .RFC3339 , "1970-01-01T00:00:00.123456Z" , "d804000000000000000000ca5b0700000000" , "" },
603
+ {time .RFC3339 , "1970-01-01T00:00:00.12345Z" , "d804000000000000000090b25b0700000000" , "" },
604
+ {time .RFC3339 , "1970-01-01T00:00:00.1234Z" , "d804000000000000000040ef5a0700000000" , "" },
605
+ {time .RFC3339 , "1970-01-01T00:00:00.123Z" , "d8040000000000000000c0d4540700000000" , "" },
606
+ {time .RFC3339 , "1970-01-01T00:00:00.12Z" , "d8040000000000000000000e270700000000" , "" },
607
+ {time .RFC3339 , "1970-01-01T00:00:00.1Z" , "d804000000000000000000e1f50500000000" , "" },
608
+ {time .RFC3339 , "1970-01-01T00:00:00.01Z" , "d80400000000000000008096980000000000" , "" },
609
+ {time .RFC3339 , "1970-01-01T00:00:00.001Z" , "d804000000000000000040420f0000000000" , "" },
610
+ {time .RFC3339 , "1970-01-01T00:00:00.0001Z" , "d8040000000000000000a086010000000000" , "" },
611
+ {time .RFC3339 , "1970-01-01T00:00:00.00001Z" , "d80400000000000000001027000000000000" , "" },
612
+ {time .RFC3339 , "1970-01-01T00:00:00.000001Z" , "d8040000000000000000e803000000000000" , "" },
613
+ {time .RFC3339 , "1970-01-01T00:00:00.0000001Z" , "d80400000000000000006400000000000000" , "" },
614
+ {time .RFC3339 , "1970-01-01T00:00:00.00000001Z" , "d80400000000000000000a00000000000000" , "" },
615
+ {time .RFC3339 , "1970-01-01T00:00:00.000000001Z" , "d80400000000000000000100000000000000" , "" },
616
+ {time .RFC3339 , "1970-01-01T00:00:00.000000009Z" , "d80400000000000000000900000000000000" , "" },
617
+ {time .RFC3339 , "1970-01-01T00:00:00.00000009Z" , "d80400000000000000005a00000000000000" , "" },
618
+ {time .RFC3339 , "1970-01-01T00:00:00.0000009Z" , "d80400000000000000008403000000000000" , "" },
619
+ {time .RFC3339 , "1970-01-01T00:00:00.000009Z" , "d80400000000000000002823000000000000" , "" },
620
+ {time .RFC3339 , "1970-01-01T00:00:00.00009Z" , "d8040000000000000000905f010000000000" , "" },
621
+ {time .RFC3339 , "1970-01-01T00:00:00.0009Z" , "d8040000000000000000a0bb0d0000000000" , "" },
622
+ {time .RFC3339 , "1970-01-01T00:00:00.009Z" , "d80400000000000000004054890000000000" , "" },
623
+ {time .RFC3339 , "1970-01-01T00:00:00.09Z" , "d8040000000000000000804a5d0500000000" , "" },
624
+ {time .RFC3339 , "1970-01-01T00:00:00.9Z" , "d804000000000000000000e9a43500000000" , "" },
625
+ {time .RFC3339 , "1970-01-01T00:00:00.99Z" , "d80400000000000000008033023b00000000" , "" },
626
+ {time .RFC3339 , "1970-01-01T00:00:00.999Z" , "d8040000000000000000c0878b3b00000000" , "" },
627
+ {time .RFC3339 , "1970-01-01T00:00:00.9999Z" , "d80400000000000000006043993b00000000" , "" },
628
+ {time .RFC3339 , "1970-01-01T00:00:00.99999Z" , "d8040000000000000000f0a29a3b00000000" , "" },
629
+ {time .RFC3339 , "1970-01-01T00:00:00.999999Z" , "d804000000000000000018c69a3b00000000" , "" },
630
+ {time .RFC3339 , "1970-01-01T00:00:00.9999999Z" , "d80400000000000000009cc99a3b00000000" , "" },
631
+ {time .RFC3339 , "1970-01-01T00:00:00.99999999Z" , "d8040000000000000000f6c99a3b00000000" , "" },
632
+ {time .RFC3339 , "1970-01-01T00:00:00.999999999Z" , "d8040000000000000000ffc99a3b00000000" , "" },
633
+ {time .RFC3339 , "1970-01-01T00:00:00.0Z" , "d7040000000000000000" , "" },
634
+ {time .RFC3339 , "1970-01-01T00:00:00.00Z" , "d7040000000000000000" , "" },
635
+ {time .RFC3339 , "1970-01-01T00:00:00.000Z" , "d7040000000000000000" , "" },
636
+ {time .RFC3339 , "1970-01-01T00:00:00.0000Z" , "d7040000000000000000" , "" },
637
+ {time .RFC3339 , "1970-01-01T00:00:00.00000Z" , "d7040000000000000000" , "" },
638
+ {time .RFC3339 , "1970-01-01T00:00:00.000000Z" , "d7040000000000000000" , "" },
639
+ {time .RFC3339 , "1970-01-01T00:00:00.0000000Z" , "d7040000000000000000" , "" },
640
+ {time .RFC3339 , "1970-01-01T00:00:00.00000000Z" , "d7040000000000000000" , "" },
641
+ {time .RFC3339 , "1970-01-01T00:00:00.000000000Z" , "d7040000000000000000" , "" },
642
+ {time .RFC3339 , "1973-11-29T21:33:09Z" , "d70415cd5b0700000000" , "" },
643
+ {time .RFC3339 , "2013-10-28T17:51:56Z" , "d7043ca46e5200000000" , "" },
644
+ {time .RFC3339 , "9999-12-31T23:59:59Z" , "d7047f41f4ff3a000000" , "" },
643
645
/* Cases for encoding with a timezone. */
644
- {time .RFC3339 + " MST" , "2006-01-02T15:04:00+03:00 MSK" , "d804b016b9430000000000000000b400ee00 " },
646
+ {time .RFC3339 , "2006-01-02T15:04:00Z" , "d804e040b9430000000000000000b400b303" , "Europe/Moscow " },
645
647
}
646
648
647
649
func TestDatetimeInsertSelectDelete (t * testing.T ) {
@@ -653,8 +655,14 @@ func TestDatetimeInsertSelectDelete(t *testing.T) {
653
655
for _ , testcase := range datetimeSample {
654
656
t .Run (testcase .dt , func (t * testing.T ) {
655
657
tm , err := time .Parse (testcase .fmt , testcase .dt )
656
- if testcase .fmt == time . RFC3339 {
658
+ if testcase .zone == "" {
657
659
tm = tm .In (noTimezoneLoc )
660
+ } else {
661
+ loc , err := time .LoadLocation (testcase .zone )
662
+ if err != nil {
663
+ t .Fatalf ("Unable to load location: %s" , err )
664
+ }
665
+ tm = tm .In (loc )
658
666
}
659
667
if err != nil {
660
668
t .Fatalf ("Time (%s) parse failed: %s" , testcase .dt , err )
@@ -966,7 +974,7 @@ func TestCustomEncodeDecodeTuple5(t *testing.T) {
966
974
conn := test_helpers .ConnectWithValidation (t , server , opts )
967
975
defer conn .Close ()
968
976
969
- tm := time .Unix (500 , 1000 )
977
+ tm := time .Unix (500 , 1000 ). In ( time . FixedZone ( NoTimezone , 0 ))
970
978
dt , err := NewDatetime (tm )
971
979
if err != nil {
972
980
t .Fatalf ("Unable to create Datetime from %s: %s" , tm , err )
@@ -999,8 +1007,14 @@ func TestMPEncode(t *testing.T) {
999
1007
for _ , testcase := range datetimeSample {
1000
1008
t .Run (testcase .dt , func (t * testing.T ) {
1001
1009
tm , err := time .Parse (testcase .fmt , testcase .dt )
1002
- if testcase .fmt == time . RFC3339 {
1010
+ if testcase .zone == "" {
1003
1011
tm = tm .In (noTimezoneLoc )
1012
+ } else {
1013
+ loc , err := time .LoadLocation (testcase .zone )
1014
+ if err != nil {
1015
+ t .Fatalf ("Unable to load location: %s" , err )
1016
+ }
1017
+ tm = tm .In (loc )
1004
1018
}
1005
1019
if err != nil {
1006
1020
t .Fatalf ("Time (%s) parse failed: %s" , testcase .dt , err )
@@ -1016,7 +1030,7 @@ func TestMPEncode(t *testing.T) {
1016
1030
refBuf , _ := hex .DecodeString (testcase .mpBuf )
1017
1031
if reflect .DeepEqual (buf , refBuf ) != true {
1018
1032
t .Fatalf ("Failed to encode datetime '%s', actual %x, expected %x" ,
1019
- testcase . dt ,
1033
+ tm ,
1020
1034
buf ,
1021
1035
refBuf )
1022
1036
}
@@ -1028,8 +1042,14 @@ func TestMPDecode(t *testing.T) {
1028
1042
for _ , testcase := range datetimeSample {
1029
1043
t .Run (testcase .dt , func (t * testing.T ) {
1030
1044
tm , err := time .Parse (testcase .fmt , testcase .dt )
1031
- if testcase .fmt == time . RFC3339 {
1045
+ if testcase .zone == "" {
1032
1046
tm = tm .In (noTimezoneLoc )
1047
+ } else {
1048
+ loc , err := time .LoadLocation (testcase .zone )
1049
+ if err != nil {
1050
+ t .Fatalf ("Unable to load location: %s" , err )
1051
+ }
1052
+ tm = tm .In (loc )
1033
1053
}
1034
1054
if err != nil {
1035
1055
t .Fatalf ("Time (%s) parse failed: %s" , testcase .dt , err )
0 commit comments