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

Function substituteVariables

dql/parser.go:438–531  ·  view source on GitHub ↗
(gq *GraphQuery, vmap varMap)

Source from the content-addressed store, hash-verified

436}
437
438func substituteVariables(gq *GraphQuery, vmap varMap) error {
439 for k, v := range gq.Args {
440 // v won't be empty as its handled in parseDqlVariables.
441 val := gq.Args[k]
442 if err := substituteVar(v, &val, vmap); err != nil {
443 return err
444 }
445 gq.Args[k] = val
446 }
447
448 idVal, ok := gq.Args["id"]
449 if ok && len(gq.UID) == 0 {
450 uids, err := parseID(idVal)
451 if err != nil {
452 return err
453 }
454 gq.UID = append(gq.UID, uids...)
455 // Deleting it here because we don't need to fill it in query.go.
456 delete(gq.Args, "id")
457 }
458
459 if gq.MathExp != nil {
460 if err := substituteVarInMath(gq, vmap); err != nil {
461 return err
462 }
463 }
464
465 if gq.Func != nil {
466 if err := substituteVar(gq.Func.Attr, &gq.Func.Attr, vmap); err != nil {
467 return err
468 }
469
470 for idx, v := range gq.Func.Args {
471 if !v.IsDQLVar {
472 continue
473 }
474 if err := substituteVar(v.Value, &gq.Func.Args[idx].Value, vmap); err != nil {
475 return err
476 }
477 if gq.Func.Name == "regexp" {
478 if err := regExpVariableFilter(gq.Func, idx); err != nil {
479 return err
480 }
481 }
482 }
483 }
484
485 for _, child := range gq.Children {
486 if err := substituteVariables(child, vmap); err != nil {
487 return err
488 }
489 }
490 if gq.Filter != nil {
491 if err := substituteVariablesFilter(gq.Filter, vmap); err != nil {
492 return err
493 }
494 }
495 if gq.FacetsFilter != nil {

Callers 1

ParseWithNeedVarsFunction · 0.85

Calls 6

substituteVarFunction · 0.85
parseIDFunction · 0.85
substituteVarInMathFunction · 0.85
regExpVariableFilterFunction · 0.85
ErrorfMethod · 0.45

Tested by

no test coverage detected