Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
a59ea55
[lanceadd]Solve the bug that the ORM uses forced cache invalidation, …
LanceAdd Jul 15, 2025
eef7b4f
[lanceadd]Reduce unnecessary caching
LanceAdd Jul 16, 2025
721fb60
Merge branch 'master' into fix/gdb-force-cache-invalid
houseme Sep 1, 2025
7b7404d
Merge branch 'gogf:master' into fix/gdb-force-cache-invalid
LanceAdd Oct 17, 2025
306ded3
Merge branch 'master' into fix/gdb-force-cache-invalid
LanceAdd Oct 21, 2025
a70d573
Merge branch 'gogf:master' into fix/gdb-force-cache-invalid
LanceAdd Dec 4, 2025
ac87885
Merge branch 'gogf:master' into fix/gdb-force-cache-invalid
LanceAdd Dec 5, 2025
de8c0fe
Update database/gdb/gdb_model_cache.go
LanceAdd Dec 12, 2025
d32f6ec
fix(gdb): 修复模型缓存查询结果判断逻辑
LanceAdd Dec 12, 2025
e5864aa
fix(gdb): 优化模型缓存查询结果判断逻辑
LanceAdd Dec 12, 2025
fba5dc4
Merge branch 'gogf:master' into fix/gdb-force-cache-invalid
LanceAdd Dec 12, 2025
55b07ad
fix(mariadb): 更新测试断言逻辑
LanceAdd Dec 12, 2025
288967f
fix(gdb): 移除了查询结果为nil时赋值空Result的逻辑
LanceAdd Dec 17, 2025
a086cdf
Merge branch 'master' into fix/gdb-force-cache-invalid
LanceAdd Dec 17, 2025
7d4759c
feat(database): 优化查询缓存逻辑以防止缓存穿透
LanceAdd Dec 17, 2025
c9e1aa1
fix(gdb): 优化缓存空结果处理逻辑
LanceAdd Dec 17, 2025
024d876
fix(gdb): 修复模型缓存中的选择类型判断逻辑
LanceAdd Dec 17, 2025
09b98d3
Merge branch 'master' into fix/gdb-force-cache-invalid
LanceAdd Dec 31, 2025
8e36d2a
Merge branch 'master' into fix/gdb-force-cache-invalid
houseme Jan 16, 2026
d2d93a5
test(mysql): 添加缓存穿透单元测试
LanceAdd Jan 19, 2026
8e07c1d
test(mysql): 调整缓存穿透测试中的缓存持续时间
LanceAdd Jan 20, 2026
ab3ce76
Merge branch 'master' into fix/gdb-force-cache-invalid
LanceAdd Jan 20, 2026
8951695
Merge branch 'master' into fix/gdb-force-cache-invalid
LanceAdd Jan 20, 2026
c877ad5
Merge branch 'master' into fix/gdb-force-cache-invalid
LanceAdd Jan 20, 2026
c94809f
Merge branch 'master' into fix/gdb-force-cache-invalid
LanceAdd Jan 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion contrib/drivers/mssql/mssql_z_unit_model_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ func Test_Model_All(t *testing.T) {
})
gtest.C(t, func(t *gtest.T) {
result, err := db.Model(table).Where("id<0").All()
t.Assert(result, nil)
t.Assert(len(result), 0)
t.AssertNil(err)
})
}
Expand Down
2 changes: 1 addition & 1 deletion contrib/drivers/mysql/mysql_z_unit_model_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -575,7 +575,7 @@ func Test_Model_All(t *testing.T) {
})
gtest.C(t, func(t *gtest.T) {
result, err := db.Model(table).Where("id<0").All()
t.Assert(result, nil)
t.Assert(len(result), 0)
t.AssertNil(err)
})
}
Expand Down
2 changes: 1 addition & 1 deletion contrib/drivers/oracle/oracle_z_unit_model_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ func Test_Model_All(t *testing.T) {
})
gtest.C(t, func(t *gtest.T) {
result, err := db.Model(table).Where("id<0").All()
t.Assert(result, nil)
t.Assert(len(result), 0)
t.AssertNil(err)
})
}
Expand Down
2 changes: 1 addition & 1 deletion contrib/drivers/sqlite/sqlite_z_unit_model_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -612,7 +612,7 @@ func Test_Model_All(t *testing.T) {
})
gtest.C(t, func(t *gtest.T) {
result, err := db.Model(table).Where("id<0").All()
t.Assert(result, nil)
t.Assert(len(result), 0)
t.AssertNil(err)
})
}
Expand Down
2 changes: 1 addition & 1 deletion contrib/drivers/sqlitecgo/sqlitecgo_z_unit_model_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -572,7 +572,7 @@ func Test_Model_All(t *testing.T) {
})
gtest.C(t, func(t *gtest.T) {
result, err := db.Model(table).Where("id<0").All()
t.Assert(result, nil)
t.Assert(len(result), 0)
t.AssertNil(err)
})
}
Expand Down
11 changes: 10 additions & 1 deletion database/gdb/gdb_model_cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,18 @@ func (m *Model) saveSelectResultToCache(
if len(result) > 0 {
var core = m.db.GetCore()
switch selectType {
case SelectTypeValue, SelectTypeArray, SelectTypeCount:
case SelectTypeValue, SelectTypeArray:
if internalData := core.getInternalColumnFromCtx(ctx); internalData != nil {
if result[0][internalData.FirstResultColumn].IsEmpty() {
result = nil
}
}
case SelectTypeCount:
if internalData := core.getInternalColumnFromCtx(ctx); internalData != nil {
if !m.cacheOption.Force && result[0][internalData.FirstResultColumn].IsEmpty() {
result = nil
}
}
default:
}
}
Expand All @@ -127,6 +133,9 @@ func (m *Model) saveSelectResultToCache(
result = nil
}
}
if !m.cacheOption.Force && result == nil {
return
}
var (
core = m.db.GetCore()
cacheItem = &selectCacheItem{
Expand Down
4 changes: 3 additions & 1 deletion database/gdb/gdb_model_select.go
Original file line number Diff line number Diff line change
Expand Up @@ -692,7 +692,9 @@ func (m *Model) doGetAllBySql(
if result, err = in.Next(ctx); err != nil {
return
}

if result == nil {
result = Result{}
}
err = m.saveSelectResultToCache(ctx, selectType, result, sql, args...)
return
}
Expand Down
Loading