From: <pa...@us...> - 2010-11-26 04:02:41
|
Revision: 5275 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5275&view=rev Author: patearl Date: 2010-11-26 04:02:34 +0000 (Fri, 26 Nov 2010) Log Message: ----------- Linq: Replaced "1" and "0" constants with "true" and "false" so they can be mapped in a dialect-specific way at the HQL level. (NH-2403) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs Modified: trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs 2010-11-25 17:13:29 UTC (rev 5274) +++ trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs 2010-11-26 04:02:34 UTC (rev 5275) @@ -215,13 +215,13 @@ { lhs = _hqlTreeBuilder.Case( - new [] { _hqlTreeBuilder.When(lhs, _hqlTreeBuilder.Constant(1)) }, - _hqlTreeBuilder.Constant(0)); + new [] { _hqlTreeBuilder.When(lhs, _hqlTreeBuilder.Constant(true)) }, + _hqlTreeBuilder.Constant(false)); rhs = _hqlTreeBuilder.Case( - new [] { _hqlTreeBuilder.When(rhs, _hqlTreeBuilder.Constant(1)) }, - _hqlTreeBuilder.Constant(0)); + new [] { _hqlTreeBuilder.When(rhs, _hqlTreeBuilder.Constant(true)) }, + _hqlTreeBuilder.Constant(false)); return _hqlTreeBuilder.Equality(lhs, rhs); } @@ -250,13 +250,13 @@ { lhs = _hqlTreeBuilder.Case( - new [] { _hqlTreeBuilder.When(lhs, _hqlTreeBuilder.Constant(1)) }, - _hqlTreeBuilder.Constant(0)); + new [] { _hqlTreeBuilder.When(lhs, _hqlTreeBuilder.Constant(true)) }, + _hqlTreeBuilder.Constant(false)); rhs = _hqlTreeBuilder.Case( - new [] { _hqlTreeBuilder.When(rhs, _hqlTreeBuilder.Constant(1)) }, - _hqlTreeBuilder.Constant(0)); + new [] { _hqlTreeBuilder.When(rhs, _hqlTreeBuilder.Constant(true)) }, + _hqlTreeBuilder.Constant(false)); return _hqlTreeBuilder.Inequality(lhs, rhs); @@ -377,7 +377,7 @@ if (namedParameter.Value is bool) { return _hqlTreeBuilder.Equality(_hqlTreeBuilder.Parameter(namedParameter.Name).AsExpression(), - _hqlTreeBuilder.Constant(1)); + _hqlTreeBuilder.Constant(true)); } return _hqlTreeBuilder.Parameter(namedParameter.Name).AsExpression(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-03-28 02:33:01
|
Revision: 5557 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5557&view=rev Author: patearl Date: 2011-03-28 02:32:55 +0000 (Mon, 28 Mar 2011) Log Message: ----------- Linq: Use "concat" method for string addition. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs Modified: trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs 2011-03-28 01:28:41 UTC (rev 5556) +++ trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs 2011-03-28 02:32:55 UTC (rev 5557) @@ -293,7 +293,14 @@ return _hqlTreeBuilder.BooleanOr(lhs.AsBooleanExpression(), rhs.AsBooleanExpression()); case ExpressionType.Add: - return _hqlTreeBuilder.Add(lhs, rhs); + if (expression.Left.Type == typeof(string) && expression.Right.Type == typeof(string)) + { + return _hqlTreeBuilder.MethodCall("concat", lhs, rhs); + } + else + { + return _hqlTreeBuilder.Add(lhs, rhs); + } case ExpressionType.Subtract: return _hqlTreeBuilder.Subtract(lhs, rhs); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |