visitInsertStatement method
Implementation
@override
void visitInsertStatement(InsertStatement e, void arg) {
visitNullable(e.withClause, arg);
final mode = e.mode;
if (mode == InsertMode.insert) {
keyword(TokenType.insert);
} else if (mode == InsertMode.replace) {
keyword(TokenType.replace);
} else {
keyword(TokenType.insert);
keyword(TokenType.or);
keyword(const {
InsertMode.insertOrReplace: TokenType.replace,
InsertMode.insertOrRollback: TokenType.rollback,
InsertMode.insertOrAbort: TokenType.abort,
InsertMode.insertOrFail: TokenType.fail,
InsertMode.insertOrIgnore: TokenType.ignore,
}[mode]!);
}
keyword(TokenType.into);
visit(e.table, arg);
if (e.targetColumns.isNotEmpty) {
symbol('(', spaceBefore: true);
_join(e.targetColumns, ',');
symbol(')', spaceAfter: true);
}
visit(e.source, arg);
visitNullable(e.upsert, arg);
visitNullable(e.returning, arg);
}