mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-08-22 23:14:07 +00:00
Rename parse_tablename -> parse_object_name (4.2/4.4)
...to match the name of the recently introduced `SQLObjectName` struct and to avoid any reservations about using it with multi-part names of objects other than tables (as in the `type_name` case).
This commit is contained in:
parent
523f086be7
commit
39e98cb11a
2 changed files with 11 additions and 9 deletions
|
@ -545,7 +545,7 @@ impl Parser {
|
|||
/// Parse a SQL CREATE statement
|
||||
pub fn parse_create(&mut self) -> Result<SQLStatement, ParserError> {
|
||||
if self.parse_keywords(vec!["TABLE"]) {
|
||||
let table_name = self.parse_tablename()?;
|
||||
let table_name = self.parse_object_name()?;
|
||||
// parse optional column list (schema)
|
||||
let mut columns = vec![];
|
||||
if self.consume_token(&Token::LParen) {
|
||||
|
@ -639,7 +639,7 @@ impl Parser {
|
|||
Ok(TableKey::UniqueKey(key))
|
||||
} else if is_foreign_key {
|
||||
self.expect_keyword("REFERENCES")?;
|
||||
let foreign_table = self.parse_tablename()?;
|
||||
let foreign_table = self.parse_object_name()?;
|
||||
self.expect_token(&Token::LParen)?;
|
||||
let referred_columns = self.parse_column_names()?;
|
||||
self.expect_token(&Token::RParen)?;
|
||||
|
@ -659,7 +659,7 @@ impl Parser {
|
|||
pub fn parse_alter(&mut self) -> Result<SQLStatement, ParserError> {
|
||||
self.expect_keyword("TABLE")?;
|
||||
let _ = self.parse_keyword("ONLY");
|
||||
let table_name = self.parse_tablename()?;
|
||||
let table_name = self.parse_object_name()?;
|
||||
let operation: Result<AlterOperation, ParserError> =
|
||||
if self.parse_keywords(vec!["ADD", "CONSTRAINT"]) {
|
||||
match self.next_token() {
|
||||
|
@ -688,7 +688,7 @@ impl Parser {
|
|||
|
||||
/// Parse a copy statement
|
||||
pub fn parse_copy(&mut self) -> Result<SQLStatement, ParserError> {
|
||||
let table_name = self.parse_tablename()?;
|
||||
let table_name = self.parse_object_name()?;
|
||||
let columns = if self.consume_token(&Token::LParen) {
|
||||
let column_names = self.parse_column_names()?;
|
||||
self.expect_token(&Token::RParen)?;
|
||||
|
@ -986,7 +986,7 @@ impl Parser {
|
|||
}
|
||||
_ => {
|
||||
self.prev_token();
|
||||
let type_name = self.parse_tablename()?; // TODO: this actually reads a possibly schema-qualified name of a (custom) type
|
||||
let type_name = self.parse_object_name()?;
|
||||
Ok(SQLType::Custom(type_name))
|
||||
}
|
||||
},
|
||||
|
@ -1060,7 +1060,9 @@ impl Parser {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn parse_tablename(&mut self) -> Result<SQLObjectName, ParserError> {
|
||||
/// Parse a possibly qualified, possibly quoted identifier, e.g.
|
||||
/// `foo` or `myschema."table"`
|
||||
pub fn parse_object_name(&mut self) -> Result<SQLObjectName, ParserError> {
|
||||
let identifier = self.parse_compound_identifier(&Token::Period)?;
|
||||
match identifier {
|
||||
// TODO: should store the compound identifier itself
|
||||
|
@ -1323,7 +1325,7 @@ impl Parser {
|
|||
/// Parse an INSERT statement
|
||||
pub fn parse_insert(&mut self) -> Result<SQLStatement, ParserError> {
|
||||
self.expect_keyword("INTO")?;
|
||||
let table_name = self.parse_tablename()?;
|
||||
let table_name = self.parse_object_name()?;
|
||||
let columns = if self.consume_token(&Token::LParen) {
|
||||
let column_names = self.parse_column_names()?;
|
||||
self.expect_token(&Token::RParen)?;
|
||||
|
|
|
@ -99,14 +99,14 @@ fn parse_complex_insert() {
|
|||
#[test]
|
||||
fn parse_invalid_table_name() {
|
||||
let mut parser = parser("db.public..customer");
|
||||
let ast = parser.parse_tablename();
|
||||
let ast = parser.parse_object_name();
|
||||
assert!(ast.is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_no_table_name() {
|
||||
let mut parser = parser("");
|
||||
let ast = parser.parse_tablename();
|
||||
let ast = parser.parse_object_name();
|
||||
assert!(ast.is_err());
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue