From 751c1d6b45245843405c87d8b4b94e26c26b1ba8 Mon Sep 17 00:00:00 2001 From: Name <1911860538@qq.com> Date: Sun, 25 May 2025 09:27:21 +0800 Subject: [PATCH] perf(schema): avoid redundant strings.ToLower call (#7464) Co-authored-by: 1911860538 --- schema/field.go | 5 +++-- schema/relationship.go | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/schema/field.go b/schema/field.go index d1a633ce..a6ff1a72 100644 --- a/schema/field.go +++ b/schema/field.go @@ -318,9 +318,10 @@ func (schema *Schema) ParseField(fieldStruct reflect.StructField) *Field { } if val, ok := field.TagSettings["TYPE"]; ok { - switch DataType(strings.ToLower(val)) { + lowerVal := DataType(strings.ToLower(val)) + switch lowerVal { case Bool, Int, Uint, Float, String, Time, Bytes: - field.DataType = DataType(strings.ToLower(val)) + field.DataType = lowerVal default: field.DataType = DataType(val) } diff --git a/schema/relationship.go b/schema/relationship.go index c60ff6d9..f1ace924 100644 --- a/schema/relationship.go +++ b/schema/relationship.go @@ -763,8 +763,9 @@ func (rel *Relationship) ToQueryConditions(ctx context.Context, reflectValue ref } func copyableDataType(str DataType) bool { + lowerStr := strings.ToLower(string(str)) for _, s := range []string{"auto_increment", "primary key"} { - if strings.Contains(strings.ToLower(string(str)), s) { + if strings.Contains(lowerStr, s) { return false } }