MCPcopy
hub / github.com/dgraph-io/dgraph / removePredsFromQuery

Function removePredsFromQuery

edgraph/access.go:1314–1356  ·  view source on GitHub ↗

removePredsFromQuery removes all the predicates in blockedPreds from all the queries in gqs.

(gqs []*dql.GraphQuery,
	blockedPreds map[string]struct{})

Source from the content-addressed store, hash-verified

1312// removePredsFromQuery removes all the predicates in blockedPreds
1313// from all the queries in gqs.
1314func removePredsFromQuery(gqs []*dql.GraphQuery,
1315 blockedPreds map[string]struct{}) []*dql.GraphQuery {
1316
1317 filteredGQs := gqs[:0]
1318L:
1319 for _, gq := range gqs {
1320 if gq.Func != nil && len(gq.Func.Attr) > 0 {
1321 if _, ok := blockedPreds[gq.Func.Attr]; ok {
1322 continue
1323 }
1324 }
1325 if len(gq.Attr) > 0 {
1326 if _, ok := blockedPreds[gq.Attr]; ok {
1327 continue
1328 }
1329 if gq.Attr == "val" {
1330 // TODO (Anurag): If val supports multiple variables, this would
1331 // need an upgrade
1332 for _, variable := range gq.NeedsVar {
1333 if _, ok := blockedPreds[variable.Name]; ok {
1334 continue L
1335 }
1336 }
1337 }
1338 }
1339
1340 order := gq.Order[:0]
1341 for _, ord := range gq.Order {
1342 if _, ok := blockedPreds[ord.Attr]; ok {
1343 continue
1344 }
1345 order = append(order, ord)
1346 }
1347
1348 gq.Order = order
1349 gq.Filter = removeFilters(gq.Filter, blockedPreds)
1350 gq.GroupbyAttrs = removeGroupBy(gq.GroupbyAttrs, blockedPreds)
1351 gq.Children = removePredsFromQuery(gq.Children, blockedPreds)
1352 filteredGQs = append(filteredGQs, gq)
1353 }
1354
1355 return filteredGQs
1356}
1357
1358func removeVarsFromQueryVars(gqs []*dql.Vars,
1359 blockedVars map[string]struct{}) []*dql.Vars {

Callers 1

authorizeQueryFunction · 0.85

Calls 2

removeFiltersFunction · 0.85
removeGroupByFunction · 0.85

Tested by

no test coverage detected