From: <jul...@us...> - 2010-12-09 16:15:44
|
Revision: 5300 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5300&view=rev Author: julian-maughan Date: 2010-12-09 16:15:38 +0000 (Thu, 09 Dec 2010) Log Message: ----------- Fixed typing of boolean parameter values (issue reported on SQLite) [ref. NH-2441] Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeBuilder.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Model.cs Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeBuilder.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeBuilder.cs 2010-12-06 16:56:40 UTC (rev 5299) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeBuilder.cs 2010-12-09 16:15:38 UTC (rev 5300) @@ -165,7 +165,7 @@ case TypeCode.DateTime: return new HqlStringConstant(_factory, "\'" + (DateTime)value + "\'"); case TypeCode.Boolean: - return new HqlStringConstant(_factory, "\'" + ((bool)value ? "true" : "false") + "\'"); + return (bool)value ? (HqlConstant)True() : (HqlConstant)False(); default: throw new NotSupportedException(string.Format("The constant for '{0}' is not supported", value)); } Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Fixture.cs 2010-12-09 16:15:38 UTC (rev 5300) @@ -0,0 +1,57 @@ +using System.Linq; +using NHibernate.Dialect; +using NHibernate.Linq; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2441 +{ + [TestFixture] + public class Fixture : BugTestCase + { + protected override bool AppliesTo(NHibernate.Dialect.Dialect dialect) + { + return ((dialect is Dialect.SQLiteDialect) || (dialect is Dialect.MsSql2008Dialect)); + } + + protected override void OnSetUp() + { + base.OnSetUp(); + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + Person e1 = new Person("Tuna Toksoz", "Born in Istanbul :Turkey"); + Person e2 = new Person("Tuna Toksoz", "Born in Istanbul :Turkiye"); + s.Save(e1); + s.Save(e2); + tx.Commit(); + } + } + + protected override void OnTearDown() + { + using (ISession session = OpenSession()) + using (ITransaction tx = session.BeginTransaction()) + { + session.Delete("from Person"); + tx.Commit(); + } + + base.OnTearDown(); + } + + [Test] + public void LinqQueryBooleanSQLite() + { + using (ISession session = OpenSession()) + { + var query1 = session.Query<Person>().Where(p => true); + var query2 = session.Query<Person>().Where(p => p.Id != null); + var query3 = session.Query<Person>(); + + Assert.That(query1.Count(), Is.EqualTo(query2.Count())); + Assert.That(query3.Count(), Is.EqualTo(query1.Count())); + } + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Mappings.hbm.xml 2010-12-09 16:15:38 UTC (rev 5300) @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping + xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2441"> + + <class name="Person" lazy="false"> + <id name="Id"> + <generator class="native" /> + </id> + <property name="Name"/> + <property name="Biography"/> + </class> + +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Model.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Model.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2441/Model.cs 2010-12-09 16:15:38 UTC (rev 5300) @@ -0,0 +1,19 @@ +namespace NHibernate.Test.NHSpecificTest.NH2441 +{ + public class Person + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + public virtual string Biography { get; set; } + + public Person() + { + } + + public Person(string name, string bio) + { + this.Name = name; + this.Biography = bio; + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-06 16:56:40 UTC (rev 5299) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-09 16:15:38 UTC (rev 5300) @@ -538,6 +538,8 @@ <Compile Include="NHSpecificTest\NH2420\DummyEnlistment.cs" /> <Compile Include="NHSpecificTest\NH2420\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2420\MyTable.cs" /> + <Compile Include="NHSpecificTest\NH2441\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2441\Model.cs" /> <Compile Include="PolymorphicGetAndLoad\Domain.cs" /> <Compile Include="PolymorphicGetAndLoad\PolymorphicGetAndLoadTest.cs" /> <Compile Include="TypesTest\CharClass.cs" /> @@ -1832,6 +1834,7 @@ <EmbeddedResource Include="NHSpecificTest\NH2392\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2409\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2420\Mappings.hbm.xml" /> + <EmbeddedResource Include="NHSpecificTest\NH2441\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\NHibernate.ByteCode.Castle\NHibernate.ByteCode.Castle.csproj"> @@ -2683,6 +2686,7 @@ </ItemGroup> <ItemGroup> <Folder Include="NHSpecificTest\NH2420" /> + <Folder Include="NHSpecificTest\NH2441" /> <Folder Include="Properties\" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |