SET with a list of comma separated assignments (#1757)

This commit is contained in:
Mohamed Abdeen 2025-03-12 22:02:39 +02:00 committed by GitHub
parent 3392623b00
commit 85f855150f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 564 additions and 375 deletions

View file

@ -617,12 +617,12 @@ fn parse_set_variables() {
mysql_and_generic().verified_stmt("SET sql_mode = CONCAT(@@sql_mode, ',STRICT_TRANS_TABLES')");
assert_eq!(
mysql_and_generic().verified_stmt("SET LOCAL autocommit = 1"),
Statement::SetVariable {
Statement::Set(Set::SingleAssignment {
local: true,
hivevar: false,
variables: OneOrManyWithParens::One(ObjectName::from(vec!["autocommit".into()])),
value: vec![Expr::value(number("1"))],
}
variable: ObjectName::from(vec!["autocommit".into()]),
values: vec![Expr::value(number("1"))],
})
);
}
@ -2705,19 +2705,19 @@ fn parse_set_names() {
let stmt = mysql_and_generic().verified_stmt("SET NAMES utf8mb4");
assert_eq!(
stmt,
Statement::SetNames {
Statement::Set(Set::SetNames {
charset_name: "utf8mb4".into(),
collation_name: None,
}
})
);
let stmt = mysql_and_generic().verified_stmt("SET NAMES utf8mb4 COLLATE bogus");
assert_eq!(
stmt,
Statement::SetNames {
Statement::Set(Set::SetNames {
charset_name: "utf8mb4".into(),
collation_name: Some("bogus".to_string()),
}
})
);
let stmt = mysql_and_generic()
@ -2725,14 +2725,14 @@ fn parse_set_names() {
.unwrap();
assert_eq!(
stmt,
vec![Statement::SetNames {
vec![Statement::Set(Set::SetNames {
charset_name: "utf8mb4".into(),
collation_name: Some("bogus".to_string()),
}]
})]
);
let stmt = mysql_and_generic().verified_stmt("SET NAMES DEFAULT");
assert_eq!(stmt, Statement::SetNamesDefault {});
assert_eq!(stmt, Statement::Set(Set::SetNamesDefault {}));
}
#[test]