From 107b6a419d852d0614e8c201e12fdb717dd19fff Mon Sep 17 00:00:00 2001 From: Andrew Werner Date: Wed, 25 Nov 2020 12:24:24 -0500 Subject: [PATCH] tabledesc: fix bug in unupgraded descriptor validation In the haste of #57066 we erroneously checked the origin rather than reference column ID when validating an inbound fk reference. The tests did not catch this error because the column IDs were the same on both sides. Release note (bug fix): Fix a bug related validation of unupgraded pre-19.2 inbound foreign keys. --- pkg/sql/catalog/tabledesc/structured.go | 2 +- pkg/sql/catalog/tabledesc/structured_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/sql/catalog/tabledesc/structured.go b/pkg/sql/catalog/tabledesc/structured.go index 63e59c01833a..6bce78f37db1 100644 --- a/pkg/sql/catalog/tabledesc/structured.go +++ b/pkg/sql/catalog/tabledesc/structured.go @@ -1657,7 +1657,7 @@ func (desc *Immutable) validateCrossReferences(ctx context.Context, dg catalog.D fk.Index, desc.Name, backref.Name, originTable.GetName(), ) } - if originalReferencedIndex.IsValidReferencedIndex(backref.OriginColumnIDs) { + if originalReferencedIndex.IsValidReferencedIndex(backref.ReferencedColumnIDs) { found = true } return nil diff --git a/pkg/sql/catalog/tabledesc/structured_test.go b/pkg/sql/catalog/tabledesc/structured_test.go index 47d8110f4002..12b79827311d 100644 --- a/pkg/sql/catalog/tabledesc/structured_test.go +++ b/pkg/sql/catalog/tabledesc/structured_test.go @@ -821,7 +821,7 @@ func TestValidateCrossTableReferences(t *testing.T) { Indexes: []descpb.IndexDescriptor{ { ID: 2, - ColumnIDs: []descpb.ColumnID{1}, + ColumnIDs: []descpb.ColumnID{7}, Unique: true, }, }, @@ -831,7 +831,7 @@ func TestValidateCrossTableReferences(t *testing.T) { ReferencedTableID: 51, ReferencedColumnIDs: []descpb.ColumnID{1}, OriginTableID: 52, - OriginColumnIDs: []descpb.ColumnID{1}, + OriginColumnIDs: []descpb.ColumnID{7}, }, }, },