From 47e2486ead40733ffcb18e03f65d648480c5f179 Mon Sep 17 00:00:00 2001 From: Billy Chan Date: Fri, 5 Nov 2021 16:25:55 +0800 Subject: [PATCH] Refactoring --- src/entity/column.rs | 4 +++- src/query/insert.rs | 4 +++- src/query/select.rs | 4 +++- src/query/update.rs | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/entity/column.rs b/src/entity/column.rs index fdb7d486..d5234b31 100644 --- a/src/entity/column.rs +++ b/src/entity/column.rs @@ -86,7 +86,9 @@ macro_rules! bind_oper_with_enum_casting { V: Into, { let val = Expr::val(v); - let expr = match self.def().get_column_type().get_enum_name() { + let col_def = self.def(); + let col_type = col_def.get_column_type(); + let expr = match col_type.get_enum_name() { Some(enum_name) => val.as_enum(Alias::new(enum_name)), None => val.into(), }; diff --git a/src/query/insert.rs b/src/query/insert.rs index 9d4d6ce5..7cafc44c 100644 --- a/src/query/insert.rs +++ b/src/query/insert.rs @@ -134,7 +134,9 @@ where if av_has_val { columns.push(col); let val = Expr::val(av.into_value().unwrap()); - let expr = match col.def().get_column_type().get_enum_name() { + let col_def = col.def(); + let col_type = col_def.get_column_type(); + let expr = match col_type.get_enum_name() { Some(enum_name) => val.as_enum(Alias::new(enum_name)), None => val.into(), }; diff --git a/src/query/select.rs b/src/query/select.rs index 06158be0..3c982948 100644 --- a/src/query/select.rs +++ b/src/query/select.rs @@ -124,7 +124,9 @@ where E::Column::iter() .map(|col| { let expr = Expr::tbl(table.clone(), col); - match col.def().get_column_type().get_enum_name() { + let col_def = col.def(); + let col_type = col_def.get_column_type(); + match col_type.get_enum_name() { Some(_) => expr.as_enum(text_type.clone()), None => expr.into(), } diff --git a/src/query/update.rs b/src/query/update.rs index d1b6b997..f12d3b95 100644 --- a/src/query/update.rs +++ b/src/query/update.rs @@ -110,7 +110,9 @@ where let av = self.model.get(col); if av.is_set() { let val = Expr::val(av.into_value().unwrap()); - let expr = match col.def().get_column_type().get_enum_name() { + let col_def = col.def(); + let col_type = col_def.get_column_type(); + let expr = match col_type.get_enum_name() { Some(enum_name) => val.as_enum(Alias::new(enum_name)), None => val.into(), };