use crate::ast::{DeleteStatement, Statement};
use super::{rename_default_table, Parser, ParserError};
impl<'a> Parser<'a> {
pub(crate) fn parse_delete_statement(&mut self) -> Result<Statement, ParserError> {
self.try_consume_keyword("DELETE")?;
self.try_consume_keyword("FROM")?;
let table = self.try_consume_symbol()?;
let cond = if let Ok(_) = self.try_consume_keyword("WHERE") {
Some(rename_default_table(&self.parse_expr()?, &table))
} else {
None
};
self.try_consume_semi()?;
Ok(Statement::Delete(DeleteStatement { table, cond }))
}
}