mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-07-12 11:14:59 +00:00
feat(mysql): Increased compatibility for MySQL (#1059)
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
This commit is contained in:
parent
f46f147ffa
commit
d0fce121ef
5 changed files with 187 additions and 15 deletions
|
@ -1871,6 +1871,42 @@ fn parse_convert_using() {
|
|||
mysql().verified_only_select("SELECT CONVERT('test', CHAR CHARACTER SET utf8mb4)");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_create_table_with_column_collate() {
|
||||
let sql = "CREATE TABLE tb (id TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci)";
|
||||
let canonical = "CREATE TABLE tb (id TEXT COLLATE utf8mb4_0900_ai_ci CHARACTER SET utf8mb4)";
|
||||
match mysql().one_statement_parses_to(sql, canonical) {
|
||||
Statement::CreateTable { name, columns, .. } => {
|
||||
assert_eq!(name.to_string(), "tb");
|
||||
assert_eq!(
|
||||
vec![ColumnDef {
|
||||
name: Ident::new("id"),
|
||||
data_type: DataType::Text,
|
||||
collation: Some(ObjectName(vec![Ident::new("utf8mb4_0900_ai_ci")])),
|
||||
options: vec![ColumnOptionDef {
|
||||
name: None,
|
||||
option: ColumnOption::CharacterSet(ObjectName(vec![Ident::new("utf8mb4")]))
|
||||
}],
|
||||
},],
|
||||
columns
|
||||
);
|
||||
}
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_lock_tables() {
|
||||
mysql().one_statement_parses_to(
|
||||
"LOCK TABLES trans t READ, customer WRITE",
|
||||
"LOCK TABLES trans AS t READ, customer WRITE",
|
||||
);
|
||||
mysql().verified_stmt("LOCK TABLES trans AS t READ, customer WRITE");
|
||||
mysql().verified_stmt("LOCK TABLES trans AS t READ LOCAL, customer WRITE");
|
||||
mysql().verified_stmt("LOCK TABLES trans AS t READ, customer LOW_PRIORITY WRITE");
|
||||
mysql().verified_stmt("UNLOCK TABLES");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_json_table() {
|
||||
mysql().verified_only_select("SELECT * FROM JSON_TABLE('[[1, 2], [3, 4]]', '$[*]' COLUMNS(a INT PATH '$[0]', b INT PATH '$[1]')) AS t");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue