mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-08-22 15:04:04 +00:00
set: allow dots in variables by moving to ObjectName (#484)
Signed-off-by: Maciej Obuchowski <obuchowski.maciej@gmail.com>
This commit is contained in:
parent
835bb2f9ad
commit
6d057ef4df
3 changed files with 41 additions and 9 deletions
|
@ -18,6 +18,7 @@
|
|||
mod test_utils;
|
||||
use test_utils::*;
|
||||
|
||||
use sqlparser::ast::Value::Boolean;
|
||||
use sqlparser::ast::*;
|
||||
use sqlparser::dialect::{GenericDialect, PostgreSqlDialect};
|
||||
use sqlparser::parser::ParserError;
|
||||
|
@ -780,7 +781,7 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variable: "a".into(),
|
||||
variable: ObjectName(vec![Ident::new("a")]),
|
||||
value: vec![SetVariableValue::Ident("b".into())],
|
||||
}
|
||||
);
|
||||
|
@ -791,7 +792,7 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variable: "a".into(),
|
||||
variable: ObjectName(vec![Ident::new("a")]),
|
||||
value: vec![SetVariableValue::Literal(Value::SingleQuotedString(
|
||||
"b".into()
|
||||
))],
|
||||
|
@ -804,7 +805,7 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variable: "a".into(),
|
||||
variable: ObjectName(vec![Ident::new("a")]),
|
||||
value: vec![SetVariableValue::Literal(number("0"))],
|
||||
}
|
||||
);
|
||||
|
@ -815,7 +816,7 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variable: "a".into(),
|
||||
variable: ObjectName(vec![Ident::new("a")]),
|
||||
value: vec![SetVariableValue::Ident("DEFAULT".into())],
|
||||
}
|
||||
);
|
||||
|
@ -826,11 +827,42 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: true,
|
||||
hivevar: false,
|
||||
variable: "a".into(),
|
||||
variable: ObjectName(vec![Ident::new("a")]),
|
||||
value: vec![SetVariableValue::Ident("b".into())],
|
||||
}
|
||||
);
|
||||
|
||||
let stmt = pg_and_generic().verified_stmt("SET a.b.c = b");
|
||||
assert_eq!(
|
||||
stmt,
|
||||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variable: ObjectName(vec![Ident::new("a"), Ident::new("b"), Ident::new("c")]),
|
||||
value: vec![SetVariableValue::Ident("b".into())],
|
||||
}
|
||||
);
|
||||
|
||||
let stmt = pg_and_generic().one_statement_parses_to(
|
||||
"SET hive.tez.auto.reducer.parallelism=false",
|
||||
"SET hive.tez.auto.reducer.parallelism = false",
|
||||
);
|
||||
assert_eq!(
|
||||
stmt,
|
||||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variable: ObjectName(vec![
|
||||
Ident::new("hive"),
|
||||
Ident::new("tez"),
|
||||
Ident::new("auto"),
|
||||
Ident::new("reducer"),
|
||||
Ident::new("parallelism")
|
||||
]),
|
||||
value: vec![SetVariableValue::Literal(Boolean(false))],
|
||||
}
|
||||
);
|
||||
|
||||
pg_and_generic().one_statement_parses_to("SET a TO b", "SET a = b");
|
||||
pg_and_generic().one_statement_parses_to("SET SESSION a = b", "SET a = b");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue