From 4a5730c5245b3085a857993f23be8558591d215d Mon Sep 17 00:00:00 2001 From: Jesse Stuart Date: Thu, 9 Apr 2026 11:45:24 -0400 Subject: [PATCH 1/2] fix: don't generate empty ALTER TABLE when nothing changed --- src/diff.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/diff.rs b/src/diff.rs index 86a6981..300058f 100644 --- a/src/diff.rs +++ b/src/diff.rs @@ -342,7 +342,7 @@ fn compare_create_table(a: &CreateTable, b: &CreateTable) -> Option = a.columns.iter().map(|c| c.name.clone()).collect(); let b_column_names: HashSet<_> = b.columns.iter().map(|c| c.name.clone()).collect(); - let ops = a + let operations: Vec<_> = a .columns .iter() .filter_map(|ac| { @@ -373,11 +373,15 @@ fn compare_create_table(a: &CreateTable, b: &CreateTable) -> Option Date: Thu, 9 Apr 2026 11:36:16 -0400 Subject: [PATCH 2/2] fix: column names are equal regardless of quote style --- src/diff.rs | 8 ++++---- src/lib.rs | 36 ++++++++++++++++++++++++++++++------ src/migration.rs | 2 +- 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/diff.rs b/src/diff.rs index 300058f..7a5a66a 100644 --- a/src/diff.rs +++ b/src/diff.rs @@ -339,14 +339,14 @@ fn compare_create_table(a: &CreateTable, b: &CreateTable) -> Option = a.columns.iter().map(|c| c.name.clone()).collect(); - let b_column_names: HashSet<_> = b.columns.iter().map(|c| c.name.clone()).collect(); + let a_column_names: HashSet<_> = a.columns.iter().map(|c| c.name.value.clone()).collect(); + let b_column_names: HashSet<_> = b.columns.iter().map(|c| c.name.value.clone()).collect(); let operations: Vec<_> = a .columns .iter() .filter_map(|ac| { - if b_column_names.contains(&ac.name) { + if b_column_names.contains(&ac.name.value) { None } else { // drop column if it only exists in `a` @@ -359,7 +359,7 @@ fn compare_create_table(a: &CreateTable, b: &CreateTable) -> Option { - t.columns.retain(|c| c.name != *column_name); + t.columns.retain(|c| c.name.value != *column_name.value); } AlterTableOperation::AlterColumn { column_name, op } => { t.columns.iter_mut().for_each(|c| {