Skip to content

Commit f709f06

Browse files
resolve comments
1 parent f60cd89 commit f709f06

File tree

4 files changed

+13
-15
lines changed

4 files changed

+13
-15
lines changed

src/ast/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7766,13 +7766,15 @@ impl fmt::Display for RenameTable {
77667766
}
77677767
}
77687768

7769+
/// table object for insertion
77697770
#[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)]
77707771
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
77717772
#[cfg_attr(feature = "visitor", derive(Visit, VisitMut))]
77727773
pub enum TableObject {
7774+
// for simple table name
77737775
TableName(#[cfg_attr(feature = "visitor", visit(with = "visit_relation"))] ObjectName),
77747776

7775-
// Clickhouse: [Table functions](https://clickhouse.com/docs/en/sql-reference/table-functions)
7777+
// for Clickhouse [table functions](https://clickhouse.com/docs/en/sql-reference/table-functions)
77767778
TableFunction(Function),
77777779
}
77787780

src/parser/mod.rs

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8858,23 +8858,18 @@ impl<'a> Parser<'a> {
88588858
}
88598859
}
88608860

8861-
pub fn parse_table_object(
8862-
&mut self,
8863-
in_table_clause: bool,
8864-
) -> Result<TableObject, ParserError> {
8861+
/// Parse a table object for insetion
8862+
/// e.g. `some_database.some_table` or `FUNCTION some_table_func(...)`
8863+
pub fn parse_table_object(&mut self) -> Result<TableObject, ParserError> {
88658864
if dialect_of!(self is ClickHouseDialect) && self.parse_keyword(Keyword::FUNCTION) {
8866-
self.parse_table_function().map(TableObject::TableFunction)
8865+
let fn_name = self.parse_object_name(false)?;
8866+
self.parse_function_call(fn_name)
8867+
.map(TableObject::TableFunction)
88678868
} else {
8868-
self.parse_object_name(in_table_clause)
8869-
.map(TableObject::TableName)
8869+
self.parse_object_name(false).map(TableObject::TableName)
88708870
}
88718871
}
88728872

8873-
pub fn parse_table_function(&mut self) -> Result<Function, ParserError> {
8874-
let fn_name = self.parse_object_name(false)?;
8875-
self.parse_function_call(fn_name)
8876-
}
8877-
88788873
/// Parse a possibly qualified, possibly quoted identifier, e.g.
88798874
/// `foo` or `myschema."table"
88808875
///
@@ -11905,7 +11900,7 @@ impl<'a> Parser<'a> {
1190511900
} else {
1190611901
// Hive lets you put table here regardless
1190711902
let table = self.parse_keyword(Keyword::TABLE);
11908-
let table_object = self.parse_table_object(false)?;
11903+
let table_object = self.parse_table_object()?;
1190911904

1191011905
let table_alias =
1191111906
if dialect_of!(self is PostgreSqlDialect) && self.parse_keyword(Keyword::AS) {

src/test_utils.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ impl TestedDialects {
154154
pub fn one_statement_parses_to(&self, sql: &str, canonical: &str) -> Statement {
155155
let mut statements = self.parse_sql_statements(sql).expect(sql);
156156
assert_eq!(statements.len(), 1);
157-
157+
println!("sql: {}", sql);
158158
if !canonical.is_empty() && sql != canonical {
159159
assert_eq!(self.parse_sql_statements(canonical).unwrap(), statements);
160160
}

tests/sqlparser_clickhouse.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ fn parse_create_table() {
225225
#[test]
226226
fn parse_insert_into_function() {
227227
clickhouse().verified_stmt(r#"INSERT INTO TABLE FUNCTION remote('localhost', default.simple_table) VALUES (100, 'inserted via remote()')"#);
228+
clickhouse().verified_stmt(r#"INSERT INTO FUNCTION remote('localhost', default.simple_table) VALUES (100, 'inserted via remote()')"#);
228229
}
229230

230231
#[test]

0 commit comments

Comments
 (0)