Skip to content

Commit bcfba54

Browse files
committed
add eagerLoading inside prepareClusterDBWithJoins and remove redundant code
1 parent 22b233e commit bcfba54

File tree

1 file changed

+10
-19
lines changed

1 file changed

+10
-19
lines changed

internal/common/db.go

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ func prepareClusterDB(db *gorm.DB, eagerLoading EagerLoadingState, includeDelete
411411
return db
412412
}
413413

414-
func prepareClusterDBWithJoins(db *gorm.DB, includeDeleted DeleteRecordsState) *gorm.DB {
414+
func prepareClusterDBWithJoins(db *gorm.DB, eagerLoading EagerLoadingState, includeDeleted DeleteRecordsState) *gorm.DB {
415415
if includeDeleted {
416416
db = db.Unscoped()
417417
}
@@ -423,6 +423,12 @@ func prepareClusterDBWithJoins(db *gorm.DB, includeDeleted DeleteRecordsState) *
423423
return db
424424
}}
425425

426+
if eagerLoading {
427+
for _, tableName := range ClusterSubTables {
428+
db = LoadTableFromDB(db, tableName, conditions...)
429+
}
430+
}
431+
426432
networkTables := map[string]bool{
427433
ClusterNetworksTable: true,
428434
ServiceNetworksTable: true,
@@ -438,36 +444,24 @@ func prepareClusterDBWithJoins(db *gorm.DB, includeDeleted DeleteRecordsState) *
438444

439445
db = db.Preload(ClusterNetworksTable, func(db *gorm.DB) *gorm.DB {
440446
baseDB := db
441-
if includeDeleted {
442-
baseDB = db.Unscoped()
443-
}
444447
return baseDB.Joins("INNER JOIN clusters ON cluster_networks.cluster_id = clusters.id").
445448
Where("clusters.deleted_at IS NULL")
446449
})
447450

448451
db = db.Preload(ServiceNetworksTable, func(db *gorm.DB) *gorm.DB {
449452
baseDB := db
450-
if includeDeleted {
451-
baseDB = db.Unscoped()
452-
}
453453
return baseDB.Joins("INNER JOIN clusters ON service_networks.cluster_id = clusters.id").
454454
Where("clusters.deleted_at IS NULL")
455455
})
456456

457457
db = db.Preload(MachineNetworksTable, func(db *gorm.DB) *gorm.DB {
458458
baseDB := db
459-
if includeDeleted {
460-
baseDB = db.Unscoped()
461-
}
462459
return baseDB.Joins("INNER JOIN clusters ON machine_networks.cluster_id = clusters.id").
463460
Where("clusters.deleted_at IS NULL")
464461
})
465462

466463
db = db.Preload(HostsTable, func(db *gorm.DB) *gorm.DB {
467464
baseDB := db
468-
if includeDeleted {
469-
baseDB = db.Unscoped()
470-
}
471465
return baseDB.Joins("INNER JOIN clusters ON hosts.cluster_id = clusters.id").
472466
Where("clusters.deleted_at IS NULL AND hosts.deleted_at IS NULL")
473467
})
@@ -504,12 +498,9 @@ func GetClusterFromDBWhereForUpdate(db *gorm.DB, eagerLoading EagerLoadingState,
504498
func GetClustersFromDBWhere(db *gorm.DB, eagerLoading EagerLoadingState, includeDeleted DeleteRecordsState, where ...interface{}) ([]*Cluster, error) {
505499
var clusters []*Cluster
506500

507-
if eagerLoading {
508-
// Use optimized loading with direct JOIN queries for network tables
509-
db = prepareClusterDBWithJoins(db, includeDeleted)
510-
} else {
511-
db = prepareClusterDB(db, eagerLoading, includeDeleted)
512-
}
501+
// Use optimized loading with direct JOIN queries for network tables
502+
db = prepareClusterDBWithJoins(db, eagerLoading, includeDeleted)
503+
513504
err := db.Find(&clusters, where...).Error
514505
if err != nil {
515506
return nil, err

0 commit comments

Comments
 (0)