Skip to content

Commit a9bab82

Browse files
authored
schemadiff: consistent key ordering in table diff (#17141)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
1 parent 9ed8ee2 commit a9bab82

File tree

4 files changed

+25
-5
lines changed

4 files changed

+25
-5
lines changed

go/vt/schemadiff/schema_diff.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,8 +280,8 @@ func (d *SchemaDiff) UnorderedDiffs() []EntityDiff {
280280
return d.diffs
281281
}
282282

283-
// AllDependenciess returns all known dependencies
284-
func (d *SchemaDiff) AllDependenciess() (deps []*DiffDependency) {
283+
// AllDependencies returns all known dependencies
284+
func (d *SchemaDiff) AllDependencies() (deps []*DiffDependency) {
285285
for _, dep := range d.dependencies {
286286
deps = append(deps, dep)
287287
}

go/vt/schemadiff/schema_diff_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1272,7 +1272,7 @@ func TestSchemaDiff(t *testing.T) {
12721272
}
12731273
assert.Equalf(t, tc.expectDiffs, len(allDiffs), "found diffs: %v", allDiffsStatements)
12741274

1275-
deps := schemaDiff.AllDependenciess()
1275+
deps := schemaDiff.AllDependencies()
12761276
depsKeys := []string{}
12771277
for _, dep := range deps {
12781278
depsKeys = append(depsKeys, dep.hashKey())

go/vt/schemadiff/table.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1711,8 +1711,10 @@ func (c *CreateTableEntity) diffKeys(alterTable *sqlparser.AlterTable,
17111711
}
17121712
}
17131713
}
1714-
for _, stmt := range dropKeyStatements {
1715-
alterTable.AlterOptions = append(alterTable.AlterOptions, stmt)
1714+
for _, t1Key := range t1Keys {
1715+
if stmt, ok := dropKeyStatements[t1Key.Info.Name.String()]; ok {
1716+
alterTable.AlterOptions = append(alterTable.AlterOptions, stmt)
1717+
}
17161718
}
17171719
return superfluousFulltextKeys
17181720
}

go/vt/schemadiff/table_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,24 @@ func TestCreateTableDiff(t *testing.T) {
733733
"- KEY `i_idx` (`i`)",
734734
},
735735
},
736+
{
737+
name: "multiple dropped keys and columns",
738+
from: "create table t1 (`id` int, i1 int, i2 int, i3 int, primary key (id), key k1(i1), key k2(i2), key k3(i1), key k4(i2), key k5(i1), key k6(i2))",
739+
to: "create table t1 (`id` int, primary key (id))",
740+
diff: "alter table t1 drop key k1, drop key k2, drop key k3, drop key k4, drop key k5, drop key k6, drop column i1, drop column i2, drop column i3",
741+
cdiff: "ALTER TABLE `t1` DROP KEY `k1`, DROP KEY `k2`, DROP KEY `k3`, DROP KEY `k4`, DROP KEY `k5`, DROP KEY `k6`, DROP COLUMN `i1`, DROP COLUMN `i2`, DROP COLUMN `i3`",
742+
textdiffs: []string{
743+
"- KEY `k1` (`i1`)",
744+
"- KEY `k2` (`i2`)",
745+
"- KEY `k3` (`i1`)",
746+
"- KEY `k4` (`i2`)",
747+
"- KEY `k5` (`i1`)",
748+
"- KEY `k6` (`i2`)",
749+
"- `i1` int,",
750+
"- `i2` int,",
751+
"- `i3` int,",
752+
},
753+
},
736754
{
737755
name: "modified key",
738756
from: "create table t1 (`id` int primary key, i int, key i_idx(i))",

0 commit comments

Comments
 (0)