findUniqueIndexByColumns method

String? findUniqueIndexByColumns(
  1. List<String> columnNames
)

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;
}