Refactoring

This commit is contained in:
Billy Chan 2021-10-27 10:58:38 +08:00
parent ded28be2c0
commit fac528a369
No known key found for this signature in database
GPG Key ID: A2D690CAC7DF3CC7
3 changed files with 10 additions and 16 deletions

View File

@ -125,7 +125,6 @@ where
let av = am.take(col); let av = am.take(col);
let av_has_val = av.is_set() || av.is_unchanged(); let av_has_val = av.is_set() || av.is_unchanged();
let col_def = col.def(); let col_def = col.def();
let enum_name = col_def.get_column_type().get_enum_name();
if columns_empty { if columns_empty {
self.columns.push(av_has_val); self.columns.push(av_has_val);
@ -135,10 +134,9 @@ where
if av_has_val { if av_has_val {
columns.push(col); columns.push(col);
let val = Expr::val(av.into_value().unwrap()); let val = Expr::val(av.into_value().unwrap());
let expr = if let Some(enum_name) = enum_name { let expr = match col_def.get_column_type().get_enum_name() {
val.as_enum(Alias::new(enum_name)) Some(enum_name) => val.as_enum(Alias::new(enum_name)),
} else { None => val.into(),
val.into()
}; };
values.push(expr); values.push(expr);
} }

View File

@ -119,12 +119,10 @@ where
E::Column::iter() E::Column::iter()
.map(|col| { .map(|col| {
let col_def = col.def(); let col_def = col.def();
let enum_name = col_def.get_column_type().get_enum_name(); let expr = Expr::tbl(table.clone(), col);
let col_expr = Expr::tbl(table.clone(), col); match col_def.get_column_type().get_enum_name() {
if enum_name.is_some() { Some(_) => expr.as_enum(text_type.clone()),
col_expr.as_enum(text_type.clone()) None => expr.into(),
} else {
col_expr.into()
} }
}) })
.collect() .collect()

View File

@ -105,14 +105,12 @@ where
continue; continue;
} }
let col_def = col.def(); let col_def = col.def();
let enum_name = col_def.get_column_type().get_enum_name();
let av = self.model.get(col); let av = self.model.get(col);
if av.is_set() { if av.is_set() {
let val = Expr::val(av.into_value().unwrap()); let val = Expr::val(av.into_value().unwrap());
let expr = if let Some(enum_name) = enum_name { let expr = match col_def.get_column_type().get_enum_name() {
val.as_enum(Alias::new(enum_name)) Some(enum_name) => val.as_enum(Alias::new(enum_name)),
} else { None => val.into(),
val.into()
}; };
self.query.value_expr(col, expr); self.query.value_expr(col, expr);
} }