Skip to content

Commit 271c332

Browse files
bitemyappChris A
authored andcommitted
Patch to deal with backticked identifiers in GenericDialect
1 parent 6afd194 commit 271c332

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

src/dialect/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ pub trait Dialect: Debug + Any {
5757
/// MySQL, MS SQL, and sqlite). You can accept one of characters listed
5858
/// in `Word::matching_end_quote` here
5959
fn is_delimited_identifier_start(&self, ch: char) -> bool {
60-
ch == '"'
60+
ch == '"' || ch == '`'
6161
}
6262
/// Determine if quoted characters are proper for identifier
6363
fn is_proper_identifier_inside_quotes(&self, mut _chars: Peekable<Chars<'_>>) -> bool {

tests/sqlparser_hive.rs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,20 @@ fn parse_table_create() {
2929
hive().verified_stmt(iof);
3030
}
3131

32+
fn generic() -> TestedDialects {
33+
let generic = TestedDialects {
34+
dialects: vec![Box::new(GenericDialect {})],
35+
};
36+
generic
37+
}
38+
39+
#[test]
40+
fn parse_describe() {
41+
let describe = r#"DESCRIBE namespace.`table`"#;
42+
hive().verified_stmt(describe);
43+
generic().verified_stmt(describe);
44+
}
45+
3246
#[test]
3347
fn parse_insert_overwrite() {
3448
let insert_partitions = r#"INSERT OVERWRITE TABLE db.new_table PARTITION (a = '1', b) SELECT a, b, c FROM db.table"#;
@@ -258,12 +272,8 @@ fn parse_create_function() {
258272
_ => unreachable!(),
259273
}
260274

261-
let generic = TestedDialects {
262-
dialects: vec![Box::new(GenericDialect {})],
263-
};
264-
265275
assert_eq!(
266-
generic.parse_sql_statements(sql).unwrap_err(),
276+
generic().parse_sql_statements(sql).unwrap_err(),
267277
ParserError::ParserError(
268278
"Expected an object type after CREATE, found: FUNCTION".to_string()
269279
)

0 commit comments

Comments
 (0)