diff --git a/src/NHibernate.Test/NHSpecificTest/NH3749/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH3749/Fixture.cs new file mode 100644 index 00000000000..6c22f1ab138 --- /dev/null +++ b/src/NHibernate.Test/NHSpecificTest/NH3749/Fixture.cs @@ -0,0 +1,30 @@ +using NUnit.Framework; +using NHibernate.Mapping; + +namespace NHibernate.Test.NHSpecificTest.NH3749 +{ + [TestFixture] + public class Fixture + { + [Test] + public void SupportsNotNullUniqueFalse() + { + Table tbl = new Table(); + tbl.Name = "Table"; + + Column column = new Column("Column"); + column.IsNullable = true; + + UniqueKey uk = new UniqueKey { Name = "UniqueKey", Table = tbl }; + uk.Columns.Add(column); + + tbl.AddUniqueKey(uk); + + Dialect.Dialect dialect = new TestDialect(); + + string sql = tbl.SqlCreateString(dialect, null, "", ""); + + Assert.IsFalse(sql.Contains(",)"), "Create command has unnecessary comma: " + sql); + } + } +} diff --git a/src/NHibernate.Test/NHSpecificTest/NH3749/TestDialect.cs b/src/NHibernate.Test/NHSpecificTest/NH3749/TestDialect.cs new file mode 100644 index 00000000000..a5beb5d72b8 --- /dev/null +++ b/src/NHibernate.Test/NHSpecificTest/NH3749/TestDialect.cs @@ -0,0 +1,11 @@ + +namespace NHibernate.Test.NHSpecificTest.NH3749 +{ + public class TestDialect : Dialect.Dialect + { + public override bool SupportsNotNullUnique + { + get { return false; } + } + } +} \ No newline at end of file diff --git a/src/NHibernate/Mapping/Table.cs b/src/NHibernate/Mapping/Table.cs index 9a151673e69..6e84c3f6965 100644 --- a/src/NHibernate/Mapping/Table.cs +++ b/src/NHibernate/Mapping/Table.cs @@ -434,7 +434,11 @@ public string SqlCreateString(Dialect.Dialect dialect, IMapping p, string defaul foreach (UniqueKey uk in UniqueKeyIterator) { - buf.Append(',').Append(uk.SqlConstraintString(dialect)); + string ukSql = uk.SqlConstraintString(dialect); + if (!string.IsNullOrEmpty(ukSql)) + { + buf.Append(',').Append(ukSql); + } } if (dialect.SupportsTableCheck)