fix(sqlserver): preserve database-qualified editing targets
This commit is contained in:
1 parent
9d7f87feb8
commit
b89e0079a5
4 files changed
+132
-15
No files matched your search
@@ -4183,6 +4183,35 @@ mod tests {
|
||||
assert_eq!(result.statements, vec!["UPDATE [dbo].[users] SET [UserId] = 144847503924137986 WHERE [Id] = 1;"]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn prepares_sqlserver_cross_database_update() {
|
||||
let result = prepare_data_grid_save(DataGridSaveStatementOptions {
|
||||
database_type: Some(DatabaseType::SqlServer),
|
||||
identifier_quote: None,
|
||||
table_meta: DataGridTableMeta {
|
||||
catalog: Some("BarDB".to_string()),
|
||||
database: Some("BarDB".to_string()),
|
||||
schema: Some("dbo".to_string()),
|
||||
table_name: "TUser".to_string(),
|
||||
primary_keys: vec!["ID".to_string()],
|
||||
columns: Some(vec![column("ID", "int", false, None), column("UserId", "bigint", false, None)]),
|
||||
},
|
||||
columns: vec!["ID".to_string(), "UserId".to_string()],
|
||||
source_columns: None,
|
||||
rows: vec![vec![json!(1), json!(10279)]],
|
||||
dirty_rows: vec![(0, vec![(1, json!(10280))])],
|
||||
deleted_rows: vec![],
|
||||
new_rows: vec![],
|
||||
});
|
||||
|
||||
assert_eq!(result.validation_error, None);
|
||||
assert_eq!(result.statements, vec!["UPDATE [BarDB].[dbo].[TUser] SET [UserId] = 10280 WHERE [ID] = 1;"]);
|
||||
assert_eq!(
|
||||
result.rollback_statements,
|
||||
vec!["UPDATE [BarDB].[dbo].[TUser] SET [UserId] = 10279 WHERE [ID] = 1 AND [UserId] = 10280;"]
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn prepares_kingbase_update_when_source_primary_key_case_differs() {
|
||||
let result = prepare_data_grid_save(DataGridSaveStatementOptions {
|
||||
|
||||
Reference in new issue
Block a user