Remove the `NoPrune` method

This commit is contained in:
Diego Sogari 2023-04-01 14:14:53 -03:00
parent 4f8ee6f919
commit 17358d66b6
No known key found for this signature in database
GPG Key ID: 03A9A337B873A022
2 changed files with 5 additions and 12 deletions

View File

@ -13,7 +13,6 @@ type Preload struct {
path []string
cols []string
cond builder.Cond
noPrune bool
}
// NewPreload creates a new preload with the specified path
@ -36,12 +35,6 @@ func (p *Preload) Where(cond builder.Cond) *Preload {
return p
}
// NoPrune sets a flag to avoid pruning empty associations
func (p *Preload) NoPrune() *Preload {
p.noPrune = true
return p
}
// PreloadTreeNode is a tree node for the association preloads
type PreloadTreeNode struct {
preload *Preload
@ -150,7 +143,7 @@ func (node *PreloadTreeNode) compute(session *Session, ownMap, pruneMap reflect.
}
var refPruneMap reflect.Value
if len(node.children) > 0 && !(node.preload != nil && (len(node.preload.cols) > 0 || node.preload.noPrune)) {
if len(node.children) > 0 && !(node.preload != nil && len(node.preload.cols) > 0) {
refPruneMap = reflect.MakeMap(reflect.MapOf(refMap.Type().Key(), reflect.TypeOf(true)))
refIter := refMap.MapRange()
for refIter.Next() {

View File

@ -62,7 +62,7 @@ insert into employee_indication values (1,2), (1,3), (2,3), (2,4), (2,5), (3,5),
var employee Employee
_, err = engine.Preloads(
engine.Preload("Indications.Buddy").Cols("name"),
engine.Preload("Indications").NoPrune(),
engine.Preload("Indications").Cols("id"),
).Cols("name").Where(builder.Eq{"id": 2}).Get(&employee)
require.NoError(t, err)