mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-08-04 06:18:17 +00:00
Simplify custom datatypes handling and add a test
1) Simplified the bit in parse_datatype()
2) Made sure it was covered by the test (the "public.year" bit)
2a) ...the rest of changes in the test are to fix incorrect variable
names: c_name/c_lat/c_lng were copy-pasted from a previous test.
3) Removed the branch from parse_pg_cast, which duplicated what
parse_data_type already handled (added in the same commit even
2007995938
)
This commit is contained in:
parent
7c6e6970fa
commit
f21cd697c3
2 changed files with 25 additions and 28 deletions
|
@ -517,20 +517,26 @@ fn parse_create_table_from_pg_dump() {
|
|||
ASTNode::SQLCreateTable { name, columns } => {
|
||||
assert_eq!("public.customer", name);
|
||||
|
||||
let c_name = &columns[0];
|
||||
assert_eq!("customer_id", c_name.name);
|
||||
assert_eq!(SQLType::Int, c_name.data_type);
|
||||
assert_eq!(false, c_name.allow_null);
|
||||
let c_customer_id = &columns[0];
|
||||
assert_eq!("customer_id", c_customer_id.name);
|
||||
assert_eq!(SQLType::Int, c_customer_id.data_type);
|
||||
assert_eq!(false, c_customer_id.allow_null);
|
||||
|
||||
let c_lat = &columns[1];
|
||||
assert_eq!("store_id", c_lat.name);
|
||||
assert_eq!(SQLType::SmallInt, c_lat.data_type);
|
||||
assert_eq!(false, c_lat.allow_null);
|
||||
let c_store_id = &columns[1];
|
||||
assert_eq!("store_id", c_store_id.name);
|
||||
assert_eq!(SQLType::SmallInt, c_store_id.data_type);
|
||||
assert_eq!(false, c_store_id.allow_null);
|
||||
|
||||
let c_lng = &columns[2];
|
||||
assert_eq!("first_name", c_lng.name);
|
||||
assert_eq!(SQLType::Varchar(Some(45)), c_lng.data_type);
|
||||
assert_eq!(false, c_lng.allow_null);
|
||||
let c_first_name = &columns[2];
|
||||
assert_eq!("first_name", c_first_name.name);
|
||||
assert_eq!(SQLType::Varchar(Some(45)), c_first_name.data_type);
|
||||
assert_eq!(false, c_first_name.allow_null);
|
||||
|
||||
let c_release_year = &columns[10];
|
||||
assert_eq!(
|
||||
SQLType::Custom("public.year".to_string()),
|
||||
c_release_year.data_type
|
||||
);
|
||||
}
|
||||
_ => assert!(false),
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue