public override string CreateIndex(Index index) {
var statement = base.CreateIndex(index);
if (index.IsUnique && index.Columns.Any(c => c.IsNullable)) {
var whereClause = new StringBuilder();
whereClause.Append(" where ");
bool first = true;
foreach (var column in index.Columns.Where(c => c.IsNullable)) {
if (!first) {
whereClause.Append(" and ");
}
this.AppendQuotedName(whereClause, column.DbName);
whereClause.Append(" is not null");
first = false;
}
statement += whereClause.ToString();
}
return statement;
}