Skip to content

Commit 53df423

Browse files
authored
Simplify single alias retrieval for SimpleProjections (#2460)
1 parent b8fbadd commit 53df423

File tree

7 files changed

+18
-12
lines changed

7 files changed

+18
-12
lines changed

src/NHibernate.Test/Criteria/AddNumberProjection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri
3535
.Add(" + ")
3636
.Add(criteriaQuery.NewQueryParameter(typedValue).Single())
3737
.Add(") as ")
38-
.Add(GetColumnAliases(0, criteria, criteriaQuery)[0])
38+
.Add(GetColumnAlias(0))
3939
.ToSqlString();
4040
}
4141

src/NHibernate/Criterion/AvgProjection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuer
3030
sql.Add(criteriaQuery.GetColumn(criteria, propertyName));
3131
}
3232
sql.Add(" as ").Add(sqlType).Add(")");
33-
sql.Add(") as ").Add(GetColumnAliases(loc, criteria, criteriaQuery)[0]);
33+
sql.Add(") as ").Add(GetColumnAlias(loc));
3434
return sql.ToSqlString();
3535
}
3636

src/NHibernate/Criterion/CastProjection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri
3939
string sqlType = factory.Dialect.GetCastTypeName(sqlTypeCodes[0]);
4040
var val = CriterionUtil.GetColumnNameAsSqlStringPart(projection, criteriaQuery, criteria);
4141

42-
return new SqlString("cast( ", val, " as ", sqlType, ") as ", GetColumnAliases(position, criteria, criteriaQuery)[0]);
42+
return new SqlString("cast( ", val, " as ", sqlType, ") as ", GetColumnAlias(position));
4343
}
4444

4545
public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery)

src/NHibernate/Criterion/ConditionalProjection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri
4848
var ifTrue = CriterionUtil.GetColumnNameAsSqlStringPart(whenTrue, criteriaQuery, criteria);
4949
var ifFalse = CriterionUtil.GetColumnNameAsSqlStringPart(whenFalse, criteriaQuery, criteria);
5050
return new SqlString("(case when ", condition, " then ", ifTrue, " else ", ifFalse, " end) as ",
51-
GetColumnAliases(position, criteria, criteriaQuery)[0]);
51+
GetColumnAlias(position));
5252
}
5353

5454
public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery)

src/NHibernate/Criterion/ConstantProjection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri
4545
return new SqlString(
4646
criteriaQuery.NewQueryParameter(TypedValue).Single(),
4747
" as ",
48-
GetColumnAliases(position, criteria, criteriaQuery)[0]);
48+
GetColumnAlias(position));
4949
}
5050

5151
public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery)

src/NHibernate/Criterion/SimpleProjection.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,18 @@ public virtual IType[] GetTypes(string alias, ICriteria criteria, ICriteriaQuery
2626
return null;
2727
}
2828

29+
// Since v5.4
30+
[Obsolete("This method has no more usage in NHibernate and will be removed in a future version.")]
2931
public virtual string[] GetColumnAliases(int loc)
3032
{
31-
return new string[] {"y" + loc + "_"};
33+
return new[] {GetColumnAlias(loc)};
3234
}
33-
35+
36+
protected string GetColumnAlias(int position)
37+
{
38+
return "y" + position + "_";
39+
}
40+
3441
public string[] GetColumnAliases(string alias, int position, ICriteria criteria, ICriteriaQuery criteriaQuery)
3542
{
3643
return GetColumnAliases(alias, position);
@@ -40,14 +47,13 @@ public String[] GetColumnAliases(int position, ICriteria criteria, ICriteriaQuer
4047
{
4148
int numColumns = this.GetColumnCount(criteria, criteriaQuery);
4249
string[] aliases = new string[numColumns];
43-
for (int i = 0; i < numColumns; i++)
50+
for (int i = 0; i < numColumns; i++)
4451
{
45-
aliases[i] = "y" + position + "_";
46-
position++;
52+
aliases[i] = GetColumnAlias(position + i);
4753
}
4854
return aliases;
4955
}
50-
56+
5157
public virtual string[] Aliases
5258
{
5359
get { return new String[1]; }

src/NHibernate/Criterion/SqlFunctionProjection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri
8989
return new SqlString(
9090
sqlFunction.Render(arguments, criteriaQuery.Factory),
9191
" as ",
92-
GetColumnAliases(position, criteria, criteriaQuery)[0]);
92+
GetColumnAlias(position));
9393
}
9494

9595
private ISQLFunction GetFunction(ICriteriaQuery criteriaQuery)

0 commit comments

Comments
 (0)