Skip to content

Commit 23f5c7e

Browse files
committed
Move parse_column_def below parse_columns
...because in the section related to CREATE TABLE parsing, the callers are defined above the callees.
1 parent 1b46e82 commit 23f5c7e

File tree

1 file changed

+24
-25
lines changed

1 file changed

+24
-25
lines changed

src/parser.rs

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1191,29 +1191,6 @@ impl<'a> Parser<'a> {
11911191
})
11921192
}
11931193

1194-
fn parse_column_def(&mut self) -> Result<ColumnDef, ParserError> {
1195-
let name = self.parse_identifier()?;
1196-
let data_type = self.parse_data_type()?;
1197-
let collation = if self.parse_keyword(Keyword::COLLATE) {
1198-
Some(self.parse_object_name()?)
1199-
} else {
1200-
None
1201-
};
1202-
let mut options = vec![];
1203-
loop {
1204-
match self.peek_token() {
1205-
Token::EOF | Token::Comma | Token::RParen | Token::SemiColon => break,
1206-
_ => options.push(self.parse_column_option_def()?),
1207-
}
1208-
}
1209-
Ok(ColumnDef {
1210-
name,
1211-
data_type,
1212-
collation,
1213-
options,
1214-
})
1215-
}
1216-
12171194
fn parse_columns(&mut self) -> Result<(Vec<ColumnDef>, Vec<TableConstraint>), ParserError> {
12181195
let mut columns = vec![];
12191196
let mut constraints = vec![];
@@ -1225,8 +1202,7 @@ impl<'a> Parser<'a> {
12251202
if let Some(constraint) = self.parse_optional_table_constraint()? {
12261203
constraints.push(constraint);
12271204
} else if let Token::Word(_) = self.peek_token() {
1228-
let column_def = self.parse_column_def()?;
1229-
columns.push(column_def);
1205+
columns.push(self.parse_column_def()?);
12301206
} else {
12311207
return self.expected("column name or constraint definition", self.peek_token());
12321208
}
@@ -1242,6 +1218,29 @@ impl<'a> Parser<'a> {
12421218
Ok((columns, constraints))
12431219
}
12441220

1221+
fn parse_column_def(&mut self) -> Result<ColumnDef, ParserError> {
1222+
let name = self.parse_identifier()?;
1223+
let data_type = self.parse_data_type()?;
1224+
let collation = if self.parse_keyword(Keyword::COLLATE) {
1225+
Some(self.parse_object_name()?)
1226+
} else {
1227+
None
1228+
};
1229+
let mut options = vec![];
1230+
loop {
1231+
match self.peek_token() {
1232+
Token::EOF | Token::Comma | Token::RParen | Token::SemiColon => break,
1233+
_ => options.push(self.parse_column_option_def()?),
1234+
}
1235+
}
1236+
Ok(ColumnDef {
1237+
name,
1238+
data_type,
1239+
collation,
1240+
options,
1241+
})
1242+
}
1243+
12451244
pub fn parse_column_option_def(&mut self) -> Result<ColumnOptionDef, ParserError> {
12461245
let name = if self.parse_keyword(Keyword::CONSTRAINT) {
12471246
Some(self.parse_identifier()?)

0 commit comments

Comments
 (0)