mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-07-07 17:04:59 +00:00
Enhance object name path segments (#1539)
This commit is contained in:
parent
fd6c98e933
commit
211b15e790
20 changed files with 584 additions and 466 deletions
|
@ -63,7 +63,7 @@ fn parse_table_time_travel() {
|
|||
select.from,
|
||||
vec![TableWithJoins {
|
||||
relation: TableFactor::Table {
|
||||
name: ObjectName(vec![Ident::new("t1")]),
|
||||
name: ObjectName::from(vec![Ident::new("t1")]),
|
||||
alias: None,
|
||||
args: None,
|
||||
with_hints: vec![],
|
||||
|
@ -159,7 +159,7 @@ fn parse_create_procedure() {
|
|||
}))
|
||||
}
|
||||
]),
|
||||
name: ObjectName(vec![Ident {
|
||||
name: ObjectName::from(vec![Ident {
|
||||
value: "test".into(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -211,7 +211,7 @@ fn parse_mssql_openjson() {
|
|||
assert_eq!(
|
||||
vec![TableWithJoins {
|
||||
relation: TableFactor::Table {
|
||||
name: ObjectName(vec![Ident::new("t_test_table")]),
|
||||
name: ObjectName::from(vec![Ident::new("t_test_table")]),
|
||||
alias: Some(TableAlias {
|
||||
name: Ident::new("A"),
|
||||
columns: vec![]
|
||||
|
@ -270,7 +270,7 @@ fn parse_mssql_openjson() {
|
|||
assert_eq!(
|
||||
vec![TableWithJoins {
|
||||
relation: TableFactor::Table {
|
||||
name: ObjectName(vec![Ident::new("t_test_table"),]),
|
||||
name: ObjectName::from(vec![Ident::new("t_test_table"),]),
|
||||
alias: Some(TableAlias {
|
||||
name: Ident::new("A"),
|
||||
columns: vec![]
|
||||
|
@ -329,8 +329,7 @@ fn parse_mssql_openjson() {
|
|||
assert_eq!(
|
||||
vec![TableWithJoins {
|
||||
relation: TableFactor::Table {
|
||||
name: ObjectName(vec![Ident::new("t_test_table")]),
|
||||
|
||||
name: ObjectName::from(vec![Ident::new("t_test_table")]),
|
||||
alias: Some(TableAlias {
|
||||
name: Ident::new("A"),
|
||||
columns: vec![]
|
||||
|
@ -389,7 +388,7 @@ fn parse_mssql_openjson() {
|
|||
assert_eq!(
|
||||
vec![TableWithJoins {
|
||||
relation: TableFactor::Table {
|
||||
name: ObjectName(vec![Ident::new("t_test_table")]),
|
||||
name: ObjectName::from(vec![Ident::new("t_test_table")]),
|
||||
alias: Some(TableAlias {
|
||||
name: Ident::new("A"),
|
||||
columns: vec![]
|
||||
|
@ -428,7 +427,7 @@ fn parse_mssql_openjson() {
|
|||
assert_eq!(
|
||||
vec![TableWithJoins {
|
||||
relation: TableFactor::Table {
|
||||
name: ObjectName(vec![Ident::new("t_test_table")]),
|
||||
name: ObjectName::from(vec![Ident::new("t_test_table")]),
|
||||
alias: Some(TableAlias {
|
||||
name: Ident::new("A"),
|
||||
columns: vec![]
|
||||
|
@ -532,7 +531,7 @@ fn parse_mssql_create_role() {
|
|||
assert_eq_vec(&["mssql"], &names);
|
||||
assert_eq!(
|
||||
authorization_owner,
|
||||
Some(ObjectName(vec![Ident {
|
||||
Some(ObjectName::from(vec![Ident {
|
||||
value: "helena".into(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -619,7 +618,10 @@ fn parse_delimited_identifiers() {
|
|||
version,
|
||||
..
|
||||
} => {
|
||||
assert_eq!(vec![Ident::with_quote('"', "a table")], name.0);
|
||||
assert_eq!(
|
||||
ObjectName::from(vec![Ident::with_quote('"', "a table")]),
|
||||
name
|
||||
);
|
||||
assert_eq!(Ident::with_quote('"', "alias"), alias.unwrap().name);
|
||||
assert!(args.is_none());
|
||||
assert!(with_hints.is_empty());
|
||||
|
@ -638,7 +640,7 @@ fn parse_delimited_identifiers() {
|
|||
);
|
||||
assert_eq!(
|
||||
&Expr::Function(Function {
|
||||
name: ObjectName(vec![Ident::with_quote('"', "myfun")]),
|
||||
name: ObjectName::from(vec![Ident::with_quote('"', "myfun")]),
|
||||
uses_odbc_syntax: false,
|
||||
parameters: FunctionArguments::None,
|
||||
args: FunctionArguments::List(FunctionArgumentList {
|
||||
|
@ -671,11 +673,11 @@ fn parse_table_name_in_square_brackets() {
|
|||
let select = ms().verified_only_select(r#"SELECT [a column] FROM [a schema].[a table]"#);
|
||||
if let TableFactor::Table { name, .. } = only(select.from).relation {
|
||||
assert_eq!(
|
||||
vec![
|
||||
ObjectName::from(vec![
|
||||
Ident::with_quote('[', "a schema"),
|
||||
Ident::with_quote('[', "a table")
|
||||
],
|
||||
name.0
|
||||
]),
|
||||
name
|
||||
);
|
||||
} else {
|
||||
panic!("Expecting TableFactor::Table");
|
||||
|
@ -1086,7 +1088,7 @@ fn parse_substring_in_select() {
|
|||
})],
|
||||
into: None,
|
||||
from: vec![TableWithJoins {
|
||||
relation: table_from_name(ObjectName(vec![Ident {
|
||||
relation: table_from_name(ObjectName::from(vec![Ident {
|
||||
value: "test".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -1204,7 +1206,7 @@ fn parse_mssql_declare() {
|
|||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variables: OneOrManyWithParens::One(ObjectName(vec![Ident::new("@bar")])),
|
||||
variables: OneOrManyWithParens::One(ObjectName::from(vec![Ident::new("@bar")])),
|
||||
value: vec![Expr::Value(Value::Number("2".parse().unwrap(), false))],
|
||||
},
|
||||
Statement::Query(Box::new(Query {
|
||||
|
@ -1298,7 +1300,7 @@ fn parse_use() {
|
|||
// Test single identifier without quotes
|
||||
assert_eq!(
|
||||
ms().verified_stmt(&format!("USE {}", object_name)),
|
||||
Statement::Use(Use::Object(ObjectName(vec![Ident::new(
|
||||
Statement::Use(Use::Object(ObjectName::from(vec![Ident::new(
|
||||
object_name.to_string()
|
||||
)])))
|
||||
);
|
||||
|
@ -1306,7 +1308,7 @@ fn parse_use() {
|
|||
// Test single identifier with different type of quotes
|
||||
assert_eq!(
|
||||
ms().verified_stmt(&format!("USE {}{}{}", quote, object_name, quote)),
|
||||
Statement::Use(Use::Object(ObjectName(vec![Ident::with_quote(
|
||||
Statement::Use(Use::Object(ObjectName::from(vec![Ident::with_quote(
|
||||
quote,
|
||||
object_name.to_string(),
|
||||
)])))
|
||||
|
@ -1408,7 +1410,7 @@ fn parse_create_table_with_valid_options() {
|
|||
},
|
||||
value: Expr::Function(
|
||||
Function {
|
||||
name: ObjectName(
|
||||
name: ObjectName::from(
|
||||
vec![
|
||||
Ident {
|
||||
value: "HASH".to_string(),
|
||||
|
@ -1472,7 +1474,7 @@ fn parse_create_table_with_valid_options() {
|
|||
if_not_exists: false,
|
||||
transient: false,
|
||||
volatile: false,
|
||||
name: ObjectName(vec![Ident {
|
||||
name: ObjectName::from(vec![Ident {
|
||||
value: "mytable".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -1648,7 +1650,7 @@ fn parse_create_table_with_identity_column() {
|
|||
transient: false,
|
||||
volatile: false,
|
||||
iceberg: false,
|
||||
name: ObjectName(vec![Ident {
|
||||
name: ObjectName::from(vec![Ident {
|
||||
value: "mytable".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue