code: func splitNormalFormItems(onExpr Expression, funcName string) []Expression {
  	switch v := onExpr.(type) {
  	case *ScalarFunction:
  		if v.FuncName.L == funcName {
  			var ret []Expression
  			for _, arg := range v.GetArgs() {
  				ret = append(ret, splitNormalFormItems(arg, funcName)...)
  			}
  			return ret
  		}
  	}
  	return []Expression{onExpr}
  }
docs: // splitNormalFormItems split CNF(conjunctive normal form) like "a and b and c", or DNF(disjunctive normal form) like "a or b or c"