|
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.
|