mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2025-12-27 00:19:58 +00:00
fix: allow case-insensitive timezone settings (#7207)
This commit is contained in:
13
Cargo.lock
generated
13
Cargo.lock
generated
@@ -1630,6 +1630,7 @@ dependencies = [
|
|||||||
"chrono",
|
"chrono",
|
||||||
"chrono-tz-build",
|
"chrono-tz-build",
|
||||||
"phf 0.11.3",
|
"phf 0.11.3",
|
||||||
|
"uncased",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1640,6 +1641,8 @@ checksum = "8f10f8c9340e31fc120ff885fcdb54a0b48e474bbd77cab557f0c30a3e569402"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"parse-zoneinfo",
|
"parse-zoneinfo",
|
||||||
"phf_codegen 0.11.3",
|
"phf_codegen 0.11.3",
|
||||||
|
"phf_shared 0.11.3",
|
||||||
|
"uncased",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -9273,6 +9276,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
|
checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"siphasher",
|
"siphasher",
|
||||||
|
"uncased",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -13972,6 +13976,15 @@ dependencies = [
|
|||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "uncased"
|
||||||
|
version = "0.9.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697"
|
||||||
|
dependencies = [
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unescaper"
|
name = "unescaper"
|
||||||
version = "0.1.6"
|
version = "0.1.6"
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ bitflags = "2.4.1"
|
|||||||
bytemuck = "1.12"
|
bytemuck = "1.12"
|
||||||
bytes = { version = "1.7", features = ["serde"] }
|
bytes = { version = "1.7", features = ["serde"] }
|
||||||
chrono = { version = "0.4", features = ["serde"] }
|
chrono = { version = "0.4", features = ["serde"] }
|
||||||
chrono-tz = "0.10.1"
|
chrono-tz = { version = "0.10.1", features = ["case-insensitive"] }
|
||||||
clap = { version = "4.4", features = ["derive"] }
|
clap = { version = "4.4", features = ["derive"] }
|
||||||
config = "0.13.0"
|
config = "0.13.0"
|
||||||
const_format = "0.2"
|
const_format = "0.2"
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
use std::fmt::Display;
|
use std::fmt::Display;
|
||||||
use std::str::FromStr;
|
|
||||||
|
|
||||||
use chrono::{FixedOffset, TimeZone};
|
use chrono::{FixedOffset, TimeZone};
|
||||||
use chrono_tz::{OffsetComponents, Tz};
|
use chrono_tz::{OffsetComponents, Tz};
|
||||||
@@ -102,7 +101,7 @@ impl Timezone {
|
|||||||
.parse::<u32>()
|
.parse::<u32>()
|
||||||
.context(ParseOffsetStrSnafu { raw: tz_string })?;
|
.context(ParseOffsetStrSnafu { raw: tz_string })?;
|
||||||
Self::hours_mins_opt(hrs, mins)
|
Self::hours_mins_opt(hrs, mins)
|
||||||
} else if let Ok(tz) = Tz::from_str(tz_string) {
|
} else if let Ok(tz) = Tz::from_str_insensitive(tz_string) {
|
||||||
Ok(Self::Named(tz))
|
Ok(Self::Named(tz))
|
||||||
} else {
|
} else {
|
||||||
ParseTimezoneNameSnafu { raw: tz_string }.fail()
|
ParseTimezoneNameSnafu { raw: tz_string }.fail()
|
||||||
@@ -203,6 +202,10 @@ mod tests {
|
|||||||
Timezone::Named(Tz::Asia__Shanghai),
|
Timezone::Named(Tz::Asia__Shanghai),
|
||||||
Timezone::from_tz_string("Asia/Shanghai").unwrap()
|
Timezone::from_tz_string("Asia/Shanghai").unwrap()
|
||||||
);
|
);
|
||||||
|
assert_eq!(
|
||||||
|
Timezone::Named(Tz::Asia__Shanghai),
|
||||||
|
Timezone::from_tz_string("Asia/ShangHai").unwrap()
|
||||||
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
Timezone::Named(Tz::UTC),
|
Timezone::Named(Tz::UTC),
|
||||||
Timezone::from_tz_string("UTC").unwrap()
|
Timezone::from_tz_string("UTC").unwrap()
|
||||||
|
|||||||
Reference in New Issue
Block a user