From 19fcd1a0341797f1d400aea82ce980be3b91fa3c Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 13 Jul 2023 23:34:13 +0800 Subject: [PATCH 1/3] :recycle: Refactor av data structure --- kernel/av/table.go | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/kernel/av/table.go b/kernel/av/table.go index 6b760f683..73cd62294 100644 --- a/kernel/av/table.go +++ b/kernel/av/table.go @@ -207,29 +207,34 @@ func (value *Value) CompareOperator(other *Value, operator FilterOperator) bool if nil != value.MSelect && nil != other.MSelect && 0 < len(value.MSelect) && 0 < len(other.MSelect) { switch operator { case FilterOperatorIsEqual: - return value.MSelect[0].Content == other.MSelect[0].Content + contains := false + for _, v := range value.MSelect { + for _, v2 := range other.MSelect { + if v.Content == v2.Content { + contains = true + break + } + } + } + return contains case FilterOperatorIsNotEqual: - return value.MSelect[0].Content != other.MSelect[0].Content - case FilterOperatorContains: + contains := false for _, v := range value.MSelect { - if v.Content == other.MSelect[0].Content { - return true + for _, v2 := range other.MSelect { + if v.Content == v2.Content { + contains = true + break + } } } - case FilterOperatorDoesNotContain: - for _, v := range value.MSelect { - if v.Content == other.MSelect[0].Content { - return false - } - } - return true + return !contains case FilterOperatorIsEmpty: return 0 == len(value.MSelect) case FilterOperatorIsNotEmpty: return 0 != len(value.MSelect) } } - return false + return true } // Table 描述了表格实例的结构。 From 1bc9a317a532514fd8f5003dfc65f15d7fee1774 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 13 Jul 2023 23:59:39 +0800 Subject: [PATCH 2/3] :recycle: Refactor av data structure --- kernel/av/table.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/av/table.go b/kernel/av/table.go index 73cd62294..77669e66a 100644 --- a/kernel/av/table.go +++ b/kernel/av/table.go @@ -206,7 +206,7 @@ func (value *Value) CompareOperator(other *Value, operator FilterOperator) bool if nil != value.MSelect && nil != other.MSelect && 0 < len(value.MSelect) && 0 < len(other.MSelect) { switch operator { - case FilterOperatorIsEqual: + case FilterOperatorIsEqual, FilterOperatorContains: contains := false for _, v := range value.MSelect { for _, v2 := range other.MSelect { @@ -217,7 +217,7 @@ func (value *Value) CompareOperator(other *Value, operator FilterOperator) bool } } return contains - case FilterOperatorIsNotEqual: + case FilterOperatorIsNotEqual, FilterOperatorDoesNotContain: contains := false for _, v := range value.MSelect { for _, v2 := range other.MSelect { @@ -229,9 +229,9 @@ func (value *Value) CompareOperator(other *Value, operator FilterOperator) bool } return !contains case FilterOperatorIsEmpty: - return 0 == len(value.MSelect) + return 0 == len(value.MSelect) || 1 == len(value.MSelect) && "" == value.MSelect[0].Content case FilterOperatorIsNotEmpty: - return 0 != len(value.MSelect) + return 0 != len(value.MSelect) && !(1 == len(value.MSelect) && "" == value.MSelect[0].Content) } } return true From 43c97d42cb0b557e1632c47c82342f3f55badc4a Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 14 Jul 2023 00:14:40 +0800 Subject: [PATCH 3/3] :recycle: Refactor av data structure --- kernel/model/attribute_view.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 30bb3df2c..1a6fe83ab 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -156,7 +156,7 @@ func (tx *Transaction) doSetAttrViewName(operation *Operation) (ret *TxErr) { } func setAttributeViewName(operation *Operation) (err error) { - attrView, err := av.ParseAttributeView(operation.AvID) + attrView, err := av.ParseAttributeView(operation.ID) if nil != err { return }