before(s, s.getSource());
s.getSource().accept(this);
after(s, s.getSource());
Expr where = s.getWhereConditions();
if (null != where) {
before(s, where);
where.accept(this);
after(s, where);
}
GroupBy groupBy = s.getGroupBy();
if (null != groupBy) {
before(s, groupBy);
groupBy.accept(this);
after(s, groupBy);
}
Expr aggregateOver = s.getWindowOver();
if (null != aggregateOver) {
before(s, aggregateOver);
aggregateOver.accept(this);
after(s, aggregateOver);
}
Expr having = s.getHaving();
if (null != having) {
before(s, having);
having.accept(this);
after(s, having);
}
List<WindowDef> windowDefs = s.getWindowDefs();
if (null != windowDefs) {