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
|
@ -402,7 +402,7 @@ fn parse_create_table_with_defaults() {
|
|||
unit: None
|
||||
}
|
||||
)),
|
||||
collation: Some(ObjectName(vec![Ident::with_quote('"', "es_ES")])),
|
||||
collation: Some(ObjectName::from(vec![Ident::with_quote('"', "es_ES")])),
|
||||
options: vec![ColumnOptionDef {
|
||||
name: None,
|
||||
option: ColumnOption::NotNull,
|
||||
|
@ -1040,7 +1040,7 @@ fn test_copy_from() {
|
|||
stmt,
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["users".into()]),
|
||||
table_name: ObjectName::from(vec!["users".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: false,
|
||||
|
@ -1058,7 +1058,7 @@ fn test_copy_from() {
|
|||
stmt,
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["users".into()]),
|
||||
table_name: ObjectName::from(vec!["users".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: false,
|
||||
|
@ -1076,7 +1076,7 @@ fn test_copy_from() {
|
|||
stmt,
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["users".into()]),
|
||||
table_name: ObjectName::from(vec!["users".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: false,
|
||||
|
@ -1100,7 +1100,7 @@ fn test_copy_to() {
|
|||
stmt,
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["users".into()]),
|
||||
table_name: ObjectName::from(vec!["users".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: true,
|
||||
|
@ -1118,7 +1118,7 @@ fn test_copy_to() {
|
|||
stmt,
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["users".into()]),
|
||||
table_name: ObjectName::from(vec!["users".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: true,
|
||||
|
@ -1136,7 +1136,7 @@ fn test_copy_to() {
|
|||
stmt,
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["users".into()]),
|
||||
table_name: ObjectName::from(vec!["users".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: true,
|
||||
|
@ -1177,7 +1177,7 @@ fn parse_copy_from() {
|
|||
pg_and_generic().one_statement_parses_to(sql, ""),
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["table".into()]),
|
||||
table_name: ObjectName::from(vec!["table".into()]),
|
||||
columns: vec!["a".into(), "b".into()],
|
||||
},
|
||||
to: false,
|
||||
|
@ -1223,7 +1223,7 @@ fn parse_copy_to() {
|
|||
stmt,
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["users".into()]),
|
||||
table_name: ObjectName::from(vec!["users".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: true,
|
||||
|
@ -1241,7 +1241,7 @@ fn parse_copy_to() {
|
|||
stmt,
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["country".into()]),
|
||||
table_name: ObjectName::from(vec!["country".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: true,
|
||||
|
@ -1258,7 +1258,7 @@ fn parse_copy_to() {
|
|||
stmt,
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["country".into()]),
|
||||
table_name: ObjectName::from(vec!["country".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: true,
|
||||
|
@ -1344,7 +1344,7 @@ fn parse_copy_from_before_v9_0() {
|
|||
stmt,
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["users".into()]),
|
||||
table_name: ObjectName::from(vec!["users".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: false,
|
||||
|
@ -1373,7 +1373,7 @@ fn parse_copy_from_before_v9_0() {
|
|||
pg_and_generic().one_statement_parses_to(sql, ""),
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["users".into()]),
|
||||
table_name: ObjectName::from(vec!["users".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: false,
|
||||
|
@ -1401,7 +1401,7 @@ fn parse_copy_to_before_v9_0() {
|
|||
stmt,
|
||||
Statement::Copy {
|
||||
source: CopySource::Table {
|
||||
table_name: ObjectName(vec!["users".into()]),
|
||||
table_name: ObjectName::from(vec!["users".into()]),
|
||||
columns: vec![],
|
||||
},
|
||||
to: true,
|
||||
|
@ -1433,7 +1433,7 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variables: OneOrManyWithParens::One(ObjectName(vec![Ident::new("a")])),
|
||||
variables: OneOrManyWithParens::One(ObjectName::from(vec![Ident::new("a")])),
|
||||
value: vec![Expr::Identifier(Ident {
|
||||
value: "b".into(),
|
||||
quote_style: None,
|
||||
|
@ -1448,7 +1448,7 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variables: OneOrManyWithParens::One(ObjectName(vec![Ident::new("a")])),
|
||||
variables: OneOrManyWithParens::One(ObjectName::from(vec![Ident::new("a")])),
|
||||
value: vec![Expr::Value(Value::SingleQuotedString("b".into()))],
|
||||
}
|
||||
);
|
||||
|
@ -1459,7 +1459,7 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variables: OneOrManyWithParens::One(ObjectName(vec![Ident::new("a")])),
|
||||
variables: OneOrManyWithParens::One(ObjectName::from(vec![Ident::new("a")])),
|
||||
value: vec![Expr::Value(number("0"))],
|
||||
}
|
||||
);
|
||||
|
@ -1470,7 +1470,7 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variables: OneOrManyWithParens::One(ObjectName(vec![Ident::new("a")])),
|
||||
variables: OneOrManyWithParens::One(ObjectName::from(vec![Ident::new("a")])),
|
||||
value: vec![Expr::Identifier(Ident::new("DEFAULT"))],
|
||||
}
|
||||
);
|
||||
|
@ -1481,7 +1481,7 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: true,
|
||||
hivevar: false,
|
||||
variables: OneOrManyWithParens::One(ObjectName(vec![Ident::new("a")])),
|
||||
variables: OneOrManyWithParens::One(ObjectName::from(vec![Ident::new("a")])),
|
||||
value: vec![Expr::Identifier("b".into())],
|
||||
}
|
||||
);
|
||||
|
@ -1492,7 +1492,7 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variables: OneOrManyWithParens::One(ObjectName(vec![
|
||||
variables: OneOrManyWithParens::One(ObjectName::from(vec![
|
||||
Ident::new("a"),
|
||||
Ident::new("b"),
|
||||
Ident::new("c")
|
||||
|
@ -1514,7 +1514,7 @@ fn parse_set() {
|
|||
Statement::SetVariable {
|
||||
local: false,
|
||||
hivevar: false,
|
||||
variables: OneOrManyWithParens::One(ObjectName(vec![
|
||||
variables: OneOrManyWithParens::One(ObjectName::from(vec![
|
||||
Ident::new("hive"),
|
||||
Ident::new("tez"),
|
||||
Ident::new("auto"),
|
||||
|
@ -1658,7 +1658,7 @@ fn parse_execute() {
|
|||
assert_eq!(
|
||||
stmt,
|
||||
Statement::Execute {
|
||||
name: ObjectName(vec!["a".into()]),
|
||||
name: ObjectName::from(vec!["a".into()]),
|
||||
parameters: vec![],
|
||||
has_parentheses: false,
|
||||
using: vec![]
|
||||
|
@ -1669,7 +1669,7 @@ fn parse_execute() {
|
|||
assert_eq!(
|
||||
stmt,
|
||||
Statement::Execute {
|
||||
name: ObjectName(vec!["a".into()]),
|
||||
name: ObjectName::from(vec!["a".into()]),
|
||||
parameters: vec![
|
||||
Expr::Value(number("1")),
|
||||
Expr::Value(Value::SingleQuotedString("t".to_string()))
|
||||
|
@ -1684,7 +1684,7 @@ fn parse_execute() {
|
|||
assert_eq!(
|
||||
stmt,
|
||||
Statement::Execute {
|
||||
name: ObjectName(vec!["a".into()]),
|
||||
name: ObjectName::from(vec!["a".into()]),
|
||||
parameters: vec![],
|
||||
has_parentheses: false,
|
||||
using: vec![
|
||||
|
@ -1793,7 +1793,9 @@ fn parse_pg_on_conflict() {
|
|||
assert_eq!(
|
||||
OnConflictAction::DoUpdate(DoUpdate {
|
||||
assignments: vec![Assignment {
|
||||
target: AssignmentTarget::ColumnName(ObjectName(vec!["dname".into()])),
|
||||
target: AssignmentTarget::ColumnName(ObjectName::from(
|
||||
vec!["dname".into()]
|
||||
)),
|
||||
value: Expr::CompoundIdentifier(vec!["EXCLUDED".into(), "dname".into()])
|
||||
},],
|
||||
selection: None
|
||||
|
@ -1824,14 +1826,18 @@ fn parse_pg_on_conflict() {
|
|||
OnConflictAction::DoUpdate(DoUpdate {
|
||||
assignments: vec![
|
||||
Assignment {
|
||||
target: AssignmentTarget::ColumnName(ObjectName(vec!["dname".into()])),
|
||||
target: AssignmentTarget::ColumnName(ObjectName::from(vec![
|
||||
"dname".into()
|
||||
])),
|
||||
value: Expr::CompoundIdentifier(vec![
|
||||
"EXCLUDED".into(),
|
||||
"dname".into()
|
||||
])
|
||||
},
|
||||
Assignment {
|
||||
target: AssignmentTarget::ColumnName(ObjectName(vec!["area".into()])),
|
||||
target: AssignmentTarget::ColumnName(ObjectName::from(vec![
|
||||
"area".into()
|
||||
])),
|
||||
value: Expr::CompoundIdentifier(vec!["EXCLUDED".into(), "area".into()])
|
||||
},
|
||||
],
|
||||
|
@ -1881,7 +1887,9 @@ fn parse_pg_on_conflict() {
|
|||
assert_eq!(
|
||||
OnConflictAction::DoUpdate(DoUpdate {
|
||||
assignments: vec![Assignment {
|
||||
target: AssignmentTarget::ColumnName(ObjectName(vec!["dname".into()])),
|
||||
target: AssignmentTarget::ColumnName(ObjectName::from(
|
||||
vec!["dname".into()]
|
||||
)),
|
||||
value: Expr::Value(Value::Placeholder("$1".to_string()))
|
||||
},],
|
||||
selection: Some(Expr::BinaryOp {
|
||||
|
@ -1915,11 +1923,16 @@ fn parse_pg_on_conflict() {
|
|||
})),
|
||||
..
|
||||
}) => {
|
||||
assert_eq!(vec![Ident::from("distributors_did_pkey")], cname.0);
|
||||
assert_eq!(
|
||||
ObjectName::from(vec![Ident::from("distributors_did_pkey")]),
|
||||
cname
|
||||
);
|
||||
assert_eq!(
|
||||
OnConflictAction::DoUpdate(DoUpdate {
|
||||
assignments: vec![Assignment {
|
||||
target: AssignmentTarget::ColumnName(ObjectName(vec!["dname".into()])),
|
||||
target: AssignmentTarget::ColumnName(ObjectName::from(
|
||||
vec!["dname".into()]
|
||||
)),
|
||||
value: Expr::Value(Value::Placeholder("$1".to_string()))
|
||||
},],
|
||||
selection: Some(Expr::BinaryOp {
|
||||
|
@ -2624,7 +2637,7 @@ fn parse_array_subquery_expr() {
|
|||
let select = pg().verified_only_select(sql);
|
||||
assert_eq!(
|
||||
&Expr::Function(Function {
|
||||
name: ObjectName(vec![Ident::new("ARRAY")]),
|
||||
name: ObjectName::from(vec![Ident::new("ARRAY")]),
|
||||
uses_odbc_syntax: false,
|
||||
parameters: FunctionArguments::None,
|
||||
args: FunctionArguments::Subquery(Box::new(Query {
|
||||
|
@ -2963,7 +2976,10 @@ fn parse_json_table_is_not_reserved() {
|
|||
TableFactor::Table {
|
||||
name: ObjectName(name),
|
||||
..
|
||||
} => assert_eq!("JSON_TABLE", name[0].value),
|
||||
} => assert_eq!(
|
||||
ObjectNamePart::Identifier(Ident::new("JSON_TABLE")),
|
||||
name[0]
|
||||
),
|
||||
other => panic!("Expected: JSON_TABLE to be parsed as a table name, but got {other:?}"),
|
||||
}
|
||||
}
|
||||
|
@ -3004,7 +3020,7 @@ fn test_composite_value() {
|
|||
SelectItem::UnnamedExpr(Expr::CompositeAccess {
|
||||
key: Ident::new("n"),
|
||||
expr: Box::new(Expr::Nested(Box::new(Expr::Function(Function {
|
||||
name: ObjectName(vec![
|
||||
name: ObjectName::from(vec![
|
||||
Ident::new("information_schema"),
|
||||
Ident::new("_pg_expandarray")
|
||||
]),
|
||||
|
@ -3185,7 +3201,7 @@ fn parse_current_functions() {
|
|||
let select = pg_and_generic().verified_only_select(sql);
|
||||
assert_eq!(
|
||||
&Expr::Function(Function {
|
||||
name: ObjectName(vec![Ident::new("CURRENT_CATALOG")]),
|
||||
name: ObjectName::from(vec![Ident::new("CURRENT_CATALOG")]),
|
||||
uses_odbc_syntax: false,
|
||||
parameters: FunctionArguments::None,
|
||||
args: FunctionArguments::None,
|
||||
|
@ -3198,7 +3214,7 @@ fn parse_current_functions() {
|
|||
);
|
||||
assert_eq!(
|
||||
&Expr::Function(Function {
|
||||
name: ObjectName(vec![Ident::new("CURRENT_USER")]),
|
||||
name: ObjectName::from(vec![Ident::new("CURRENT_USER")]),
|
||||
uses_odbc_syntax: false,
|
||||
parameters: FunctionArguments::None,
|
||||
args: FunctionArguments::None,
|
||||
|
@ -3211,7 +3227,7 @@ fn parse_current_functions() {
|
|||
);
|
||||
assert_eq!(
|
||||
&Expr::Function(Function {
|
||||
name: ObjectName(vec![Ident::new("SESSION_USER")]),
|
||||
name: ObjectName::from(vec![Ident::new("SESSION_USER")]),
|
||||
uses_odbc_syntax: false,
|
||||
parameters: FunctionArguments::None,
|
||||
args: FunctionArguments::None,
|
||||
|
@ -3224,7 +3240,7 @@ fn parse_current_functions() {
|
|||
);
|
||||
assert_eq!(
|
||||
&Expr::Function(Function {
|
||||
name: ObjectName(vec![Ident::new("USER")]),
|
||||
name: ObjectName::from(vec![Ident::new("USER")]),
|
||||
uses_odbc_syntax: false,
|
||||
parameters: FunctionArguments::None,
|
||||
args: FunctionArguments::None,
|
||||
|
@ -3536,7 +3552,7 @@ fn parse_alter_role() {
|
|||
span: Span::empty(),
|
||||
},
|
||||
operation: AlterRoleOperation::Set {
|
||||
config_name: ObjectName(vec![Ident {
|
||||
config_name: ObjectName::from(vec![Ident {
|
||||
value: "maintenance_work_mem".into(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3557,13 +3573,13 @@ fn parse_alter_role() {
|
|||
span: Span::empty(),
|
||||
},
|
||||
operation: AlterRoleOperation::Set {
|
||||
config_name: ObjectName(vec![Ident {
|
||||
config_name: ObjectName::from(vec![Ident {
|
||||
value: "maintenance_work_mem".into(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
}]),
|
||||
config_value: SetConfigValue::Value(Expr::Value(number("100000"))),
|
||||
in_database: Some(ObjectName(vec![Ident {
|
||||
in_database: Some(ObjectName::from(vec![Ident {
|
||||
value: "database_name".into(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3582,13 +3598,13 @@ fn parse_alter_role() {
|
|||
span: Span::empty(),
|
||||
},
|
||||
operation: AlterRoleOperation::Set {
|
||||
config_name: ObjectName(vec![Ident {
|
||||
config_name: ObjectName::from(vec![Ident {
|
||||
value: "maintenance_work_mem".into(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
}]),
|
||||
config_value: SetConfigValue::Value(Expr::Value(number("100000"))),
|
||||
in_database: Some(ObjectName(vec![Ident {
|
||||
in_database: Some(ObjectName::from(vec![Ident {
|
||||
value: "database_name".into(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3607,13 +3623,13 @@ fn parse_alter_role() {
|
|||
span: Span::empty(),
|
||||
},
|
||||
operation: AlterRoleOperation::Set {
|
||||
config_name: ObjectName(vec![Ident {
|
||||
config_name: ObjectName::from(vec![Ident {
|
||||
value: "maintenance_work_mem".into(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
}]),
|
||||
config_value: SetConfigValue::Default,
|
||||
in_database: Some(ObjectName(vec![Ident {
|
||||
in_database: Some(ObjectName::from(vec![Ident {
|
||||
value: "database_name".into(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3648,12 +3664,12 @@ fn parse_alter_role() {
|
|||
span: Span::empty(),
|
||||
},
|
||||
operation: AlterRoleOperation::Reset {
|
||||
config_name: ResetConfig::ConfigName(ObjectName(vec![Ident {
|
||||
config_name: ResetConfig::ConfigName(ObjectName::from(vec![Ident {
|
||||
value: "maintenance_work_mem".into(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
}])),
|
||||
in_database: Some(ObjectName(vec![Ident {
|
||||
in_database: Some(ObjectName::from(vec![Ident {
|
||||
value: "database_name".into(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3679,7 +3695,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());
|
||||
|
@ -3698,7 +3717,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 {
|
||||
|
@ -3754,7 +3773,7 @@ fn parse_create_function() {
|
|||
Statement::CreateFunction(CreateFunction {
|
||||
or_replace: false,
|
||||
temporary: false,
|
||||
name: ObjectName(vec![Ident::new("add")]),
|
||||
name: ObjectName::from(vec![Ident::new("add")]),
|
||||
args: Some(vec![
|
||||
OperateFunctionArg::unnamed(DataType::Integer(None)),
|
||||
OperateFunctionArg::unnamed(DataType::Integer(None)),
|
||||
|
@ -3798,7 +3817,7 @@ fn parse_drop_function() {
|
|||
Statement::DropFunction {
|
||||
if_exists: true,
|
||||
func_desc: vec![FunctionDesc {
|
||||
name: ObjectName(vec![Ident {
|
||||
name: ObjectName::from(vec![Ident {
|
||||
value: "test_func".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3815,7 +3834,7 @@ fn parse_drop_function() {
|
|||
Statement::DropFunction {
|
||||
if_exists: true,
|
||||
func_desc: vec![FunctionDesc {
|
||||
name: ObjectName(vec![Ident {
|
||||
name: ObjectName::from(vec![Ident {
|
||||
value: "test_func".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3841,7 +3860,7 @@ fn parse_drop_function() {
|
|||
if_exists: true,
|
||||
func_desc: vec![
|
||||
FunctionDesc {
|
||||
name: ObjectName(vec![Ident {
|
||||
name: ObjectName::from(vec![Ident {
|
||||
value: "test_func1".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3860,7 +3879,7 @@ fn parse_drop_function() {
|
|||
]),
|
||||
},
|
||||
FunctionDesc {
|
||||
name: ObjectName(vec![Ident {
|
||||
name: ObjectName::from(vec![Ident {
|
||||
value: "test_func2".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3892,7 +3911,7 @@ fn parse_drop_procedure() {
|
|||
Statement::DropProcedure {
|
||||
if_exists: true,
|
||||
proc_desc: vec![FunctionDesc {
|
||||
name: ObjectName(vec![Ident {
|
||||
name: ObjectName::from(vec![Ident {
|
||||
value: "test_proc".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3909,7 +3928,7 @@ fn parse_drop_procedure() {
|
|||
Statement::DropProcedure {
|
||||
if_exists: true,
|
||||
proc_desc: vec![FunctionDesc {
|
||||
name: ObjectName(vec![Ident {
|
||||
name: ObjectName::from(vec![Ident {
|
||||
value: "test_proc".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3935,7 +3954,7 @@ fn parse_drop_procedure() {
|
|||
if_exists: true,
|
||||
proc_desc: vec![
|
||||
FunctionDesc {
|
||||
name: ObjectName(vec![Ident {
|
||||
name: ObjectName::from(vec![Ident {
|
||||
value: "test_proc1".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -3954,7 +3973,7 @@ fn parse_drop_procedure() {
|
|||
]),
|
||||
},
|
||||
FunctionDesc {
|
||||
name: ObjectName(vec![Ident {
|
||||
name: ObjectName::from(vec![Ident {
|
||||
value: "test_proc2".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -4136,7 +4155,7 @@ fn parse_select_group_by_cube() {
|
|||
#[test]
|
||||
fn parse_truncate() {
|
||||
let truncate = pg_and_generic().verified_stmt("TRUNCATE db.table_name");
|
||||
let table_name = ObjectName(vec![Ident::new("db"), Ident::new("table_name")]);
|
||||
let table_name = ObjectName::from(vec![Ident::new("db"), Ident::new("table_name")]);
|
||||
let table_names = vec![TruncateTableTarget {
|
||||
name: table_name.clone(),
|
||||
}];
|
||||
|
@ -4159,7 +4178,7 @@ fn parse_truncate_with_options() {
|
|||
let truncate = pg_and_generic()
|
||||
.verified_stmt("TRUNCATE TABLE ONLY db.table_name RESTART IDENTITY CASCADE");
|
||||
|
||||
let table_name = ObjectName(vec![Ident::new("db"), Ident::new("table_name")]);
|
||||
let table_name = ObjectName::from(vec![Ident::new("db"), Ident::new("table_name")]);
|
||||
let table_names = vec![TruncateTableTarget {
|
||||
name: table_name.clone(),
|
||||
}];
|
||||
|
@ -4184,8 +4203,8 @@ fn parse_truncate_with_table_list() {
|
|||
"TRUNCATE TABLE db.table_name, db.other_table_name RESTART IDENTITY CASCADE",
|
||||
);
|
||||
|
||||
let table_name_a = ObjectName(vec![Ident::new("db"), Ident::new("table_name")]);
|
||||
let table_name_b = ObjectName(vec![Ident::new("db"), Ident::new("other_table_name")]);
|
||||
let table_name_a = ObjectName::from(vec![Ident::new("db"), Ident::new("table_name")]);
|
||||
let table_name_b = ObjectName::from(vec![Ident::new("db"), Ident::new("other_table_name")]);
|
||||
|
||||
let table_names = vec![
|
||||
TruncateTableTarget {
|
||||
|
@ -4381,7 +4400,7 @@ fn test_simple_postgres_insert_with_alias() {
|
|||
or: None,
|
||||
ignore: false,
|
||||
into: true,
|
||||
table: TableObject::TableName(ObjectName(vec![Ident {
|
||||
table: TableObject::TableName(ObjectName::from(vec![Ident {
|
||||
value: "test_tables".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -4451,7 +4470,7 @@ fn test_simple_postgres_insert_with_alias() {
|
|||
or: None,
|
||||
ignore: false,
|
||||
into: true,
|
||||
table: TableObject::TableName(ObjectName(vec![Ident {
|
||||
table: TableObject::TableName(ObjectName::from(vec![Ident {
|
||||
value: "test_tables".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -4523,7 +4542,7 @@ fn test_simple_insert_with_quoted_alias() {
|
|||
or: None,
|
||||
ignore: false,
|
||||
into: true,
|
||||
table: TableObject::TableName(ObjectName(vec![Ident {
|
||||
table: TableObject::TableName(ObjectName::from(vec![Ident {
|
||||
value: "test_tables".to_string(),
|
||||
quote_style: None,
|
||||
span: Span::empty(),
|
||||
|
@ -4720,10 +4739,10 @@ fn parse_create_simple_before_insert_trigger() {
|
|||
let expected = Statement::CreateTrigger {
|
||||
or_replace: false,
|
||||
is_constraint: false,
|
||||
name: ObjectName(vec![Ident::new("check_insert")]),
|
||||
name: ObjectName::from(vec![Ident::new("check_insert")]),
|
||||
period: TriggerPeriod::Before,
|
||||
events: vec![TriggerEvent::Insert],
|
||||
table_name: ObjectName(vec![Ident::new("accounts")]),
|
||||
table_name: ObjectName::from(vec![Ident::new("accounts")]),
|
||||
referenced_table_name: None,
|
||||
referencing: vec![],
|
||||
trigger_object: TriggerObject::Row,
|
||||
|
@ -4732,7 +4751,7 @@ fn parse_create_simple_before_insert_trigger() {
|
|||
exec_body: TriggerExecBody {
|
||||
exec_type: TriggerExecBodyType::Function,
|
||||
func_desc: FunctionDesc {
|
||||
name: ObjectName(vec![Ident::new("check_account_insert")]),
|
||||
name: ObjectName::from(vec![Ident::new("check_account_insert")]),
|
||||
args: None,
|
||||
},
|
||||
},
|
||||
|
@ -4748,10 +4767,10 @@ fn parse_create_after_update_trigger_with_condition() {
|
|||
let expected = Statement::CreateTrigger {
|
||||
or_replace: false,
|
||||
is_constraint: false,
|
||||
name: ObjectName(vec![Ident::new("check_update")]),
|
||||
name: ObjectName::from(vec![Ident::new("check_update")]),
|
||||
period: TriggerPeriod::After,
|
||||
events: vec![TriggerEvent::Update(vec![])],
|
||||
table_name: ObjectName(vec![Ident::new("accounts")]),
|
||||
table_name: ObjectName::from(vec![Ident::new("accounts")]),
|
||||
referenced_table_name: None,
|
||||
referencing: vec![],
|
||||
trigger_object: TriggerObject::Row,
|
||||
|
@ -4767,7 +4786,7 @@ fn parse_create_after_update_trigger_with_condition() {
|
|||
exec_body: TriggerExecBody {
|
||||
exec_type: TriggerExecBodyType::Function,
|
||||
func_desc: FunctionDesc {
|
||||
name: ObjectName(vec![Ident::new("check_account_update")]),
|
||||
name: ObjectName::from(vec![Ident::new("check_account_update")]),
|
||||
args: None,
|
||||
},
|
||||
},
|
||||
|
@ -4783,10 +4802,10 @@ fn parse_create_instead_of_delete_trigger() {
|
|||
let expected = Statement::CreateTrigger {
|
||||
or_replace: false,
|
||||
is_constraint: false,
|
||||
name: ObjectName(vec![Ident::new("check_delete")]),
|
||||
name: ObjectName::from(vec![Ident::new("check_delete")]),
|
||||
period: TriggerPeriod::InsteadOf,
|
||||
events: vec![TriggerEvent::Delete],
|
||||
table_name: ObjectName(vec![Ident::new("accounts")]),
|
||||
table_name: ObjectName::from(vec![Ident::new("accounts")]),
|
||||
referenced_table_name: None,
|
||||
referencing: vec![],
|
||||
trigger_object: TriggerObject::Row,
|
||||
|
@ -4795,7 +4814,7 @@ fn parse_create_instead_of_delete_trigger() {
|
|||
exec_body: TriggerExecBody {
|
||||
exec_type: TriggerExecBodyType::Function,
|
||||
func_desc: FunctionDesc {
|
||||
name: ObjectName(vec![Ident::new("check_account_deletes")]),
|
||||
name: ObjectName::from(vec![Ident::new("check_account_deletes")]),
|
||||
args: None,
|
||||
},
|
||||
},
|
||||
|
@ -4811,14 +4830,14 @@ fn parse_create_trigger_with_multiple_events_and_deferrable() {
|
|||
let expected = Statement::CreateTrigger {
|
||||
or_replace: false,
|
||||
is_constraint: true,
|
||||
name: ObjectName(vec![Ident::new("check_multiple_events")]),
|
||||
name: ObjectName::from(vec![Ident::new("check_multiple_events")]),
|
||||
period: TriggerPeriod::Before,
|
||||
events: vec![
|
||||
TriggerEvent::Insert,
|
||||
TriggerEvent::Update(vec![]),
|
||||
TriggerEvent::Delete,
|
||||
],
|
||||
table_name: ObjectName(vec![Ident::new("accounts")]),
|
||||
table_name: ObjectName::from(vec![Ident::new("accounts")]),
|
||||
referenced_table_name: None,
|
||||
referencing: vec![],
|
||||
trigger_object: TriggerObject::Row,
|
||||
|
@ -4827,7 +4846,7 @@ fn parse_create_trigger_with_multiple_events_and_deferrable() {
|
|||
exec_body: TriggerExecBody {
|
||||
exec_type: TriggerExecBodyType::Function,
|
||||
func_desc: FunctionDesc {
|
||||
name: ObjectName(vec![Ident::new("check_account_changes")]),
|
||||
name: ObjectName::from(vec![Ident::new("check_account_changes")]),
|
||||
args: None,
|
||||
},
|
||||
},
|
||||
|
@ -4847,21 +4866,21 @@ fn parse_create_trigger_with_referencing() {
|
|||
let expected = Statement::CreateTrigger {
|
||||
or_replace: false,
|
||||
is_constraint: false,
|
||||
name: ObjectName(vec![Ident::new("check_referencing")]),
|
||||
name: ObjectName::from(vec![Ident::new("check_referencing")]),
|
||||
period: TriggerPeriod::Before,
|
||||
events: vec![TriggerEvent::Insert],
|
||||
table_name: ObjectName(vec![Ident::new("accounts")]),
|
||||
table_name: ObjectName::from(vec![Ident::new("accounts")]),
|
||||
referenced_table_name: None,
|
||||
referencing: vec![
|
||||
TriggerReferencing {
|
||||
refer_type: TriggerReferencingType::NewTable,
|
||||
is_as: true,
|
||||
transition_relation_name: ObjectName(vec![Ident::new("new_accounts")]),
|
||||
transition_relation_name: ObjectName::from(vec![Ident::new("new_accounts")]),
|
||||
},
|
||||
TriggerReferencing {
|
||||
refer_type: TriggerReferencingType::OldTable,
|
||||
is_as: true,
|
||||
transition_relation_name: ObjectName(vec![Ident::new("old_accounts")]),
|
||||
transition_relation_name: ObjectName::from(vec![Ident::new("old_accounts")]),
|
||||
},
|
||||
],
|
||||
trigger_object: TriggerObject::Row,
|
||||
|
@ -4870,7 +4889,7 @@ fn parse_create_trigger_with_referencing() {
|
|||
exec_body: TriggerExecBody {
|
||||
exec_type: TriggerExecBodyType::Function,
|
||||
func_desc: FunctionDesc {
|
||||
name: ObjectName(vec![Ident::new("check_account_referencing")]),
|
||||
name: ObjectName::from(vec![Ident::new("check_account_referencing")]),
|
||||
args: None,
|
||||
},
|
||||
},
|
||||
|
@ -4929,8 +4948,8 @@ fn parse_drop_trigger() {
|
|||
pg().verified_stmt(sql),
|
||||
Statement::DropTrigger {
|
||||
if_exists,
|
||||
trigger_name: ObjectName(vec![Ident::new("check_update")]),
|
||||
table_name: ObjectName(vec![Ident::new("table_name")]),
|
||||
trigger_name: ObjectName::from(vec![Ident::new("check_update")]),
|
||||
table_name: ObjectName::from(vec![Ident::new("table_name")]),
|
||||
option
|
||||
}
|
||||
);
|
||||
|
@ -5044,7 +5063,7 @@ fn parse_trigger_related_functions() {
|
|||
transient: false,
|
||||
volatile: false,
|
||||
iceberg: false,
|
||||
name: ObjectName(vec![Ident::new("emp")]),
|
||||
name: ObjectName::from(vec![Ident::new("emp")]),
|
||||
columns: vec![
|
||||
ColumnDef {
|
||||
name: "empname".into(),
|
||||
|
@ -5126,7 +5145,7 @@ fn parse_trigger_related_functions() {
|
|||
or_replace: false,
|
||||
temporary: false,
|
||||
if_not_exists: false,
|
||||
name: ObjectName(vec![Ident::new("emp_stamp")]),
|
||||
name: ObjectName::from(vec![Ident::new("emp_stamp")]),
|
||||
args: None,
|
||||
return_type: Some(DataType::Trigger),
|
||||
function_body: Some(
|
||||
|
@ -5161,10 +5180,10 @@ fn parse_trigger_related_functions() {
|
|||
Statement::CreateTrigger {
|
||||
or_replace: false,
|
||||
is_constraint: false,
|
||||
name: ObjectName(vec![Ident::new("emp_stamp")]),
|
||||
name: ObjectName::from(vec![Ident::new("emp_stamp")]),
|
||||
period: TriggerPeriod::Before,
|
||||
events: vec![TriggerEvent::Insert, TriggerEvent::Update(vec![])],
|
||||
table_name: ObjectName(vec![Ident::new("emp")]),
|
||||
table_name: ObjectName::from(vec![Ident::new("emp")]),
|
||||
referenced_table_name: None,
|
||||
referencing: vec![],
|
||||
trigger_object: TriggerObject::Row,
|
||||
|
@ -5173,7 +5192,7 @@ fn parse_trigger_related_functions() {
|
|||
exec_body: TriggerExecBody {
|
||||
exec_type: TriggerExecBodyType::Function,
|
||||
func_desc: FunctionDesc {
|
||||
name: ObjectName(vec![Ident::new("emp_stamp")]),
|
||||
name: ObjectName::from(vec![Ident::new("emp_stamp")]),
|
||||
args: None,
|
||||
}
|
||||
},
|
||||
|
@ -5186,8 +5205,8 @@ fn parse_trigger_related_functions() {
|
|||
drop_trigger,
|
||||
Statement::DropTrigger {
|
||||
if_exists: false,
|
||||
trigger_name: ObjectName(vec![Ident::new("emp_stamp")]),
|
||||
table_name: ObjectName(vec![Ident::new("emp")]),
|
||||
trigger_name: ObjectName::from(vec![Ident::new("emp_stamp")]),
|
||||
table_name: ObjectName::from(vec![Ident::new("emp")]),
|
||||
option: None
|
||||
}
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue