diff --git a/src/NHibernate.Test/Criteria/AddNumberProjection.cs b/src/NHibernate.Test/Criteria/AddNumberProjection.cs index 1910585ec36..b40a931657c 100644 --- a/src/NHibernate.Test/Criteria/AddNumberProjection.cs +++ b/src/NHibernate.Test/Criteria/AddNumberProjection.cs @@ -35,7 +35,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri .Add(" + ") .Add(criteriaQuery.NewQueryParameter(typedValue).Single()) .Add(") as ") - .Add(GetColumnAliases(0, criteria, criteriaQuery)[0]) + .Add(GetColumnAlias(0)) .ToSqlString(); } diff --git a/src/NHibernate/Criterion/AvgProjection.cs b/src/NHibernate/Criterion/AvgProjection.cs index a7cad5a42ab..98afd60e52a 100644 --- a/src/NHibernate/Criterion/AvgProjection.cs +++ b/src/NHibernate/Criterion/AvgProjection.cs @@ -30,7 +30,7 @@ public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuer sql.Add(criteriaQuery.GetColumn(criteria, propertyName)); } sql.Add(" as ").Add(sqlType).Add(")"); - sql.Add(") as ").Add(GetColumnAliases(loc, criteria, criteriaQuery)[0]); + sql.Add(") as ").Add(GetColumnAlias(loc)); return sql.ToSqlString(); } diff --git a/src/NHibernate/Criterion/CastProjection.cs b/src/NHibernate/Criterion/CastProjection.cs index 2425cb5cd14..9b1a2d945f1 100644 --- a/src/NHibernate/Criterion/CastProjection.cs +++ b/src/NHibernate/Criterion/CastProjection.cs @@ -39,7 +39,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri string sqlType = factory.Dialect.GetCastTypeName(sqlTypeCodes[0]); var val = CriterionUtil.GetColumnNameAsSqlStringPart(projection, criteriaQuery, criteria); - return new SqlString("cast( ", val, " as ", sqlType, ") as ", GetColumnAliases(position, criteria, criteriaQuery)[0]); + return new SqlString("cast( ", val, " as ", sqlType, ") as ", GetColumnAlias(position)); } public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery) diff --git a/src/NHibernate/Criterion/ConditionalProjection.cs b/src/NHibernate/Criterion/ConditionalProjection.cs index 700b621b575..417d67b26ba 100644 --- a/src/NHibernate/Criterion/ConditionalProjection.cs +++ b/src/NHibernate/Criterion/ConditionalProjection.cs @@ -48,7 +48,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri var ifTrue = CriterionUtil.GetColumnNameAsSqlStringPart(whenTrue, criteriaQuery, criteria); var ifFalse = CriterionUtil.GetColumnNameAsSqlStringPart(whenFalse, criteriaQuery, criteria); return new SqlString("(case when ", condition, " then ", ifTrue, " else ", ifFalse, " end) as ", - GetColumnAliases(position, criteria, criteriaQuery)[0]); + GetColumnAlias(position)); } public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery) diff --git a/src/NHibernate/Criterion/ConstantProjection.cs b/src/NHibernate/Criterion/ConstantProjection.cs index 2d901a51b76..b012bdf4c67 100644 --- a/src/NHibernate/Criterion/ConstantProjection.cs +++ b/src/NHibernate/Criterion/ConstantProjection.cs @@ -45,7 +45,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri return new SqlString( criteriaQuery.NewQueryParameter(TypedValue).Single(), " as ", - GetColumnAliases(position, criteria, criteriaQuery)[0]); + GetColumnAlias(position)); } public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery) diff --git a/src/NHibernate/Criterion/SimpleProjection.cs b/src/NHibernate/Criterion/SimpleProjection.cs index 9304c4c4222..96ffd602252 100644 --- a/src/NHibernate/Criterion/SimpleProjection.cs +++ b/src/NHibernate/Criterion/SimpleProjection.cs @@ -26,11 +26,18 @@ public virtual IType[] GetTypes(string alias, ICriteria criteria, ICriteriaQuery return null; } + // Since v5.4 + [Obsolete("This method has no more usage in NHibernate and will be removed in a future version.")] public virtual string[] GetColumnAliases(int loc) { - return new string[] {"y" + loc + "_"}; + return new[] {GetColumnAlias(loc)}; } - + + protected string GetColumnAlias(int position) + { + return "y" + position + "_"; + } + public string[] GetColumnAliases(string alias, int position, ICriteria criteria, ICriteriaQuery criteriaQuery) { return GetColumnAliases(alias, position); @@ -40,14 +47,13 @@ public String[] GetColumnAliases(int position, ICriteria criteria, ICriteriaQuer { int numColumns = this.GetColumnCount(criteria, criteriaQuery); string[] aliases = new string[numColumns]; - for (int i = 0; i < numColumns; i++) + for (int i = 0; i < numColumns; i++) { - aliases[i] = "y" + position + "_"; - position++; + aliases[i] = GetColumnAlias(position + i); } return aliases; } - + public virtual string[] Aliases { get { return new String[1]; } diff --git a/src/NHibernate/Criterion/SqlFunctionProjection.cs b/src/NHibernate/Criterion/SqlFunctionProjection.cs index db9fd336f63..9825c275e3e 100644 --- a/src/NHibernate/Criterion/SqlFunctionProjection.cs +++ b/src/NHibernate/Criterion/SqlFunctionProjection.cs @@ -89,7 +89,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri return new SqlString( sqlFunction.Render(arguments, criteriaQuery.Factory), " as ", - GetColumnAliases(position, criteria, criteriaQuery)[0]); + GetColumnAlias(position)); } private ISQLFunction GetFunction(ICriteriaQuery criteriaQuery)