🎨 Database date filter excludes empty values https://github.com/siyuan-note/siyuan/issues/11061

This commit is contained in:
Daniel 2024-04-17 11:29:46 +08:00
parent 312f125ab0
commit 928f478aab
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -88,7 +88,7 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, rowID st
return true
}
if nil != value.Rollup && KeyTypeRollup == value.Type && nil != filter && nil != filter.Value && KeyTypeRollup == filter.Value.Type &&
if nil != value.Rollup && KeyTypeRollup == value.Type && nil != filter.Value && KeyTypeRollup == filter.Value.Type &&
nil != filter.Value.Rollup && 0 < len(filter.Value.Rollup.Contents) {
// 单独处理汇总类型的比较
@ -134,7 +134,7 @@ func (value *Value) Filter(filter *ViewFilter, attrView *AttributeView, rowID st
return false
}
if nil != value.Relation && KeyTypeRelation == value.Type && 0 < len(value.Relation.Contents) && nil != filter && nil != filter.Value && KeyTypeRelation == filter.Value.Type &&
if nil != value.Relation && KeyTypeRelation == value.Type && 0 < len(value.Relation.Contents) && nil != filter.Value && KeyTypeRelation == filter.Value.Type &&
nil != filter.Value.Relation && 0 < len(filter.Value.Relation.BlockIDs) {
// 单独处理关联类型的比较
@ -240,6 +240,19 @@ func (value *Value) filter(other *Value, relativeDate, relativeDate2 *RelativeDa
}
case KeyTypeDate:
if nil != value.Date {
switch operator {
case FilterOperatorIsEmpty:
return !value.Date.IsNotEmpty
case FilterOperatorIsNotEmpty:
return value.Date.IsNotEmpty
}
if !value.Date.IsNotEmpty {
// 空值不进行比较,直接排除
// Database date filter excludes empty values https://github.com/siyuan-note/siyuan/issues/11061
return false
}
if nil != relativeDate {
// 使用相对时间比较