findUniqueIndexByColumns method
If a UNIQUE secondary index exists whose column list is exactly
columnNames (case-insensitive, order-sensitive), return its
name. Used by INSERT … ON CONFLICT (cols) to resolve the
conflict target to a unique constraint.
Implementation
String? findUniqueIndexByColumns(List<String> columnNames) {
final lower = [for (final c in columnNames) c.toLowerCase()];
for (final si in _secondary.values) {
if (!si.unique) continue;
if (si.columns.length != lower.length) continue;
var match = true;
for (var i = 0; i < lower.length; i++) {
if (si.columns[i].toLowerCase() != lower[i]) {
match = false;
break;
}
}
if (match) return si.name;
}
return null;
}