@@ -826,19 +826,32 @@ fn test_to_string() {
826826
827827 let extension_sources = vec ! [
828828 ( Value :: Binary ( & [ 97 , 98 , 99 ] ) , r#""616263""# ) ,
829+ ( Value :: Binary ( & [ ] ) , r#""""# ) ,
829830 ( Value :: Date ( Date { value: 90570 } ) , r#""2217-12-22""# ) ,
831+ ( Value :: Date ( Date { value: -1 } ) , r#""1969-12-31""# ) ,
830832 (
831833 Value :: Timestamp ( Timestamp {
832834 value: 190390000000 ,
833835 } ) ,
834836 r#""1970-01-03 04:53:10.000000""# ,
835837 ) ,
838+ (
839+ Value :: Timestamp ( Timestamp { value: 0 } ) ,
840+ r#""1970-01-01 00:00:00.000000""# ,
841+ ) ,
836842 (
837843 Value :: TimestampTz ( TimestampTz {
838- offset: 8 ,
844+ offset: 8 * 3600 ,
839845 value: 190390000000 ,
840846 } ) ,
841- r#""1970-01-03 12:53:10.000000""# ,
847+ r#""1970-01-03 12:53:10.000000 +0800""# ,
848+ ) ,
849+ (
850+ Value :: TimestampTz ( TimestampTz {
851+ offset: 90 * 60 ,
852+ value: 0 ,
853+ } ) ,
854+ r#""1970-01-01 01:30:00.000000 +0130""# ,
842855 ) ,
843856 (
844857 Value :: Interval ( Interval {
@@ -848,13 +861,52 @@ fn test_to_string() {
848861 } ) ,
849862 r#""10 months 20 days 00:05:00""# ,
850863 ) ,
864+ (
865+ Value :: Interval ( Interval {
866+ months: -14 ,
867+ days: -3 ,
868+ micros: -90000000 ,
869+ } ) ,
870+ r#""-1 year -2 months -3 days -00:01:30""# ,
871+ ) ,
872+ (
873+ Value :: Interval ( Interval {
874+ months: -25 ,
875+ days: -1 ,
876+ micros: 0 ,
877+ } ) ,
878+ r#""-2 years -1 month -1 day""# ,
879+ ) ,
880+ (
881+ Value :: Interval ( Interval {
882+ months: 0 ,
883+ days: -2 ,
884+ micros: 5_000_000 ,
885+ } ) ,
886+ r#""-2 days 00:00:05""# ,
887+ ) ,
888+ (
889+ Value :: Interval ( Interval {
890+ months: 0 ,
891+ days: 0 ,
892+ micros: 0 ,
893+ } ) ,
894+ r#""00:00:00""# ,
895+ ) ,
851896 (
852897 Value :: Number ( Number :: Decimal128 ( Decimal128 {
853898 scale: 2 ,
854899 value: 1234 ,
855900 } ) ) ,
856901 r#"12.34"# ,
857902 ) ,
903+ (
904+ Value :: Number ( Number :: Decimal64 ( Decimal64 {
905+ scale: 2 ,
906+ value: -765 ,
907+ } ) ) ,
908+ r#"-7.65"# ,
909+ ) ,
858910 (
859911 Value :: Number ( Number :: Decimal256 ( Decimal256 {
860912 scale: 2 ,
@@ -870,7 +922,7 @@ fn test_to_string() {
870922 value: 190390000000 ,
871923 } ) ,
872924 Value :: TimestampTz ( TimestampTz {
873- offset: 8 ,
925+ offset: 8 * 3600 ,
874926 value: 190390000000 ,
875927 } ) ,
876928 Value :: Interval ( Interval {
@@ -887,7 +939,7 @@ fn test_to_string() {
887939 value: I256 :: new( 981724 ) ,
888940 } ) ) ,
889941 ] ) ,
890- r#"["616263","2217-12-22","1970-01-03 04:53:10.000000","1970-01-03 12:53:10.000000","10 months 20 days 00:05:00",12.34,9817.24]"# ,
942+ r#"["616263","2217-12-22","1970-01-03 04:53:10.000000","1970-01-03 12:53:10.000000 +0800 ","10 months 20 days 00:05:00",12.34,9817.24]"# ,
891943 ) ,
892944 (
893945 Value :: Object ( BTreeMap :: from( [
@@ -902,7 +954,7 @@ fn test_to_string() {
902954 (
903955 "k4" . to_string( ) ,
904956 Value :: TimestampTz ( TimestampTz {
905- offset: 8 ,
957+ offset: 8 * 3600 ,
906958 value: 190390000000 ,
907959 } ) ,
908960 ) ,
@@ -929,7 +981,7 @@ fn test_to_string() {
929981 } ) ) ,
930982 ) ,
931983 ] ) ) ,
932- r#"{"k1":"616263","k2":"2217-12-22","k3":"1970-01-03 04:53:10.000000","k4":"1970-01-03 12:53:10.000000","k5":"10 months 20 days 00:05:00","k6":12.34,"k7":9817.24}"# ,
984+ r#"{"k1":"616263","k2":"2217-12-22","k3":"1970-01-03 04:53:10.000000","k4":"1970-01-03 12:53:10.000000 +0800 ","k5":"10 months 20 days 00:05:00","k6":12.34,"k7":9817.24}"# ,
933985 ) ,
934986 ] ;
935987
@@ -1117,7 +1169,7 @@ fn test_type_of() {
11171169 ) ,
11181170 (
11191171 Value :: TimestampTz ( TimestampTz {
1120- offset: 8 ,
1172+ offset: 8 * 3600 ,
11211173 value: 190390000000 ,
11221174 } ) ,
11231175 "TIMESTAMP_TZ" ,
0 commit comments