mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-12-23 11:12:51 +00:00
Improve PARTITION OF error handling and add tests.
- Add explicit check for FOR/DEFAULT after PARTITION OF with clear error message - Document intentional removal of dialect check for multi-dialect tool support - Add negative test cases for malformed PARTITION OF syntax
This commit is contained in:
parent
7f7e6ba665
commit
f6611715e0
2 changed files with 50 additions and 1 deletions
|
|
@ -8104,3 +8104,42 @@ CONSTRAINT check_date CHECK (order_date >= '2023-01-01')\
|
|||
_ => panic!("Expected CreateTable"),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_create_table_partition_of_errors() {
|
||||
let sql = "CREATE TABLE p PARTITION OF parent";
|
||||
let result = pg_and_generic().parse_sql_statements(sql);
|
||||
assert!(result.is_err());
|
||||
let err = result.unwrap_err().to_string();
|
||||
assert!(
|
||||
err.contains("FOR VALUES or DEFAULT"),
|
||||
"Expected error about FOR VALUES, got: {err}"
|
||||
);
|
||||
|
||||
let sql = "CREATE TABLE p PARTITION OF parent WITH (fillfactor = 70)";
|
||||
let result = pg_and_generic().parse_sql_statements(sql);
|
||||
assert!(result.is_err());
|
||||
let err = result.unwrap_err().to_string();
|
||||
assert!(
|
||||
err.contains("FOR VALUES or DEFAULT"),
|
||||
"Expected error about FOR VALUES, got: {err}"
|
||||
);
|
||||
|
||||
let sql = "CREATE TABLE p PARTITION OF parent FOR VALUES RANGE (1, 10)";
|
||||
let result = pg_and_generic().parse_sql_statements(sql);
|
||||
assert!(result.is_err());
|
||||
let err = result.unwrap_err().to_string();
|
||||
assert!(
|
||||
err.contains("IN, FROM, or WITH"),
|
||||
"Expected error about invalid keyword after FOR VALUES, got: {err}"
|
||||
);
|
||||
|
||||
let sql = "CREATE TABLE p PARTITION OF parent FOR VALUES FROM (1)";
|
||||
let result = pg_and_generic().parse_sql_statements(sql);
|
||||
assert!(result.is_err());
|
||||
let err = result.unwrap_err().to_string();
|
||||
assert!(
|
||||
err.contains("TO"),
|
||||
"Expected error about missing TO clause, got: {err}"
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue