🐛 Database filtering does not work after change the field type https://github.com/siyuan-note/siyuan/issues/10519

This commit is contained in:
Daniel 2024-03-06 00:15:56 +08:00
parent 3207a5a8a1
commit 7b4db8722b
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -257,12 +257,12 @@ func (value *Value) Compare(other *Value) int {
}
func (value *Value) CompareOperator(filter *ViewFilter, attrView *AttributeView, rowID string) bool {
key, _ := attrView.GetKey(value.KeyID)
if nil == key {
return false
}
if nil != value.Rollup && KeyTypeRollup == value.Type && nil != filter.Value && KeyTypeRollup == filter.Value.Type {
key, _ := attrView.GetKey(value.KeyID)
if nil == key {
return false
}
if nil != value.Rollup && KeyTypeRollup == key.Type && nil != filter.Value && KeyTypeRollup == filter.Value.Type {
relKey, _ := attrView.GetKey(key.Rollup.RelationKeyID)
if nil == relKey {
return false
@ -284,24 +284,22 @@ func (value *Value) CompareOperator(filter *ViewFilter, attrView *AttributeView,
continue
}
if destVal.compareOperator(filter, key.Type) {
if destVal.compareOperator(filter) {
return true
}
}
return false
}
return value.compareOperator(filter, key.Type)
return value.compareOperator(filter)
}
func (value *Value) compareOperator(filter *ViewFilter, keyType KeyType) bool {
func (value *Value) compareOperator(filter *ViewFilter) bool {
if nil == filter || (nil == filter.Value && nil == filter.RelativeDate) {
return true
}
operator := filter.Operator
switch keyType {
switch value.Type {
case KeyTypeBlock:
if nil != value.Block && nil != filter.Value.Block {
switch operator {