Skip to content

Commit 0ec2794

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

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-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: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,19 @@ fn parse_table_create() {
2929
hive().verified_stmt(iof);
3030
}
3131

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

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

0 commit comments

Comments
 (0)