|
From: <fab...@us...> - 2008-11-10 13:31:03
|
Revision: 3904
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3904&view=rev
Author: fabiomaulo
Date: 2008-11-10 13:31:01 +0000 (Mon, 10 Nov 2008)
Log Message:
-----------
Revert patch NH-1155 because are breaking all dialect with SupportsVariableLimit=true.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Engine/SubselectFetch.cs
trunk/nhibernate/src/NHibernate/Loader/Loader.cs
trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs
trunk/nhibernate/src/NHibernate.Test/SubselectFetchTest/SubselectFetchFixture.cs
Modified: trunk/nhibernate/src/NHibernate/Engine/SubselectFetch.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Engine/SubselectFetch.cs 2008-11-08 21:31:30 UTC (rev 3903)
+++ trunk/nhibernate/src/NHibernate/Engine/SubselectFetch.cs 2008-11-10 13:31:01 UTC (rev 3904)
@@ -8,23 +8,21 @@
{
public class SubselectFetch
{
- private readonly ISet<EntityKey> resultingEntityKeys;
- private readonly SqlString queryString;
private readonly string alias;
- private readonly Dialect.Dialect dialect;
private readonly ILoadable loadable;
- private readonly QueryParameters queryParameters;
private readonly IDictionary<string, int[]> namedParameterLocMap;
+ private readonly QueryParameters queryParameters;
+ private readonly SqlString queryString;
+ private readonly ISet<EntityKey> resultingEntityKeys;
- public SubselectFetch(string alias, Dialect.Dialect dialect, ILoadable loadable, QueryParameters queryParameters,
- ISet<EntityKey> resultingEntityKeys, IDictionary<string, int[]> namedParameterLocMap)
+ public SubselectFetch(string alias, ILoadable loadable, QueryParameters queryParameters,
+ ISet<EntityKey> resultingEntityKeys, IDictionary<string, int[]> namedParameterLocMap)
{
this.resultingEntityKeys = resultingEntityKeys;
this.queryParameters = queryParameters;
this.namedParameterLocMap = namedParameterLocMap;
this.loadable = loadable;
this.alias = alias;
- this.dialect = dialect;
queryString = queryParameters.FilteredSQL.GetSubselectString();
}
@@ -39,6 +37,11 @@
get { return resultingEntityKeys; }
}
+ public IDictionary<string, int[]> NamedParameterLocMap
+ {
+ get { return namedParameterLocMap; }
+ }
+
public SqlString ToSubselectString(string ukname)
{
string[] joinColumns = ukname == null
@@ -47,39 +50,12 @@
SqlString sqlString =
new SqlStringBuilder().Add("select ").Add(StringHelper.Join(", ", joinColumns)).Add(queryString).ToSqlString();
-
- RowSelection selection = queryParameters.RowSelection;
-
- bool useLimit = Loader.Loader.UseLimit(selection, dialect);
- bool hasFirstRow = Loader.Loader.GetFirstRow(selection) > 0;
- bool useOffset = hasFirstRow && useLimit && dialect.SupportsLimitOffset;
-
- if ((useLimit || hasFirstRow) == false)
- {
- return sqlString;
- }
-
- sqlString = AppendOrderByIfNeeded(sqlString);
-
- return
- dialect.GetLimitString(sqlString.Trim(), useOffset ? Loader.Loader.GetFirstRow(selection) : 0,
- Loader.Loader.GetMaxOrLimit(dialect, selection));
+ return sqlString;
}
- private SqlString AppendOrderByIfNeeded(SqlString sqlString)
- {
- SqlString orderByOrEmpty = queryParameters.FilteredSQL.SubstringStartingWithLast("order by");
- return sqlString.Append(orderByOrEmpty);
- }
-
public override string ToString()
{
return "SubselectFetch(" + queryString + ')';
}
-
- public IDictionary<string, int[]> NamedParameterLocMap
- {
- get { return namedParameterLocMap; }
- }
}
}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Loader/Loader.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Loader/Loader.cs 2008-11-08 21:31:30 UTC (rev 3903)
+++ trunk/nhibernate/src/NHibernate/Loader/Loader.cs 2008-11-10 13:31:01 UTC (rev 3904)
@@ -516,7 +516,7 @@
if (rowKeys[i] != null && loadables[i].HasSubselectLoadableCollections)
{
SubselectFetch subselectFetch =
- new SubselectFetch(aliases[i], factory.Dialect, loadables[i], queryParameters, keySets[i], namedParameterLocMap);
+ new SubselectFetch(aliases[i], loadables[i], queryParameters, keySets[i], namedParameterLocMap);
session.PersistenceContext.BatchFetchQueue.AddSubselect(rowKeys[i], subselectFetch);
}
Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs 2008-11-08 21:31:30 UTC (rev 3903)
+++ trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs 2008-11-10 13:31:01 UTC (rev 3904)
@@ -431,7 +431,7 @@
s.Close();
}
- [Test]
+ [Test, Ignore("Not supported.")]
public void NH_1155_ShouldNotLoadAllChildrenInPagedSubSelect()
{
if (this.Dialect.GetType().Equals((typeof(MsSql2000Dialect))))
Modified: trunk/nhibernate/src/NHibernate.Test/SubselectFetchTest/SubselectFetchFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/SubselectFetchTest/SubselectFetchFixture.cs 2008-11-08 21:31:30 UTC (rev 3903)
+++ trunk/nhibernate/src/NHibernate.Test/SubselectFetchTest/SubselectFetchFixture.cs 2008-11-10 13:31:01 UTC (rev 3904)
@@ -248,7 +248,7 @@
Assert.AreEqual(3, sessions.Statistics.PrepareStatementCount);
r = (Parent) s.Get(typeof(Parent), r.Name);
- Assert.IsFalse(NHibernateUtil.IsInitialized(r.Children));
+ Assert.IsTrue(NHibernateUtil.IsInitialized(r.Children)); // The test for True is the test of H3.2
Assert.IsFalse(NHibernateUtil.IsInitialized(r.MoreChildren));
Assert.AreEqual(r.Children.Count, 1);
Assert.AreEqual(r.MoreChildren.Count, 0);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|