Skip to content

Commit 882a13c

Browse files
author
Mike Doerfler
committed
Fixed problem caused by order-by attribute with multicolumns generating
incorrect sql. SVN: trunk@1035
1 parent 9235f8d commit 882a13c

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/NHibernate.Test/SqlCommandTest/TemplateFixture.cs

+22
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,27 @@ public void ReplaceWithDialectQuote()
3232

3333
}
3434

35+
[Test]
36+
public void OrderBySingleColumn()
37+
{
38+
Dialect.Dialect dialect = new Dialect.MsSql2000Dialect();
39+
40+
string orderBy = "col1 asc";
41+
string expectedOrderBy = "$PlaceHolder.col1 asc";
42+
43+
Assert.AreEqual( expectedOrderBy, Template.RenderOrderByStringTemplate( orderBy, dialect ) );
44+
}
45+
46+
[Test]
47+
public void OrderByMultiColumn()
48+
{
49+
Dialect.Dialect dialect = new Dialect.MsSql2000Dialect();
50+
51+
string orderBy = "col1 asc, col2 desc, col3";
52+
string expectedOrderBy = "$PlaceHolder.col1 asc, $PlaceHolder.col2 desc, $PlaceHolder.col3";
53+
54+
Assert.AreEqual( expectedOrderBy, Template.RenderOrderByStringTemplate( orderBy, dialect ) );
55+
}
56+
3557
}
3658
}

src/NHibernate/SqlCommand/Template.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public static string RenderWhereStringTemplate(string sqlWhereString, Dialect.Di
167167
public static string RenderOrderByStringTemplate(string sqlOrderByString, Dialect.Dialect dialect)
168168
{
169169
//TODO: make this a bit nicer
170-
StringTokenizer tokens = new StringTokenizer(sqlOrderByString, ",");
170+
StringTokenizer tokens = new StringTokenizer(sqlOrderByString, ",", false);
171171
StringBuilder result = new StringBuilder(sqlOrderByString.Length + 2);
172172
bool commaNeeded = false;
173173
IEnumerator tokenEnum = tokens.GetEnumerator();

0 commit comments

Comments
 (0)