Skip to content

Commit 0ab42d6

Browse files
committed
chore(query): Vu8 to string
1 parent 7759449 commit 0ab42d6

File tree

10 files changed

+31
-54
lines changed

10 files changed

+31
-54
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/meta/types/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ doctest = false
1111
test = false
1212

1313
[dependencies]
14-
common-datavalues = { path = "../../query/datavalues" }
1514
common-exception = { path = "../../common/exception" }
1615
common-storage = { path = "../../common/storage" }
1716

1817
openraft = { git = "https://github.com/datafuselabs/openraft", tag = "v0.7.2" }
1918
sled = { git = "https://github.com/datafuse-extras/sled", tag = "v0.34.7-datafuse.1", default-features = false }
2019

2120
anyerror = "=0.1.7"
21+
chrono = "0.4.20"
2222
derive_more = "0.99.17"
2323
enumflags2 = { version = "0.7.5", features = ["serde"] }
2424
hex = "0.4.3"

src/meta/types/src/user_setting.rs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ pub struct UserSetting {
3030
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq)]
3131
pub enum UserSettingValue {
3232
UInt64(u64),
33-
String(Vec<u8>),
33+
String(String),
3434
}
3535

3636
impl UserSettingValue {
@@ -44,7 +44,7 @@ impl UserSettingValue {
4444
}
4545
}
4646

47-
pub fn as_string(&self) -> Result<Vec<u8>> {
47+
pub fn as_string(&self) -> Result<String> {
4848
match self {
4949
UserSettingValue::String(v) => Ok(v.to_owned()),
5050
other => Result::Err(ErrorCode::BadDataValueType(format!(
@@ -59,15 +59,7 @@ impl fmt::Display for UserSettingValue {
5959
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6060
match self {
6161
UserSettingValue::UInt64(v) => write!(f, "{}", v),
62-
UserSettingValue::String(v) => match std::str::from_utf8(v) {
63-
Ok(v) => write!(f, "{}", v),
64-
Err(_e) => {
65-
for c in v {
66-
write!(f, "{:02x}", c)?;
67-
}
68-
Ok(())
69-
}
70-
},
62+
UserSettingValue::String(v) => write!(f, "{}", v),
7163
}
7264
}
7365
}

src/meta/types/src/user_stage.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
use std::fmt;
1616
use std::str::FromStr;
1717

18-
use common_datavalues::chrono::DateTime;
19-
use common_datavalues::chrono::Utc;
18+
use chrono::DateTime;
19+
use chrono::Utc;
2020
use common_storage::StorageParams;
2121

2222
use crate::UserIdentity;

src/query/datavalues/tests/it/types/viewer.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,3 @@ fn test_constant_viewer() -> Result<()> {
6868
}
6969
Ok(())
7070
}
71-
72-
#[test]
73-
fn test_json() {
74-
let value = DataValue::Int64(53);
75-
let ss = serde_json::to_vec(&value).unwrap();
76-
println!("{:?}", ss);
77-
println!("{:?}", unsafe { std::str::from_utf8_unchecked(&ss) });
78-
}

src/query/service/src/context_function.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ impl ContextFunction {
5353
ctx.get_connection_id().into_bytes(),
5454
))],
5555
"timezone" => vec![Expression::create_literal(DataValue::String(
56-
ctx.get_settings().get_timezone()?,
56+
ctx.get_settings().get_timezone()?.into_bytes(),
5757
))],
5858
_ => vec![],
5959
})

src/query/service/src/sessions/query_ctx.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -351,9 +351,7 @@ impl TableContext for QueryContext {
351351
swaped_precommit_blocks
352352
}
353353
fn try_get_function_context(&self) -> Result<FunctionContext> {
354-
let tz = String::from_utf8(self.get_settings().get_timezone()?).map_err(|_| {
355-
ErrorCode::LogicalError("Timezone has been checked and should be valid.")
356-
})?;
354+
let tz = self.get_settings().get_timezone()?;
357355
let tz = tz.parse::<Tz>().map_err(|_| {
358356
ErrorCode::InvalidTimezone("Timezone has been checked and should be valid")
359357
})?;

src/query/service/src/sessions/session.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -137,22 +137,19 @@ impl Session {
137137
pub fn get_format_settings(&self) -> Result<FormatSettings> {
138138
let settings = &self.session_ctx.get_settings();
139139
let mut format = FormatSettings {
140-
record_delimiter: settings.get_record_delimiter()?,
141-
field_delimiter: settings.get_field_delimiter()?,
140+
record_delimiter: settings.get_record_delimiter()?.into_bytes(),
141+
field_delimiter: settings.get_field_delimiter()?.into_bytes(),
142142
empty_as_default: settings.get_empty_as_default()? > 0,
143143
skip_header: settings.get_skip_header()?,
144144
..Default::default()
145145
};
146146

147-
let tz = String::from_utf8(settings.get_timezone()?).map_err(|_| {
148-
ErrorCode::LogicalError("Timezone has been checked and should be valid.")
149-
})?;
147+
let tz = settings.get_timezone()?;
150148
format.timezone = tz.parse::<Tz>().map_err(|_| {
151149
ErrorCode::InvalidTimezone("Timezone has been checked and should be valid")
152150
})?;
153151

154-
let compress = String::from_utf8(settings.get_compression()?)
155-
.map_err(|_| ErrorCode::UnknownCompressionType("Compress type must be valid utf-8"))?;
152+
let compress = settings.get_compression()?;
156153
format.compression = compress.parse()?;
157154
format.ident_case_sensitive = settings.get_unquoted_ident_case_sensitive()?;
158155
Ok(format)

src/query/service/src/sql/planner/semantic/type_check.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1425,8 +1425,6 @@ impl<'a> TypeChecker<'a> {
14251425
),
14261426
("timezone", &[]) => {
14271427
let tz = self.ctx.get_settings().get_timezone().unwrap();
1428-
// No need to handle err, the tz in settings is valid.
1429-
let tz = String::from_utf8(tz).unwrap();
14301428
Some(
14311429
self.resolve(
14321430
&Expr::Literal {

src/query/settings/src/lib.rs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ impl Settings {
8787

8888
for global_setting in global_settings {
8989
let name = global_setting.name;
90-
let val = String::from_utf8(global_setting.value.as_string()?).unwrap();
90+
let val = global_setting.value.as_string()?;
9191
settings.set_settings(name, val, true)?;
9292
}
9393
settings
@@ -170,20 +170,20 @@ impl Settings {
170170
possible_values: None,
171171
},
172172
SettingValue {
173-
default_value: UserSettingValue::String("\n".as_bytes().to_vec()),
173+
default_value: UserSettingValue::String("\n".to_owned()),
174174
user_setting: UserSetting::create(
175175
"record_delimiter",
176-
UserSettingValue::String("\n".as_bytes().to_vec()),
176+
UserSettingValue::String("\n".to_owned()),
177177
),
178178
level: ScopeLevel::Session,
179179
desc: "Format record_delimiter, default value: \"\\n\"",
180180
possible_values: None,
181181
},
182182
SettingValue {
183-
default_value: UserSettingValue::String(",".as_bytes().to_vec()),
183+
default_value: UserSettingValue::String(",".to_owned()),
184184
user_setting: UserSetting::create(
185185
"field_delimiter",
186-
UserSettingValue::String(",".as_bytes().to_vec()),
186+
UserSettingValue::String(",".to_owned()),
187187
),
188188
level: ScopeLevel::Session,
189189
desc: "Format field delimiter, default value: ,",
@@ -204,20 +204,20 @@ impl Settings {
204204
possible_values: None,
205205
},
206206
SettingValue {
207-
default_value: UserSettingValue::String("None".as_bytes().to_vec()),
207+
default_value: UserSettingValue::String("None".to_owned()),
208208
user_setting: UserSetting::create(
209209
"compression",
210-
UserSettingValue::String("None".as_bytes().to_vec()),
210+
UserSettingValue::String("None".to_owned()),
211211
),
212212
level: ScopeLevel::Session,
213213
desc: "Format compression, default value: None",
214214
possible_values: None,
215215
},
216216
SettingValue {
217-
default_value: UserSettingValue::String("UTC".as_bytes().to_vec()),
217+
default_value: UserSettingValue::String("UTC".to_owned()),
218218
user_setting: UserSetting::create(
219219
"timezone",
220-
UserSettingValue::String("UTC".as_bytes().to_vec()),
220+
UserSettingValue::String("UTC".to_owned()),
221221
),
222222
level: ScopeLevel::Session,
223223
desc: "Timezone, default value: UTC,",
@@ -284,10 +284,10 @@ impl Settings {
284284
possible_values: None,
285285
},
286286
SettingValue {
287-
default_value: UserSettingValue::String("PostgreSQL".as_bytes().to_vec()),
287+
default_value: UserSettingValue::String("PostgreSQL".to_owned()),
288288
user_setting: UserSetting::create(
289289
"sql_dialect",
290-
UserSettingValue::String("PostgreSQL".as_bytes().to_vec()),
290+
UserSettingValue::String("PostgreSQL".to_owned()),
291291
),
292292
level: ScopeLevel::Session,
293293
desc: "SQL dialect, support \"PostgreSQL\" and \"MySQL\", default value: \"PostgreSQL\"",
@@ -378,19 +378,19 @@ impl Settings {
378378
self.try_get_u64(KEY)
379379
}
380380

381-
pub fn get_field_delimiter(&self) -> Result<Vec<u8>> {
381+
pub fn get_field_delimiter(&self) -> Result<String> {
382382
let key = "field_delimiter";
383383
self.check_and_get_setting_value(key)
384384
.and_then(|v| v.user_setting.value.as_string())
385385
}
386386

387-
pub fn get_record_delimiter(&self) -> Result<Vec<u8>> {
387+
pub fn get_record_delimiter(&self) -> Result<String> {
388388
let key = "record_delimiter";
389389
self.check_and_get_setting_value(key)
390390
.and_then(|v| v.user_setting.value.as_string())
391391
}
392392

393-
pub fn get_compression(&self) -> Result<Vec<u8>> {
393+
pub fn get_compression(&self) -> Result<String> {
394394
let key = "compression";
395395
self.check_and_get_setting_value(key)
396396
.and_then(|v| v.user_setting.value.as_string())
@@ -406,7 +406,7 @@ impl Settings {
406406
self.try_get_u64(key)
407407
}
408408

409-
pub fn get_timezone(&self) -> Result<Vec<u8>> {
409+
pub fn get_timezone(&self) -> Result<String> {
410410
let key = "timezone";
411411
self.check_and_get_setting_value(key)
412412
.and_then(|v| v.user_setting.value.as_string())
@@ -495,7 +495,7 @@ impl Settings {
495495
self.check_and_get_setting_value(key)
496496
.and_then(|v| v.user_setting.value.as_string())
497497
.map(|v| {
498-
if v == b"MySQL" {
498+
if v == "MySQL" {
499499
Dialect::MySQL
500500
} else {
501501
Dialect::PostgreSQL
@@ -558,7 +558,7 @@ impl Settings {
558558
Ok(())
559559
}
560560

561-
fn try_set_string(&self, key: &str, val: Vec<u8>, is_global: bool) -> Result<()> {
561+
fn try_set_string(&self, key: &str, val: String, is_global: bool) -> Result<()> {
562562
let mut settings = self.settings.write();
563563
let mut setting = settings
564564
.get_mut(key)
@@ -656,7 +656,7 @@ impl Settings {
656656
self.try_set_u64(&key, u64_val, is_global)?
657657
}
658658
UserSettingValue::String(_) => {
659-
self.try_set_string(&key, val.into_bytes(), is_global)?;
659+
self.try_set_string(&key, val, is_global)?;
660660
}
661661
}
662662
Ok(())

0 commit comments

Comments
 (0)