From: <fab...@us...> - 2010-08-05 03:06:28
|
Revision: 5111 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5111&view=rev Author: fabiomaulo Date: 2010-08-05 03:06:22 +0000 (Thu, 05 Aug 2010) Log Message: ----------- Fix NH-2158 (thanks to Richard Birkby) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Criterion/SqlFunctionProjection.cs trunk/nhibernate/src/NHibernate.Test/ExpressionTest/Projection/ProjectionFixture.cs Modified: trunk/nhibernate/src/NHibernate/Criterion/SqlFunctionProjection.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Criterion/SqlFunctionProjection.cs 2010-08-04 19:54:32 UTC (rev 5110) +++ trunk/nhibernate/src/NHibernate/Criterion/SqlFunctionProjection.cs 2010-08-05 03:06:22 UTC (rev 5111) @@ -1,4 +1,5 @@ using System; +using System.Collections; using System.Collections.Generic; using NHibernate.Dialect.Function; using NHibernate.Engine; @@ -72,7 +73,7 @@ IDictionary<string, IFilter> enabledFilters) { ISQLFunction sqlFunction = GetFunction(criteriaQuery); - List<string> tokens = new List<string>(); + var tokens = new ArrayList(); string replacemenToken = Guid.NewGuid().ToString("n"); for (int i = 0; i < args.Length; i++) { Modified: trunk/nhibernate/src/NHibernate.Test/ExpressionTest/Projection/ProjectionFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/ExpressionTest/Projection/ProjectionFixture.cs 2010-08-04 19:54:32 UTC (rev 5110) +++ trunk/nhibernate/src/NHibernate.Test/ExpressionTest/Projection/ProjectionFixture.cs 2010-08-05 03:06:22 UTC (rev 5111) @@ -8,6 +8,7 @@ namespace NHibernate.Test.ExpressionTest.Projection { using Util; + using NHibernate.Dialect.Function; [TestFixture] public class ProjectionFixture : BaseExpressionFixture @@ -88,6 +89,19 @@ } [Test] + public void NvlTest() + { + ISession session = factory.OpenSession(); + IProjection expression = Projections.SqlFunction(new NvlFunction(), + NHibernateUtil.String, Projections.Property("Name"), Projections.Property("Address")); + CreateObjects(typeof (Simple), session); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass<string, IFilter>()); + string expectedSql = "nvl(sql_alias.Name, sql_alias.address) as y0_"; + CompareSqlStrings(sqlString, expectedSql, 0); + session.Close(); + } + + [Test] public void DistinctTest() { ISession session = factory.OpenSession(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |