Skip to content

Commit 272f772

Browse files
Update comparison function to first check the txn cache
1 parent c5de8a7 commit 272f772

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

worker/task.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,7 +1396,7 @@ func (qs *queryState) handleCompareFunction(ctx context.Context, arg funcArgs) e
13961396
switch lang {
13971397
case "":
13981398
if isList {
1399-
pl, err := posting.GetNoStore(x.DataKey(attr, uid), arg.q.ReadTs)
1399+
pl, err := qs.cache.Get(x.DataKey(attr, uid))
14001400
if err != nil {
14011401
filterErr = err
14021402
return false
@@ -1418,7 +1418,7 @@ func (qs *queryState) handleCompareFunction(ctx context.Context, arg funcArgs) e
14181418
return false
14191419
}
14201420

1421-
pl, err := posting.GetNoStore(x.DataKey(attr, uid), arg.q.ReadTs)
1421+
pl, err := qs.cache.Get(x.DataKey(attr, uid))
14221422
if err != nil {
14231423
filterErr = err
14241424
return false
@@ -1433,7 +1433,7 @@ func (qs *queryState) handleCompareFunction(ctx context.Context, arg funcArgs) e
14331433
dst, err := types.Convert(sv, typ)
14341434
return err == nil && compareFunc(dst)
14351435
case ".":
1436-
pl, err := posting.GetNoStore(x.DataKey(attr, uid), arg.q.ReadTs)
1436+
pl, err := qs.cache.Get(x.DataKey(attr, uid))
14371437
if err != nil {
14381438
filterErr = err
14391439
return false
@@ -1451,17 +1451,26 @@ func (qs *queryState) handleCompareFunction(ctx context.Context, arg funcArgs) e
14511451
}
14521452
return false
14531453
default:
1454-
sv, err := fetchValue(uid, attr, arg.q.Langs, typ, arg.q.ReadTs)
1454+
pl, err := qs.cache.Get(x.DataKey(attr, uid))
1455+
if err != nil {
1456+
filterErr = err
1457+
return false
1458+
}
1459+
src, err := pl.ValueFor(arg.q.ReadTs, arg.q.Langs)
14551460
if err != nil {
14561461
if err != posting.ErrNoValue {
14571462
filterErr = err
14581463
}
14591464
return false
14601465
}
1461-
if sv.Value == nil {
1466+
dst, err := types.Convert(src, typ)
1467+
if err != nil {
1468+
return false
1469+
}
1470+
if dst.Value == nil {
14621471
return false
14631472
}
1464-
return compareFunc(sv)
1473+
return compareFunc(dst)
14651474
}
14661475
})
14671476
if filterErr != nil {

0 commit comments

Comments
 (0)