MCPcopy Index your code
hub / github.com/upper/db / PlaceholderValue

Method PlaceholderValue

internal/sqlbuilder/template.go:21–42  ·  view source on GitHub ↗
(in interface{})

Source from the content-addressed store, hash-verified

19}
20
21func (tu *templateWithUtils) PlaceholderValue(in interface{}) (exql.Fragment, []interface{}) {
22 switch t := in.(type) {
23 case *adapter.RawExpr:
24 return &exql.Raw{Value: t.Raw()}, t.Arguments()
25 case *adapter.FuncExpr:
26 fnName := t.Name()
27 fnArgs := []interface{}{}
28 args, _ := toInterfaceArguments(t.Arguments())
29 fragments := []string{}
30 for i := range args {
31 frag, args := tu.PlaceholderValue(args[i])
32 fragment, err := frag.Compile(tu.Template)
33 if err == nil {
34 fragments = append(fragments, fragment)
35 fnArgs = append(fnArgs, args...)
36 }
37 }
38 return &exql.Raw{Value: fnName + `(` + strings.Join(fragments, `, `) + `)`}, fnArgs
39 default:
40 return sqlPlaceholder, []interface{}{in}
41 }
42}
43
44// toWhereWithArguments converts the given parameters into a exql.Where value.
45func (tu *templateWithUtils) toWhereWithArguments(term interface{}) (where exql.Where, args []interface{}) {

Callers 1

SetMethod · 0.80

Calls 6

toInterfaceArgumentsFunction · 0.85
RawMethod · 0.80
ArgumentsMethod · 0.65
NameMethod · 0.65
CompileMethod · 0.65
JoinMethod · 0.65

Tested by

no test coverage detected