visitSelectStatement method
Implementation
@override
void visitSelectStatement(SelectStatement e, void arg) {
visitNullable(e.withClause, arg);
keyword(TokenType.select);
if (e.distinct) {
keyword(TokenType.distinct);
}
_join(e.columns, ',');
_from(e.from);
_where(e.where);
visitNullable(e.groupBy, arg);
if (e.windowDeclarations.isNotEmpty) {
keyword(TokenType.window);
var isFirst = true;
for (final declaration in e.windowDeclarations) {
if (!isFirst) {
symbol(',', spaceAfter: true);
}
identifier(declaration.name);
keyword(TokenType.as);
visit(declaration.definition, arg);
isFirst = false;
}
}
visitNullable(e.orderBy, arg);
visitNullable(e.limit, arg);
}