Skip to content

Commit aeadf17

Browse files
committed
NH-2167 - Fix Projections.GroupProperty with parameters inside
1 parent ceedcd9 commit aeadf17

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/NHibernate.Test/NHSpecificTest/NH3609/Fixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public void CountWithConditionalDoesNotThrow()
7979
}
8080
}
8181

82-
[Test, Ignore("Not fixed yet")]
82+
[Test]
8383
public void GroupByClauseHasParameterSet()
8484
{
8585
using (var session = OpenSession())

src/NHibernate/Criterion/GroupedProjection.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Text;
43
using NHibernate.Engine;
54
using NHibernate.SqlCommand;
65
using NHibernate.Type;
7-
using NHibernate.Util;
86

97
namespace NHibernate.Criterion
108
{
119
[Serializable]
12-
public class GroupedProjection:IProjection
10+
public class GroupedProjection : IProjection
1311
{
1412
private readonly IProjection projection;
13+
private SqlString renderedProjection;
1514

1615
public GroupedProjection(IProjection projection)
1716
{
@@ -20,12 +19,13 @@ public GroupedProjection(IProjection projection)
2019

2120
public virtual SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary<string, IFilter> enabledFilters)
2221
{
23-
return projection.ToSqlString(criteria, position, criteriaQuery, enabledFilters);
22+
return renderedProjection = projection.ToSqlString(criteria, position, criteriaQuery, enabledFilters);
2423
}
2524

2625
public virtual SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary<string, IFilter> enabledFilters)
2726
{
28-
return SqlStringHelper.RemoveAsAliasesFromSql(this.projection.ToSqlString(criteria, 0, criteriaQuery, enabledFilters));
27+
//This is kind of a hack. The hack is based on the fact that ToGroupSqlString always called after ToSqlString.
28+
return SqlStringHelper.RemoveAsAliasesFromSql(renderedProjection);
2929
}
3030

3131
public virtual IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery)
@@ -35,7 +35,7 @@ public virtual IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery
3535

3636
public virtual IType[] GetTypes(String alias, ICriteria criteria, ICriteriaQuery criteriaQuery)
3737
{
38-
return this.projection.GetTypes(alias,criteria,criteriaQuery);
38+
return this.projection.GetTypes(alias, criteria, criteriaQuery);
3939
}
4040

4141
public string[] GetColumnAliases(int position, ICriteria criteria, ICriteriaQuery criteriaQuery)
@@ -50,7 +50,7 @@ public string[] GetColumnAliases(string alias, int position, ICriteria criteria,
5050

5151
public virtual string[] Aliases
5252
{
53-
get { return new string[] { }; }
53+
get { return new string[] {}; }
5454
}
5555

5656
public virtual bool IsGrouped

0 commit comments

Comments
 (0)