Skip to content

Commit 469d79f

Browse files
lesnyhhazzik
authored andcommitted
NH-3749 - Remove unnecessary comma in CREATE TABLE statement (#1651)
Fixes #1037
1 parent 0c04914 commit 469d79f

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-1
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using NUnit.Framework;
2+
using NHibernate.Mapping;
3+
4+
namespace NHibernate.Test.NHSpecificTest.NH3749
5+
{
6+
[TestFixture]
7+
public class Fixture
8+
{
9+
[Test]
10+
public void SupportsNotNullUniqueFalse()
11+
{
12+
Table tbl = new Table();
13+
tbl.Name = "Table";
14+
15+
Column column = new Column("Column");
16+
column.IsNullable = true;
17+
18+
UniqueKey uk = new UniqueKey { Name = "UniqueKey", Table = tbl };
19+
uk.Columns.Add(column);
20+
21+
tbl.AddUniqueKey(uk);
22+
23+
Dialect.Dialect dialect = new TestDialect();
24+
25+
string sql = tbl.SqlCreateString(dialect, null, "", "");
26+
27+
Assert.IsFalse(sql.Contains(",)"), "Create command has unnecessary comma: " + sql);
28+
}
29+
}
30+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
2+
namespace NHibernate.Test.NHSpecificTest.NH3749
3+
{
4+
public class TestDialect : Dialect.Dialect
5+
{
6+
public override bool SupportsNotNullUnique
7+
{
8+
get { return false; }
9+
}
10+
}
11+
}

src/NHibernate/Mapping/Table.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,11 @@ public string SqlCreateString(Dialect.Dialect dialect, IMapping p, string defaul
434434

435435
foreach (UniqueKey uk in UniqueKeyIterator)
436436
{
437-
buf.Append(',').Append(uk.SqlConstraintString(dialect));
437+
string ukSql = uk.SqlConstraintString(dialect);
438+
if (!string.IsNullOrEmpty(ukSql))
439+
{
440+
buf.Append(',').Append(ukSql);
441+
}
438442
}
439443

440444
if (dialect.SupportsTableCheck)

0 commit comments

Comments
 (0)