/* This method qualifies identifiers for all the constituent clauses, namely the by, letting and having expressions by mapping them. */ func (this *Group) Formalize(f *expression.Formalizer) (*expression.Formalizer, error) { var err error if this.by != nil { for i, b := range this.by { this.by[i], err = f.Map(b) if err != nil { return nil, err } } } if this.letting != nil { _, err = f.PushBindings(this.letting) if err != nil { return nil, err } } if this.having != nil { this.having, err = f.Map(this.having) if err != nil { return nil, err } } return f, nil }
/* Fully qualify identifiers for the update for stmt, the path and value expressions in the set clause. */ func (this *SetTerm) Formalize(f *expression.Formalizer) (err error) { if this.updateFor != nil { sv, err := f.PushBindings(this.updateFor.bindings) if err != nil { return err } defer f.PopBindings(sv) } path, err := f.Map(this.path) if err != nil { return err } this.path = path.(expression.Path) this.value, err = f.Map(this.value) return }