mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-07-13 19:45:00 +00:00
improvements after review
This commit is contained in:
parent
1b916b8781
commit
77b868b0a2
4 changed files with 126 additions and 98 deletions
|
@ -6234,21 +6234,21 @@ fn parse_ts_datatypes() {
|
|||
|
||||
#[test]
|
||||
fn parse_create_server() {
|
||||
assert_eq!(
|
||||
pg_and_generic().verified_stmt("CREATE SERVER myserver FOREIGN DATA WRAPPER postgres_fdw"),
|
||||
Statement::CreateServer {
|
||||
name: ObjectName::from(vec!["myserver".into()]),
|
||||
if_not_exists: false,
|
||||
server_type: None,
|
||||
version: None,
|
||||
foreign_data_wrapper: ObjectName::from(vec!["postgres_fdw".into()]),
|
||||
options: None,
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
pg_and_generic().verified_stmt("CREATE SERVER IF NOT EXISTS myserver TYPE 'server_type' VERSION 'server_version' FOREIGN DATA WRAPPER postgres_fdw"),
|
||||
Statement::CreateServer {
|
||||
let test_cases = vec![
|
||||
(
|
||||
"CREATE SERVER myserver FOREIGN DATA WRAPPER postgres_fdw",
|
||||
CreateServerStatement {
|
||||
name: ObjectName::from(vec!["myserver".into()]),
|
||||
if_not_exists: false,
|
||||
server_type: None,
|
||||
version: None,
|
||||
foreign_data_wrapper: ObjectName::from(vec!["postgres_fdw".into()]),
|
||||
options: None,
|
||||
},
|
||||
),
|
||||
(
|
||||
"CREATE SERVER IF NOT EXISTS myserver TYPE 'server_type' VERSION 'server_version' FOREIGN DATA WRAPPER postgres_fdw",
|
||||
CreateServerStatement {
|
||||
name: ObjectName::from(vec!["myserver".into()]),
|
||||
if_not_exists: true,
|
||||
server_type: Some(Ident {
|
||||
|
@ -6264,42 +6264,49 @@ fn parse_create_server() {
|
|||
foreign_data_wrapper: ObjectName::from(vec!["postgres_fdw".into()]),
|
||||
options: None,
|
||||
}
|
||||
);
|
||||
),
|
||||
(
|
||||
"CREATE SERVER myserver2 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'foo', dbname 'foodb', port '5432')",
|
||||
CreateServerStatement {
|
||||
name: ObjectName::from(vec!["myserver2".into()]),
|
||||
if_not_exists: false,
|
||||
server_type: None,
|
||||
version: None,
|
||||
foreign_data_wrapper: ObjectName::from(vec!["postgres_fdw".into()]),
|
||||
options: Some(vec![
|
||||
CreateServerOption {
|
||||
key: "host".into(),
|
||||
value: Ident {
|
||||
value: "foo".to_string(),
|
||||
quote_style: Some('\''),
|
||||
span: Span::empty(),
|
||||
},
|
||||
},
|
||||
CreateServerOption {
|
||||
key: "dbname".into(),
|
||||
value: Ident {
|
||||
value: "foodb".to_string(),
|
||||
quote_style: Some('\''),
|
||||
span: Span::empty(),
|
||||
},
|
||||
},
|
||||
CreateServerOption {
|
||||
key: "port".into(),
|
||||
value: Ident {
|
||||
value: "5432".to_string(),
|
||||
quote_style: Some('\''),
|
||||
span: Span::empty(),
|
||||
},
|
||||
},
|
||||
]),
|
||||
}
|
||||
)
|
||||
];
|
||||
|
||||
assert_eq!(
|
||||
pg_and_generic().verified_stmt("CREATE SERVER myserver2 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'foo', dbname 'foodb', port '5432')"),
|
||||
Statement::CreateServer {
|
||||
name: ObjectName::from(vec!["myserver2".into()]),
|
||||
if_not_exists: false,
|
||||
server_type: None,
|
||||
version: None,
|
||||
foreign_data_wrapper: ObjectName::from(vec!["postgres_fdw".into()]),
|
||||
options: Some(vec![
|
||||
ServerOption {
|
||||
key: "host".into(),
|
||||
value: Ident {
|
||||
value: "foo".to_string(),
|
||||
quote_style: Some('\''),
|
||||
span: Span::empty(),
|
||||
},
|
||||
},
|
||||
ServerOption {
|
||||
key: "dbname".into(),
|
||||
value: Ident {
|
||||
value: "foodb".to_string(),
|
||||
quote_style: Some('\''),
|
||||
span: Span::empty(),
|
||||
},
|
||||
},
|
||||
ServerOption {
|
||||
key: "port".into(),
|
||||
value: Ident {
|
||||
value: "5432".to_string(),
|
||||
quote_style: Some('\''),
|
||||
span: Span::empty(),
|
||||
},
|
||||
},
|
||||
]),
|
||||
}
|
||||
)
|
||||
for (sql, expected) in test_cases {
|
||||
let Statement::CreateServer(stmt) = pg_and_generic().verified_stmt(sql) else {
|
||||
unreachable!()
|
||||
};
|
||||
assert_eq!(stmt, expected);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue