func (a *havingAndOrderbyExprResolver) Enter(n ast.Node) (node ast.Node, skipChildren bool) {
	switch n.(type) {
	case *ast.AggregateFuncExpr:
		a.inAggFunc = true
	case *ast.ParamMarkerExpr, *ast.ColumnNameExpr, *ast.ColumnName:
	case *ast.SubqueryExpr, *ast.ExistsSubqueryExpr:
		// Enter a new context, skip it.
		// For example: select sum(c) + c + exists(select c from t) from t;
		return n, true
	default:
		a.inExpr = true
	}
	return n, false
}
// Enter implements Visitor interface.
Enter implements Visitor interface.
// Enter implements Visitor interface .
func (a *havingAndOrderbyExprResolver) Enter(n ast.Node) (node ast.Node, skipChildren bool) {
	switch n.(type) {
	case *ast.AggregateFuncExpr:
		a.inAggFunc = true
	case *ast.ParamMarkerExpr, *ast.ColumnNameExpr, *ast.ColumnName:
	case *ast.SubqueryExpr, *ast.ExistsSubqueryExpr:
		return n, true
	default:
		a.inExpr = true
	}
	return n, false
}
func ( a * havingAndOrderbyExprResolver ) Enter ( n ast . Node ) ( node ast . Node , skipChildren bool ) { switch n . ( type ) { case * ast . AggregateFuncExpr : a . inAggFunc = true case * ast . ParamMarkerExpr , * ast . ColumnNameExpr , * ast . ColumnName : case * ast . SubqueryExpr , * ast . ExistsSubqueryExpr : return n , true default : a . inExpr = true } return n , false }
Enter implements Visitor interface.
Enter implements Visitor interface .
// Enter a new context, skip it. // For example: select sum(c) + c + exists(select c from t) from t;