123456789101112131415161718192021222324252627282930313233 |
- package xsql
- import "fmt"
- func Validate(stmt *SelectStatement) error {
- if HasAggFuncs(stmt.Condition) {
- return fmt.Errorf("Not allowed to call aggregate functions in WHERE clause.")
- }
- if HasNoAggFuncs(stmt.Having) {
- return fmt.Errorf("Not allowed to call none-aggregate functions in HAVING clause.")
- }
- //Cannot GROUP BY alias fields with aggregate funcs
- //if stmt.Dimensions != nil {
- // for _, d := range stmt.Dimensions {
- // if f, ok := d.Expr.(*FieldRef); ok {
- // for _, f1 := range stmt.Fields {
- // if f.Name == f1.Name || f.Name == f1.AName {
- // if HasAggFuncs(f1.Expr) {
- // return fmt.Errorf("Cannot group on %s.", f.Name)
- // }
- // break
- // }
- // }
- // } else {
- // return fmt.Errorf("Invalid use of group function")
- // }
- //
- // }
- //}
- return nil
- }
|