本文整理匯總了Golang中github.com/couchbase/query/expression.Formalizer.Copy方法的典型用法代碼示例。如果您正苦於以下問題:Golang Formalizer.Copy方法的具體用法?Golang Formalizer.Copy怎麽用?Golang Formalizer.Copy使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/couchbase/query/expression.Formalizer
的用法示例。
在下文中一共展示了Formalizer.Copy方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Formalize
/*
This method fully qualifies the identifiers for each term
in the result expression. It disallows duplicate alias and
exempts explicit aliases from being formalized.
*/
func (this *Projection) Formalize(in *expression.Formalizer) (f *expression.Formalizer, err error) {
// Disallow duplicate aliases
aliases := make(map[string]bool, len(this.terms))
for _, term := range this.terms {
if term.alias == "" {
continue
}
if aliases[term.alias] {
return nil, fmt.Errorf("Duplicate result alias %s.", term.alias)
}
aliases[term.alias] = true
}
err = this.MapExpressions(in)
if err != nil {
return
}
if len(aliases) > 0 {
f = in.Copy()
} else {
f = in
}
// Exempt explicit aliases from being formalized
for _, term := range this.terms {
if term.as != "" {
f.Allowed().SetField(term.as, term.as)
}
}
return
}
示例2: Formalize
/*
Qualify all identifiers for the parent expression. Checks is
a nest alias exists and if it is a duplicate alias.
*/
func (this *IndexNest) Formalize(parent *expression.Formalizer) (f *expression.Formalizer, err error) {
f, err = this.left.Formalize(parent)
if err != nil {
return
}
_, ok := f.Allowed.Field(this.keyFor)
if !ok {
err = errors.NewUnknownForError("NEST", this.keyFor, "plan.nest.unknown_for")
return nil, err
}
alias := this.Alias()
if alias == "" {
err = errors.NewNoTermNameError("NEST", "plan.nest.requires_name_or_alias")
return nil, err
}
_, ok = f.Allowed.Field(alias)
if ok {
err = errors.NewDuplicateAliasError("NEST", alias, "plan.nest.duplicate_alias")
return nil, err
}
f.Allowed.SetField(alias, alias)
f.Keyspace = ""
var p *expression.Formalizer
if parent != nil {
p = parent.Copy()
} else {
p = expression.NewFormalizer()
}
p.Allowed.SetField(alias, alias)
this.right.keys, err = p.Map(this.right.keys)
return
}