From d65274bc31af35bc8692c52905ccddc843e33f11 Mon Sep 17 00:00:00 2001 From: Nickolay Ponomarev Date: Sat, 27 Apr 2019 04:01:10 +0300 Subject: [PATCH] Improve ALTER error messages for unsupported syntax --- src/sqlparser.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/sqlparser.rs b/src/sqlparser.rs index 037ae3e9..1a9e570f 100644 --- a/src/sqlparser.rs +++ b/src/sqlparser.rs @@ -846,20 +846,20 @@ impl Parser { self.expect_keyword("TABLE")?; let _ = self.parse_keyword("ONLY"); let table_name = self.parse_object_name()?; - let operation: Result = - if self.parse_keywords(vec!["ADD", "CONSTRAINT"]) { + let operation = if self.parse_keyword("ADD") { + if self.parse_keyword("CONSTRAINT") { let constraint_name = self.parse_identifier()?; let table_key = self.parse_table_key(constraint_name)?; - Ok(AlterOperation::AddConstraint(table_key)) + AlterOperation::AddConstraint(table_key) } else { - return parser_err!(format!( - "Expecting ADD CONSTRAINT, found :{:?}", - self.peek_token() - )); - }; + return self.expected("CONSTRAINT after ADD", self.peek_token()); + } + } else { + return self.expected("ADD after ALTER TABLE", self.peek_token()); + }; Ok(SQLStatement::SQLAlterTable { name: table_name, - operation: operation?, + operation, }) }