From 9fa1420535f039c13b0d27cc43d98099a501c760 Mon Sep 17 00:00:00 2001 From: Michal Fox Date: Tue, 29 Sep 2026 15:57:45 +0200 Subject: [PATCH] Read mssql index columns in key order Index.Equal compares columns by position, but the mssql GetIndexes query had no ORDER BY, so the column order it returned was up to the query plan. --- dialects/mssql.go | 1 + 1 file changed, 1 insertion(+) diff --git a/dialects/mssql.go b/dialects/mssql.go index b7ae258..b5326d2 100644 --- a/dialects/mssql.go +++ b/dialects/mssql.go @@ -604,6 +604,7 @@ ON IXS.OBJECT_ID=IXCS.OBJECT_ID AND IXS.INDEX_ID = IXCS.INDEX_ID INNER JOIN sys.columns C ON IXS.OBJECT_ID=C.OBJECT_ID AND IXCS.COLUMN_ID=C.COLUMN_ID WHERE IXS.TYPE_DESC='NONCLUSTERED' and OBJECT_NAME(IXS.OBJECT_ID) =? +ORDER BY IXS.INDEX_ID, IXCS.IS_INCLUDED_COLUMN, IXCS.KEY_ORDINAL, IXCS.INDEX_COLUMN_ID ` rows, err := queryer.QueryContext(ctx, s, args...)