diff --git a/src/NHibernate.Test/Criteria/AddNumberProjection.cs b/src/NHibernate.Test/Criteria/AddNumberProjection.cs index a2483507e1c..1910585ec36 100644 --- a/src/NHibernate.Test/Criteria/AddNumberProjection.cs +++ b/src/NHibernate.Test/Criteria/AddNumberProjection.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq; using NHibernate.Engine; using NHibernate.Criterion; @@ -26,7 +25,7 @@ public override bool IsAggregate get { return false; } } - public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery) { string[] projection = criteriaQuery.GetColumnsUsingProjection(criteria, propertyName); @@ -56,7 +55,7 @@ public override bool IsGrouped get { return false; } } - public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { throw new InvalidOperationException("not a grouping projection"); } diff --git a/src/NHibernate.Test/ExpressionTest/BetweenExpressionFixture.cs b/src/NHibernate.Test/ExpressionTest/BetweenExpressionFixture.cs index cfae794c89a..597f7d79c04 100644 --- a/src/NHibernate.Test/ExpressionTest/BetweenExpressionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/BetweenExpressionFixture.cs @@ -1,7 +1,6 @@ using NHibernate.DomainModel; using NHibernate.Criterion; using NHibernate.SqlCommand; -using NHibernate.Util; using NUnit.Framework; namespace NHibernate.Test.ExpressionTest @@ -16,7 +15,7 @@ public void BetweenSqlStringTest() CreateObjects(typeof(Simple), session); ICriterion betweenExpression = Expression.Between("Count", 5, 10); - SqlString sqlString = betweenExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = betweenExpression.ToSqlString(criteria, criteriaQuery); string expectedSql = "sql_alias.count_ between ? and ?"; CompareSqlStrings(sqlString, expectedSql, 2); diff --git a/src/NHibernate.Test/ExpressionTest/InExpressionFixture.cs b/src/NHibernate.Test/ExpressionTest/InExpressionFixture.cs index 49e40985b37..3c4ad489661 100644 --- a/src/NHibernate.Test/ExpressionTest/InExpressionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/InExpressionFixture.cs @@ -2,7 +2,6 @@ using NHibernate.DomainModel; using NHibernate.Criterion; using NHibernate.SqlCommand; -using NHibernate.Util; using NUnit.Framework; using System.Linq; @@ -22,7 +21,7 @@ public void InSqlStringTest() ICriterion inExpression = Expression.In("Count", new int[] { 3, 4, 5 }); CreateObjects(typeof(Simple), session); - SqlString sqlString = inExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = inExpression.ToSqlString(criteria, criteriaQuery); string expectedSql = "sql_alias.count_ in (?, ?, ?)"; @@ -37,7 +36,7 @@ public void InEmptyList() ISession session = factory.OpenSession(); InExpression expression = new InExpression("Count", new object[0]); CreateObjects(typeof(Simple), session); - SqlString sql = expression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sql = expression.ToSqlString(criteria, criteriaQuery); Assert.AreEqual("1=0", sql.ToString()); session.Close(); } @@ -56,7 +55,7 @@ public void InSqlFunctionTest() Projections.Constant(1), Projections.Constant(1)), new object[] { "A", "B" }); - var sql = inExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + var sql = inExpression.ToSqlString(criteria, criteriaQuery); // Allow some dialectal differences in function name and parameter style. Assert.That(sql.ToString(), diff --git a/src/NHibernate.Test/ExpressionTest/InsensitiveLikeExpressionFixture.cs b/src/NHibernate.Test/ExpressionTest/InsensitiveLikeExpressionFixture.cs index c8f25b0a622..809ddccb85e 100644 --- a/src/NHibernate.Test/ExpressionTest/InsensitiveLikeExpressionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/InsensitiveLikeExpressionFixture.cs @@ -4,7 +4,6 @@ using NHibernate.Engine; using NHibernate.Criterion; using NHibernate.SqlCommand; -using NHibernate.Util; using NUnit.Framework; namespace NHibernate.Test.ExpressionTest @@ -23,7 +22,7 @@ public void InsentitiveLikeSqlStringTest() ICriterion expression = Expression.InsensitiveLike("Address", "12 Adress"); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, criteriaQuery); string expectedSql = "lower(sql_alias.address) like ?"; if ((factory as ISessionFactoryImplementor).Dialect is PostgreSQLDialect) diff --git a/src/NHibernate.Test/ExpressionTest/JunctionFixture.cs b/src/NHibernate.Test/ExpressionTest/JunctionFixture.cs index 9ded78b86c6..3257fa4fff1 100644 --- a/src/NHibernate.Test/ExpressionTest/JunctionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/JunctionFixture.cs @@ -2,7 +2,6 @@ using NHibernate.Engine; using NHibernate.Criterion; using NHibernate.SqlCommand; -using NHibernate.Util; using NUnit.Framework; namespace NHibernate.Test.ExpressionTest @@ -35,7 +34,7 @@ public void SqlString() using (ISession session = factory.OpenSession()) { CreateObjects(typeof(Simple), session); - sqlString = _conjunction.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + sqlString = _conjunction.ToSqlString(criteria, criteriaQuery); } string expectedSql = "(sql_alias.address is null and sql_alias.count_ between ? and ?)"; diff --git a/src/NHibernate.Test/ExpressionTest/LogicalExpressionFixture.cs b/src/NHibernate.Test/ExpressionTest/LogicalExpressionFixture.cs index 754fa279d5a..6a3577686ad 100644 --- a/src/NHibernate.Test/ExpressionTest/LogicalExpressionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/LogicalExpressionFixture.cs @@ -2,7 +2,6 @@ using NHibernate.DomainModel; using NHibernate.Criterion; using NHibernate.SqlCommand; -using NHibernate.Util; using NUnit.Framework; namespace NHibernate.Test.ExpressionTest @@ -26,7 +25,7 @@ public void LogicalSqlStringTest() Expression.Or(Expression.IsNull("Address"), Expression.Between("Count", 5, 10)); CreateObjects(typeof(Simple), session); - SqlString sqlString = orExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = orExpression.ToSqlString(criteria, criteriaQuery); string expectedSql = "(sql_alias.address is null or sql_alias.count_ between ? and ?)"; diff --git a/src/NHibernate.Test/ExpressionTest/NotExpressionFixture.cs b/src/NHibernate.Test/ExpressionTest/NotExpressionFixture.cs index 0668a3f7033..e17b3745b4e 100644 --- a/src/NHibernate.Test/ExpressionTest/NotExpressionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/NotExpressionFixture.cs @@ -2,7 +2,6 @@ using NHibernate.DomainModel; using NHibernate.Criterion; using NHibernate.SqlCommand; -using NHibernate.Util; using NUnit.Framework; namespace NHibernate.Test.ExpressionTest @@ -21,7 +20,7 @@ public void NotSqlStringTest() ICriterion notExpression = Expression.Not(Expression.Eq("Address", "12 Adress")); CreateObjects(typeof(Simple), session); - SqlString sqlString = notExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = notExpression.ToSqlString(criteria, criteriaQuery); string expectedSql = "not (sql_alias.address = ?)"; CompareSqlStrings(sqlString, expectedSql, 1); diff --git a/src/NHibernate.Test/ExpressionTest/NotNullExpressionFixture.cs b/src/NHibernate.Test/ExpressionTest/NotNullExpressionFixture.cs index 05616fe05da..49bdd377298 100644 --- a/src/NHibernate.Test/ExpressionTest/NotNullExpressionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/NotNullExpressionFixture.cs @@ -1,7 +1,6 @@ using NHibernate.DomainModel; using NHibernate.Criterion; using NHibernate.SqlCommand; -using NHibernate.Util; using NUnit.Framework; namespace NHibernate.Test.ExpressionTest @@ -20,7 +19,7 @@ public void NotNullSqlStringTest() ICriterion notNullExpression = Expression.IsNotNull("Address"); CreateObjects(typeof(Simple), session); - SqlString sqlString = notNullExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = notNullExpression.ToSqlString(criteria, criteriaQuery); string expectedSql = "sql_alias.address is not null"; CompareSqlStrings(sqlString, expectedSql, 0); diff --git a/src/NHibernate.Test/ExpressionTest/NullExpressionFixture.cs b/src/NHibernate.Test/ExpressionTest/NullExpressionFixture.cs index b36e29bd2bb..e1a5ad8af6d 100644 --- a/src/NHibernate.Test/ExpressionTest/NullExpressionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/NullExpressionFixture.cs @@ -2,7 +2,6 @@ using NHibernate.DomainModel; using NHibernate.Criterion; using NHibernate.SqlCommand; -using NHibernate.Util; using NUnit.Framework; namespace NHibernate.Test.ExpressionTest @@ -21,7 +20,7 @@ public void NullSqlStringTest() ICriterion expression = Expression.IsNull("Address"); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, criteriaQuery); string expectedSql = "sql_alias.address is null"; CompareSqlStrings(sqlString, expectedSql, 0); diff --git a/src/NHibernate.Test/ExpressionTest/Projection/ProjectionFixture.cs b/src/NHibernate.Test/ExpressionTest/Projection/ProjectionFixture.cs index e6d20475a5b..55a65e9d140 100644 --- a/src/NHibernate.Test/ExpressionTest/Projection/ProjectionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/Projection/ProjectionFixture.cs @@ -7,8 +7,7 @@ namespace NHibernate.Test.ExpressionTest.Projection { - using Util; - using NHibernate.Dialect.Function; + using NHibernate.Dialect.Function; [TestFixture] public class ProjectionFixture : BaseExpressionFixture @@ -19,7 +18,7 @@ public void RowCountTest() ISession session = factory.OpenSession(); IProjection expression = Projections.RowCount(); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "count(*) as y0_"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -34,7 +33,7 @@ public void AvgTest() IType nhType = NHibernateUtil.GuessType(typeof (double)); SqlType[] sqlTypes = nhType.SqlTypes(this.factoryImpl); string sqlTypeString = factoryImpl.Dialect.GetCastTypeName(sqlTypes[0]); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = string.Format("avg(cast(sql_alias.Pay as {0})) as y0_",sqlTypeString); CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -46,7 +45,7 @@ public void MaxTest() ISession session = factory.OpenSession(); IProjection expression = Projections.Max("Pay"); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "max(sql_alias.Pay) as y0_"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -58,7 +57,7 @@ public void MinTest() ISession session = factory.OpenSession(); IProjection expression = Projections.Min("Pay"); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "min(sql_alias.Pay) as y0_"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -70,7 +69,7 @@ public void CountTest() ISession session = factory.OpenSession(); IProjection expression = Projections.Count("Pay"); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "count(sql_alias.Pay) as y0_"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -82,7 +81,7 @@ public void CountDistinctTest() ISession session = factory.OpenSession(); IProjection expression = Projections.CountDistinct("Pay"); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "count(distinct sql_alias.Pay) as y0_"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -95,7 +94,7 @@ public void NvlTest() 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()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "nvl(sql_alias.Name, sql_alias.address) as y0_"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -107,7 +106,7 @@ public void DistinctTest() ISession session = factory.OpenSession(); IProjection expression = Projections.Distinct(Projections.Property("Pay")); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "distinct sql_alias.Pay as y0_"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -119,10 +118,10 @@ public void GroupPropertyTest() ISession session = factory.OpenSession(); IProjection expression = Projections.GroupProperty("Pay"); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "sql_alias.Pay as y0_"; CompareSqlStrings(sqlString, expectedSql, 0); - SqlString groupSql = expression.ToGroupSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString groupSql = expression.ToGroupSqlString(criteria, criteriaQuery); string expectedGroupSql = "sql_alias.Pay"; CompareSqlStrings(groupSql, expectedGroupSql); session.Close(); @@ -134,7 +133,7 @@ public void IdTest() ISession session = factory.OpenSession(); IProjection expression = Projections.Id(); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "sql_alias.id_ as y0_"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -146,7 +145,7 @@ public void PropertyTest() ISession session = factory.OpenSession(); IProjection expression = Projections.Property("Pay"); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "sql_alias.Pay as y0_"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -161,7 +160,7 @@ public void SqlGroupProjectionTest() new IType[] {NHibernateUtil.Double} ); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "count(Pay)"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -175,7 +174,7 @@ public void SqlProjectionTest() new string[] {"CountOfPay"}, new IType[] {NHibernateUtil.Double}); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "count(Pay)"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); @@ -187,7 +186,7 @@ public void SumTest() ISession session = factory.OpenSession(); IProjection expression = Projections.Sum("Pay"); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, 0, criteriaQuery); string expectedSql = "sum(sql_alias.Pay) as y0_"; CompareSqlStrings(sqlString, expectedSql, 0); session.Close(); diff --git a/src/NHibernate.Test/ExpressionTest/PropertyExpressionFixture.cs b/src/NHibernate.Test/ExpressionTest/PropertyExpressionFixture.cs index a04e77ac9c1..57da29500a0 100644 --- a/src/NHibernate.Test/ExpressionTest/PropertyExpressionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/PropertyExpressionFixture.cs @@ -2,7 +2,6 @@ using NHibernate.DomainModel; using NHibernate.Criterion; using NHibernate.SqlCommand; -using NHibernate.Util; using NUnit.Framework; namespace NHibernate.Test.ExpressionTest @@ -26,7 +25,7 @@ public void SqlStringTest() ICriterion expression = Expression.EqProperty("Address", "Name"); CreateObjects(typeof(Simple), session); - SqlString sqlString = expression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = expression.ToSqlString(criteria, criteriaQuery); string expectedSql = "sql_alias.address = sql_alias.Name"; diff --git a/src/NHibernate.Test/ExpressionTest/SQLExpressionFixture.cs b/src/NHibernate.Test/ExpressionTest/SQLExpressionFixture.cs index 1bde6b77067..156703a1695 100644 --- a/src/NHibernate.Test/ExpressionTest/SQLExpressionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/SQLExpressionFixture.cs @@ -1,7 +1,6 @@ using NHibernate.DomainModel; using NHibernate.Criterion; using NHibernate.SqlCommand; -using NHibernate.Util; using NUnit.Framework; namespace NHibernate.Test.ExpressionTest @@ -17,7 +16,7 @@ public void StraightSqlTest() ICriterion sqlExpression = Expression.Sql("{alias}.address is not null"); CreateObjects(typeof(Simple), session); - SqlString sqlString = sqlExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = sqlExpression.ToSqlString(criteria, criteriaQuery); string expectedSql = "sql_alias.address is not null"; @@ -33,7 +32,7 @@ public void NoParamsSqlStringTest() ICriterion sqlExpression = Expression.Sql(new SqlString("{alias}.address is not null")); CreateObjects(typeof(Simple), session); - SqlString sqlString = sqlExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = sqlExpression.ToSqlString(criteria, criteriaQuery); string expectedSql = "sql_alias.address is not null"; @@ -56,7 +55,7 @@ public void WithParameterTest() ICriterion sqlExpression = Expression.Sql(builder.ToSqlString(), "some address", NHibernateUtil.String); CreateObjects(typeof(Simple), session); - SqlString sqlString = sqlExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = sqlExpression.ToSqlString(criteria, criteriaQuery); CompareSqlStrings(sqlString, expectedSql, 1); } diff --git a/src/NHibernate.Test/ExpressionTest/SimpleExpressionFixture.cs b/src/NHibernate.Test/ExpressionTest/SimpleExpressionFixture.cs index a1ce54c56ac..afa05ed7e83 100644 --- a/src/NHibernate.Test/ExpressionTest/SimpleExpressionFixture.cs +++ b/src/NHibernate.Test/ExpressionTest/SimpleExpressionFixture.cs @@ -3,7 +3,6 @@ using NHibernate.DomainModel.NHSpecific; using NHibernate.Criterion; using NHibernate.SqlCommand; -using NHibernate.Util; using NUnit.Framework; namespace NHibernate.Test.ExpressionTest @@ -28,7 +27,7 @@ public void SimpleSqlStringTest() ICriterion andExpression = Expression.Eq("Address", "12 Adress"); - SqlString sqlString = andExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = andExpression.ToSqlString(criteria, criteriaQuery); string expectedSql = "sql_alias.address = ?"; CompareSqlStrings(sqlString, expectedSql, 1); @@ -47,7 +46,7 @@ public void TestQuoting() ICriterion andExpression = Expression.Eq("Date", now); - SqlString sqlString = andExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = andExpression.ToSqlString(criteria, criteriaQuery); string quotedColumn = dialect.QuoteForColumnName("d[at]e_"); string expectedSql = "sql_alias." + quotedColumn + " = ?"; @@ -63,7 +62,7 @@ public void SimpleDateExpression() CreateObjects(typeof(Simple), session); ICriterion andExpression = Expression.Ge("Date", DateTime.Now); - SqlString sqlString = andExpression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass()); + SqlString sqlString = andExpression.ToSqlString(criteria, criteriaQuery); string expectedSql = "sql_alias.date_ >= ?"; CompareSqlStrings(sqlString, expectedSql, 1); @@ -78,7 +77,7 @@ public void MisspelledPropertyWithNormalizedEntityPersister() CreateObjects(typeof(Multi), session); ICriterion expression = Expression.Eq("MisspelledProperty", DateTime.Now); - Assert.Throws(() =>expression.ToSqlString(criteria, criteriaQuery, new CollectionHelper.EmptyMapClass())); + Assert.Throws(() =>expression.ToSqlString(criteria, criteriaQuery)); } } } diff --git a/src/NHibernate.Test/FilterTest/DynamicFilterTest.cs b/src/NHibernate.Test/FilterTest/DynamicFilterTest.cs index 60e5370868a..4f882bcc81a 100644 --- a/src/NHibernate.Test/FilterTest/DynamicFilterTest.cs +++ b/src/NHibernate.Test/FilterTest/DynamicFilterTest.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using log4net; using NHibernate.Cache; using NHibernate.Cache.Entry; @@ -195,6 +196,127 @@ public void CriteriaQueryFilters() testData.Release(); } + + [Test] + public void CriteriaControl() + { + using (var testData = new TestData(this)) + { + testData.Prepare(); + + // the subquery... + var subquery = DetachedCriteria + .For() + .SetProjection(Property.ForName("Name")); + + using (var session = OpenSession()) + using (var transaction = session.BeginTransaction()) + { + session.EnableFilter("fulfilledOrders").SetParameter("asOfDate", testData.lastMonth.Date); + session.EnableFilter("regionlist").SetParameter("regions", "APAC"); + + var result = session + .CreateCriteria() + .Add(Subqueries.In("steve", subquery)) + .List(); + + Assert.That(result.Count, Is.EqualTo(1)); + + transaction.Commit(); + } + } + } + + [Test] + public void CriteriaSubqueryWithFilters() + { + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // Criteria-subquery test + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + log.Info("Starting Criteria-subquery filter tests"); + using (var testData = new TestData(this)) + { + testData.Prepare(); + + using (var session = OpenSession()) + { + session.EnableFilter("region").SetParameter("region", "APAC"); + + log.Info("Criteria query against Department with a subquery on Salesperson in the APAC reqion..."); + var salespersonSubquery = DetachedCriteria.For() + .Add(Restrictions.Eq("Name", "steve")) + .SetProjection(Property.ForName("Department")); + + var departmentsQuery = session.CreateCriteria(). + Add(Subqueries.PropertyIn("Id", salespersonSubquery)); + var departments = departmentsQuery.List(); + + Assert.That(departments.Count, Is.EqualTo(1), "Incorrect department count"); + + log.Info("Criteria query against Department with a subquery on Salesperson in the FooBar reqion..."); + + session.EnableFilter("region").SetParameter("region", "Foobar"); + departments = departmentsQuery.List(); + + Assert.That(departments.Count, Is.EqualTo(0), "Incorrect department count"); + + log.Info("Criteria query against Order with a subquery for line items with a subquery on product and sold by a given sales person..."); + session.EnableFilter("region").SetParameter("region", "APAC"); + + var lineItemSubquery = DetachedCriteria.For() + .Add(Restrictions.Ge("Quantity", 1L)) + .CreateCriteria("Product") + .Add(Restrictions.Eq("Name", "Acme Hair Gel")) + .SetProjection(Property.ForName("Id")); + + var orders = session.CreateCriteria() + .Add(Subqueries.Exists(lineItemSubquery)) + .Add(Restrictions.Eq("Buyer", "gavin")) + .List(); + + Assert.That(orders.Count, Is.EqualTo(1), "Incorrect orders count"); + + log.Info("query against Order with a subquery for line items with a subquery line items where the product name is Acme Hair Gel and the quantity is greater than 1 in a given region and the product is effective as of last month"); + session.EnableFilter("region").SetParameter("region", "APAC"); + session.EnableFilter("effectiveDate").SetParameter("asOfDate", testData.lastMonth.Date); + + var productSubquery = DetachedCriteria.For() + . + Add(Restrictions.Eq("Name", "Acme Hair Gel")) + .SetProjection(Property.ForName("id")); + + lineItemSubquery = DetachedCriteria.For() + .Add(Restrictions.Ge("Quantity", 1L)) + .CreateCriteria("Product") + .Add(Subqueries.PropertyIn("Id", productSubquery)) + .SetProjection(Property.ForName("Id")); + + orders = session + .CreateCriteria() + .Add(Subqueries.Exists(lineItemSubquery)) + .Add(Restrictions.Eq("Buyer", "gavin")) + .List(); + + Assert.That(orders.Count, Is.EqualTo(1), "Incorrect orders count"); + + + log.Info("query against Order with a subquery for line items with a subquery line items where the product name is Acme Hair Gel and the quantity is greater than 1 in a given region and the product is effective as of 4 months ago"); + session.EnableFilter("region").SetParameter("region", "APAC"); + session.EnableFilter("effectiveDate").SetParameter("asOfDate", testData.fourMonthsAgo.Date); + + orders = session.CreateCriteria() + .Add(Subqueries.Exists(lineItemSubquery)) + .Add(Restrictions.Eq("Buyer", "gavin")) + .List(); + + Assert.That(orders.Count, Is.EqualTo(0), "Incorrect orders count"); + + session.Close(); + } + } + } + + [Test] public void GetFilters() { @@ -472,10 +594,7 @@ public void ManyToManyBaseThruCriteria() testData.Release(); } - protected override string MappingsAssembly - { - get { return "NHibernate.Test"; } - } + protected override string MappingsAssembly => "NHibernate.Test"; protected override IList Mappings { @@ -489,7 +608,7 @@ protected override IList Mappings } } - private class TestData + private class TestData:IDisposable { public long steveId; public long deptId; @@ -621,6 +740,11 @@ public void Release() transaction.Commit(); session.Close(); } + + public void Dispose() + { + Release(); + } } } } \ No newline at end of file diff --git a/src/NHibernate/Criterion/AbstractCriterion.cs b/src/NHibernate/Criterion/AbstractCriterion.cs index e82af1d29a1..6ce1d41247c 100644 --- a/src/NHibernate/Criterion/AbstractCriterion.cs +++ b/src/NHibernate/Criterion/AbstractCriterion.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.Engine; using NHibernate.SqlCommand; @@ -29,7 +28,7 @@ public abstract class AbstractCriterion : ICriterion /// Render a SqlString for the expression. /// /// A SqlString that contains a valid Sql fragment. - public abstract SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters); + public abstract SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery); /// /// Return typed values for all parameters in the rendered SQL fragment diff --git a/src/NHibernate/Criterion/AbstractEmptinessExpression.cs b/src/NHibernate/Criterion/AbstractEmptinessExpression.cs index 5d46ed26e62..d8d978ed662 100644 --- a/src/NHibernate/Criterion/AbstractEmptinessExpression.cs +++ b/src/NHibernate/Criterion/AbstractEmptinessExpression.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Text; using NHibernate.Engine; using NHibernate.Persister.Collection; @@ -33,7 +32,7 @@ public override sealed string ToString() return propertyName + (ExcludeEmpty ? " is not empty" : " is empty"); } - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { var entityName = criteriaQuery.GetEntityName(criteria, propertyName); var actualPropertyName = criteriaQuery.GetPropertyName(propertyName); diff --git a/src/NHibernate/Criterion/AggregateProjection.cs b/src/NHibernate/Criterion/AggregateProjection.cs index 6ff05a579c3..ce2a9f9804e 100644 --- a/src/NHibernate/Criterion/AggregateProjection.cs +++ b/src/NHibernate/Criterion/AggregateProjection.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.SqlCommand; using NHibernate.Engine; using NHibernate.Type; @@ -48,7 +47,7 @@ public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuer return new IType[] {criteriaQuery.GetType(criteria, propertyName)}; } - public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery) { if (projection == null) { @@ -62,8 +61,7 @@ public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuer projection.ToSqlString( criteria, loc, - criteriaQuery, - enabledFilters)), + criteriaQuery)), ") as y", loc.ToString(), "_"); @@ -74,7 +72,7 @@ public override bool IsGrouped get { return false; } } - public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { throw new InvalidOperationException("not a grouping projection"); } diff --git a/src/NHibernate/Criterion/AliasedProjection.cs b/src/NHibernate/Criterion/AliasedProjection.cs index c02a7131343..89ae7a6039d 100644 --- a/src/NHibernate/Criterion/AliasedProjection.cs +++ b/src/NHibernate/Criterion/AliasedProjection.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; - using NHibernate.SqlCommand; using NHibernate.Engine; using NHibernate.Type; @@ -19,14 +17,14 @@ protected internal AliasedProjection(IProjection projection, string alias) this.alias = alias; } - public virtual SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public virtual SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery) { - return projection.ToSqlString(criteria, position, criteriaQuery,enabledFilters); + return projection.ToSqlString(criteria, position, criteriaQuery); } - public virtual SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public virtual SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { - return projection.ToGroupSqlString(criteria, criteriaQuery,enabledFilters); + return projection.ToGroupSqlString(criteria, criteriaQuery); } public virtual IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery) diff --git a/src/NHibernate/Criterion/AvgProjection.cs b/src/NHibernate/Criterion/AvgProjection.cs index 1da0f23e1ed..9420547ae33 100644 --- a/src/NHibernate/Criterion/AvgProjection.cs +++ b/src/NHibernate/Criterion/AvgProjection.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.Engine; using NHibernate.SqlCommand; using NHibernate.SqlTypes; @@ -14,7 +13,7 @@ public class AvgProjection : AggregateProjection public AvgProjection(IProjection projection) : base("avg", projection) {} public AvgProjection(string propertyName) : base("avg", propertyName) {} - public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery) { ISessionFactoryImplementor factory = criteriaQuery.Factory; SqlType[] sqlTypeCodes = NHibernateUtil.Double.SqlTypes(factory); @@ -24,7 +23,7 @@ public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuer sql.Add("cast("); if (projection != null) { - sql.Add(SqlStringHelper.RemoveAsAliasesFromSql(projection.ToSqlString(criteria, loc, criteriaQuery, enabledFilters))); + sql.Add(SqlStringHelper.RemoveAsAliasesFromSql(projection.ToSqlString(criteria, loc, criteriaQuery))); } else { diff --git a/src/NHibernate/Criterion/BetweenExpression.cs b/src/NHibernate/Criterion/BetweenExpression.cs index bf87fbcad69..c07114d1f96 100644 --- a/src/NHibernate/Criterion/BetweenExpression.cs +++ b/src/NHibernate/Criterion/BetweenExpression.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq; using NHibernate.Engine; using NHibernate.SqlCommand; @@ -46,7 +45,7 @@ public BetweenExpression(string propertyName, object lo, object hi) _hi = hi; } - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { //TODO: add a default capacity SqlStringBuilder sqlBuilder = new SqlStringBuilder(); @@ -55,7 +54,7 @@ public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteri var lowType = parametersTypes[0]; var highType = parametersTypes[1]; SqlString[] columnNames = - CriterionUtil.GetColumnNames(_propertyName, _projection, criteriaQuery, criteria, enabledFilters); + CriterionUtil.GetColumnNames(_propertyName, _projection, criteriaQuery, criteria); if (columnNames.Length == 1) { diff --git a/src/NHibernate/Criterion/CastProjection.cs b/src/NHibernate/Criterion/CastProjection.cs index 5ea258d7b03..3019ddcbca5 100644 --- a/src/NHibernate/Criterion/CastProjection.cs +++ b/src/NHibernate/Criterion/CastProjection.cs @@ -1,7 +1,6 @@ namespace NHibernate.Criterion { using System; - using System.Collections.Generic; using Engine; using SqlCommand; using SqlTypes; @@ -29,7 +28,7 @@ public override bool IsAggregate get { return false; } } - public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery) { ISessionFactoryImplementor factory = criteriaQuery.Factory; SqlType[] sqlTypeCodes = type.SqlTypes(factory); @@ -39,7 +38,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri } string sqlType = factory.Dialect.GetCastTypeName(sqlTypeCodes[0]); int loc = position*GetHashCode(); - SqlString val = projection.ToSqlString(criteria, loc, criteriaQuery,enabledFilters); + SqlString val = projection.ToSqlString(criteria, loc, criteriaQuery); val = SqlStringHelper.RemoveAsAliasesFromSql(val); return new SqlString("cast( ", val, " as ", sqlType, ") as ", GetColumnAliases(position, criteria, criteriaQuery)[0]); @@ -63,9 +62,9 @@ public override bool IsGrouped } } - public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { - return projection.ToGroupSqlString(criteria, criteriaQuery, enabledFilters); + return projection.ToGroupSqlString(criteria, criteriaQuery); } } } diff --git a/src/NHibernate/Criterion/ConditionalProjection.cs b/src/NHibernate/Criterion/ConditionalProjection.cs index 303a8db4d67..46cf5833d2e 100644 --- a/src/NHibernate/Criterion/ConditionalProjection.cs +++ b/src/NHibernate/Criterion/ConditionalProjection.cs @@ -42,12 +42,12 @@ public override bool IsAggregate } } - public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery) { - SqlString condition = criterion.ToSqlString(criteria, criteriaQuery, enabledFilters); - SqlString ifTrue = whenTrue.ToSqlString(criteria, position + GetHashCode() + 1, criteriaQuery, enabledFilters); + SqlString condition = criterion.ToSqlString(criteria, criteriaQuery); + SqlString ifTrue = whenTrue.ToSqlString(criteria, position + GetHashCode() + 1, criteriaQuery); ifTrue = SqlStringHelper.RemoveAsAliasesFromSql(ifTrue); - SqlString ifFalse = whenFalse.ToSqlString(criteria, position + GetHashCode() + 2, criteriaQuery, enabledFilters); + SqlString ifFalse = whenFalse.ToSqlString(criteria, position + GetHashCode() + 2, criteriaQuery); ifFalse = SqlStringHelper.RemoveAsAliasesFromSql(ifFalse); return new SqlString("(case when ", condition, " then ", ifTrue, " else ", ifFalse, " end) as ", GetColumnAliases(position, criteria, criteriaQuery)[0]); @@ -112,8 +112,7 @@ public override bool IsGrouped } } - public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, - IDictionary enabledFilters) + public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { SqlStringBuilder buf = new SqlStringBuilder(); IProjection[] projections = criterion.GetProjections(); @@ -123,14 +122,14 @@ public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery cr { if (proj.IsGrouped) { - buf.Add(proj.ToGroupSqlString(criteria, criteriaQuery, enabledFilters)).Add(", "); + buf.Add(proj.ToGroupSqlString(criteria, criteriaQuery)).Add(", "); } } } if(whenFalse.IsGrouped) - buf.Add(whenFalse.ToGroupSqlString(criteria, criteriaQuery, enabledFilters)).Add(", "); + buf.Add(whenFalse.ToGroupSqlString(criteria, criteriaQuery)).Add(", "); if(whenTrue.IsGrouped) - buf.Add(whenTrue.ToGroupSqlString(criteria, criteriaQuery, enabledFilters)).Add(", "); + buf.Add(whenTrue.ToGroupSqlString(criteria, criteriaQuery)).Add(", "); if(buf.Count >= 2) { diff --git a/src/NHibernate/Criterion/ConstantProjection.cs b/src/NHibernate/Criterion/ConstantProjection.cs index 481cd6b6820..3504d633ab6 100644 --- a/src/NHibernate/Criterion/ConstantProjection.cs +++ b/src/NHibernate/Criterion/ConstantProjection.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq; using NHibernate.Engine; using NHibernate.SqlCommand; @@ -31,7 +30,7 @@ public override bool IsAggregate get { return false; } } - public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { throw new InvalidOperationException("not a grouping projection"); } @@ -41,7 +40,7 @@ public override bool IsGrouped get { return false; } } - public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery) { return new SqlString( criteriaQuery.NewQueryParameter(typedValue).Single(), diff --git a/src/NHibernate/Criterion/CountProjection.cs b/src/NHibernate/Criterion/CountProjection.cs index b9eb7fb5bdf..6c955d0791b 100644 --- a/src/NHibernate/Criterion/CountProjection.cs +++ b/src/NHibernate/Criterion/CountProjection.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.SqlCommand; using NHibernate.Type; using NHibernate.Util; @@ -27,7 +26,7 @@ public override string ToString() return (distinct) ? "distinct " + base.ToString() : base.ToString(); } - public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery) { var buf = new SqlStringBuilder().Add("count("); if (distinct) @@ -36,7 +35,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri } if (projection != null) { - buf.Add(SqlStringHelper.RemoveAsAliasesFromSql(projection.ToSqlString(criteria, position, criteriaQuery, enabledFilters))); + buf.Add(SqlStringHelper.RemoveAsAliasesFromSql(projection.ToSqlString(criteria, position, criteriaQuery))); } else { diff --git a/src/NHibernate/Criterion/CriterionUtil.cs b/src/NHibernate/Criterion/CriterionUtil.cs index b03b42d8245..38ed711a66f 100644 --- a/src/NHibernate/Criterion/CriterionUtil.cs +++ b/src/NHibernate/Criterion/CriterionUtil.cs @@ -13,13 +13,12 @@ public static SqlString[] GetColumnNames( string propertyName, IProjection projection, ICriteriaQuery criteriaQuery, - ICriteria criteria, - IDictionary enabledFilters) + ICriteria criteria) { if (projection == null) return GetColumnNamesUsingPropertyName(criteriaQuery, criteria, propertyName); else - return GetColumnNamesUsingProjection(projection, criteriaQuery, criteria, enabledFilters); + return GetColumnNamesUsingProjection(projection, criteriaQuery, criteria); } public static SqlString[] GetColumnNamesForSimpleExpression( @@ -27,7 +26,6 @@ public static SqlString[] GetColumnNamesForSimpleExpression( IProjection projection, ICriteriaQuery criteriaQuery, ICriteria criteria, - IDictionary enabledFilters, ICriterion criterion, object value) { @@ -42,17 +40,15 @@ public static SqlString[] GetColumnNamesForSimpleExpression( } else { - return GetColumnNamesUsingProjection(projection, criteriaQuery, criteria, enabledFilters); + return GetColumnNamesUsingProjection(projection, criteriaQuery, criteria); } } - internal static SqlString[] GetColumnNamesUsingProjection(IProjection projection, ICriteriaQuery criteriaQuery, ICriteria criteria, - IDictionary enabledFilters) + internal static SqlString[] GetColumnNamesUsingProjection(IProjection projection, ICriteriaQuery criteriaQuery, ICriteria criteria) { SqlString sqlString = projection.ToSqlString(criteria, criteriaQuery.GetIndexForAlias(), - criteriaQuery, - enabledFilters); + criteriaQuery); return new SqlString[] { SqlStringHelper.RemoveAsAliasesFromSql(sqlString) diff --git a/src/NHibernate/Criterion/Distinct.cs b/src/NHibernate/Criterion/Distinct.cs index 95b19d7deb7..993f403167a 100644 --- a/src/NHibernate/Criterion/Distinct.cs +++ b/src/NHibernate/Criterion/Distinct.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.Engine; using NHibernate.SqlCommand; using NHibernate.Type; @@ -16,15 +15,15 @@ public Distinct(IProjection proj) this.projection = proj; } - public virtual SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public virtual SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery) { return new SqlString("distinct ") - .Append(projection.ToSqlString(criteria, position, criteriaQuery,enabledFilters)); + .Append(projection.ToSqlString(criteria, position, criteriaQuery)); } - public virtual SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public virtual SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { - return projection.ToGroupSqlString(criteria, criteriaQuery,enabledFilters); + return projection.ToGroupSqlString(criteria, criteriaQuery); } public virtual IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery) diff --git a/src/NHibernate/Criterion/Example.cs b/src/NHibernate/Criterion/Example.cs index af0dc6362f8..c6002b01ea4 100644 --- a/src/NHibernate/Criterion/Example.cs +++ b/src/NHibernate/Criterion/Example.cs @@ -295,7 +295,7 @@ private object[] GetPropertyValues(IEntityPersister persister, ICriteria criteri return list.ToArray(); } - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { SqlStringBuilder builder = new SqlStringBuilder(); builder.Add(StringHelper.OpenParen); @@ -321,7 +321,6 @@ public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteri (IAbstractComponentType) propertyTypes[i], criteria, criteriaQuery, - enabledFilters, builder ); } @@ -332,7 +331,6 @@ public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteri propertyValue, criteria, criteriaQuery, - enabledFilters, builder ); } @@ -454,7 +452,6 @@ protected void AppendPropertyCondition( object propertyValue, ICriteria criteria, ICriteriaQuery cq, - IDictionary enabledFilters, SqlStringBuilder builder) { if (builder.Count > 1) @@ -465,7 +462,7 @@ protected void AppendPropertyCondition( ICriterion crit = propertyValue != null ? GetNotNullPropertyCriterion(propertyValue, propertyName) : new NullExpression(propertyName); - builder.Add(crit.ToSqlString(criteria, cq, enabledFilters)); + builder.Add(crit.ToSqlString(criteria, cq)); } protected virtual ICriterion GetNotNullPropertyCriterion(object propertyValue, string propertyName) @@ -484,7 +481,6 @@ protected void AppendComponentCondition( IAbstractComponentType type, ICriteria criteria, ICriteriaQuery criteriaQuery, - IDictionary enabledFilters, SqlStringBuilder builder) { if (component != null) @@ -507,7 +503,6 @@ protected void AppendComponentCondition( (IAbstractComponentType) subtype, criteria, criteriaQuery, - enabledFilters, builder); } else @@ -517,7 +512,6 @@ protected void AppendComponentCondition( value, criteria, criteriaQuery, - enabledFilters, builder ); } diff --git a/src/NHibernate/Criterion/GroupedProjection.cs b/src/NHibernate/Criterion/GroupedProjection.cs index c943828bf3b..6cf9c24c8a2 100644 --- a/src/NHibernate/Criterion/GroupedProjection.cs +++ b/src/NHibernate/Criterion/GroupedProjection.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.Engine; using NHibernate.SqlCommand; using NHibernate.Type; @@ -17,12 +16,12 @@ public GroupedProjection(IProjection projection) this.projection = projection; } - public virtual SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public virtual SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery) { - return renderedProjection = projection.ToSqlString(criteria, position, criteriaQuery, enabledFilters); + return renderedProjection = projection.ToSqlString(criteria, position, criteriaQuery); } - public virtual SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public virtual SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { //This is kind of a hack. The hack is based on the fact that ToGroupSqlString always called after ToSqlString. return SqlStringHelper.RemoveAsAliasesFromSql(renderedProjection); diff --git a/src/NHibernate/Criterion/ICriterion.cs b/src/NHibernate/Criterion/ICriterion.cs index 906db9aa8e2..417b6a409fe 100644 --- a/src/NHibernate/Criterion/ICriterion.cs +++ b/src/NHibernate/Criterion/ICriterion.cs @@ -1,4 +1,3 @@ -using System.Collections.Generic; using NHibernate.Engine; using NHibernate.SqlCommand; @@ -19,7 +18,7 @@ public interface ICriterion /// Render a SqlString fragment for the expression. /// /// A SqlString that contains a valid Sql fragment. - SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters); + SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery); /// /// Return typed values for all parameters in the rendered SQL fragment diff --git a/src/NHibernate/Criterion/IProjection.cs b/src/NHibernate/Criterion/IProjection.cs index 389f9625348..90fd2a6468c 100644 --- a/src/NHibernate/Criterion/IProjection.cs +++ b/src/NHibernate/Criterion/IProjection.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Data.Common; using NHibernate.SqlCommand; using NHibernate.Engine; @@ -16,22 +15,16 @@ public interface IProjection /// The criteria. /// The position. /// The criteria query. - /// The enabled filters. /// - SqlString ToSqlString(ICriteria criteria, int position, - ICriteriaQuery criteriaQuery, - IDictionary enabledFilters); + SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery); /// /// Render the SQL Fragment to be used in the Group By Clause. /// /// The criteria. /// The criteria query. - /// The enabled filters. /// - SqlString ToGroupSqlString(ICriteria criteria, - ICriteriaQuery criteriaQuery, - IDictionary enabledFilters); + SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery); /// /// Return types for a particular user-visible alias diff --git a/src/NHibernate/Criterion/IdentifierEqExpression.cs b/src/NHibernate/Criterion/IdentifierEqExpression.cs index 305c1e181e8..6654aba0ff9 100644 --- a/src/NHibernate/Criterion/IdentifierEqExpression.cs +++ b/src/NHibernate/Criterion/IdentifierEqExpression.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq; using NHibernate.Engine; using NHibernate.SqlCommand; @@ -30,7 +29,7 @@ public IdentifierEqExpression(object value) #region ICriterion Members - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { //Implementation changed from H3.2 to use SqlString string[] columns = criteriaQuery.GetIdentifierColumns(criteria); @@ -52,7 +51,7 @@ public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteri result.Add(columns[i]) .Add(" = "); - AddValueOrProjection(parameters, i, criteria, criteriaQuery, enabledFilters, result); + AddValueOrProjection(parameters, i, criteria, criteriaQuery, result); } if (columns.Length > 1) @@ -62,7 +61,7 @@ public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteri return result.ToSqlString(); } - private void AddValueOrProjection(Parameter[] parameters, int paramIndex, ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters, SqlStringBuilder result) + private void AddValueOrProjection(Parameter[] parameters, int paramIndex, ICriteria criteria, ICriteriaQuery criteriaQuery, SqlStringBuilder result) { if (_projection == null) { @@ -70,7 +69,7 @@ private void AddValueOrProjection(Parameter[] parameters, int paramIndex, ICrite } else { - SqlString sql = _projection.ToSqlString(criteria, GetHashCode(), criteriaQuery, enabledFilters); + SqlString sql = _projection.ToSqlString(criteria, GetHashCode(), criteriaQuery); result.Add(SqlStringHelper.RemoveAsAliasesFromSql(sql)); } } diff --git a/src/NHibernate/Criterion/IdentifierProjection.cs b/src/NHibernate/Criterion/IdentifierProjection.cs index c01adcd0787..03feb4773ee 100644 --- a/src/NHibernate/Criterion/IdentifierProjection.cs +++ b/src/NHibernate/Criterion/IdentifierProjection.cs @@ -5,8 +5,6 @@ namespace NHibernate.Criterion { - using System.Collections.Generic; - [Serializable] public class IdentifierProjection : SimpleProjection { @@ -31,7 +29,7 @@ public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuer return new IType[] {criteriaQuery.GetIdentifierType(criteria)}; } - public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery) { SqlStringBuilder buf = new SqlStringBuilder(); string[] cols = criteriaQuery.GetIdentifierColumns(criteria); @@ -60,7 +58,7 @@ public override bool IsAggregate get { return false; } } - public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { if (!grouped) { diff --git a/src/NHibernate/Criterion/InExpression.cs b/src/NHibernate/Criterion/InExpression.cs index 8707c2872f4..50aee00757c 100644 --- a/src/NHibernate/Criterion/InExpression.cs +++ b/src/NHibernate/Criterion/InExpression.cs @@ -49,7 +49,7 @@ public override IProjection[] GetProjections() return null; } - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { if (_projection == null) { @@ -65,7 +65,7 @@ public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteri //TODO: add default capacity SqlStringBuilder result = new SqlStringBuilder(); SqlString[] columnNames = - CriterionUtil.GetColumnNames(_propertyName, _projection, criteriaQuery, criteria, enabledFilters); + CriterionUtil.GetColumnNames(_propertyName, _projection, criteriaQuery, criteria); // Generate SqlString of the form: // columnName1 in (values) and columnName2 in (values) and ... diff --git a/src/NHibernate/Criterion/InsensitiveLikeExpression.cs b/src/NHibernate/Criterion/InsensitiveLikeExpression.cs index 60fd700ba80..7a66e3f92e2 100644 --- a/src/NHibernate/Criterion/InsensitiveLikeExpression.cs +++ b/src/NHibernate/Criterion/InsensitiveLikeExpression.cs @@ -59,12 +59,12 @@ public InsensitiveLikeExpression(string propertyName, string value, MatchMode ma { } - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { //TODO: add default capacity SqlStringBuilder sqlBuilder = new SqlStringBuilder(); SqlString[] columnNames = - CriterionUtil.GetColumnNames(propertyName, projection, criteriaQuery, criteria, enabledFilters); + CriterionUtil.GetColumnNames(propertyName, projection, criteriaQuery, criteria); if (columnNames.Length != 1) { diff --git a/src/NHibernate/Criterion/Junction.cs b/src/NHibernate/Criterion/Junction.cs index 3f0e528aee6..b1716728e9d 100644 --- a/src/NHibernate/Criterion/Junction.cs +++ b/src/NHibernate/Criterion/Junction.cs @@ -78,7 +78,7 @@ public override TypedValue[] GetTypedValues(ICriteria criteria, ICriteriaQuery c /// protected abstract SqlString EmptyExpression { get; } - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { if (this.criteria.Count == 0) { @@ -92,11 +92,11 @@ public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteri for (int i = 0; i < this.criteria.Count - 1; i++) { - sqlBuilder.Add(this.criteria[i].ToSqlString(criteria, criteriaQuery, enabledFilters)); + sqlBuilder.Add(this.criteria[i].ToSqlString(criteria, criteriaQuery)); sqlBuilder.Add(Op); } - sqlBuilder.Add(this.criteria[this.criteria.Count - 1].ToSqlString(criteria, criteriaQuery, enabledFilters)); + sqlBuilder.Add(this.criteria[this.criteria.Count - 1].ToSqlString(criteria, criteriaQuery)); sqlBuilder.Add(")"); diff --git a/src/NHibernate/Criterion/LikeExpression.cs b/src/NHibernate/Criterion/LikeExpression.cs index dd3f598f885..b093a40de52 100644 --- a/src/NHibernate/Criterion/LikeExpression.cs +++ b/src/NHibernate/Criterion/LikeExpression.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq; using NHibernate.Engine; using NHibernate.SqlCommand; @@ -59,9 +58,9 @@ public LikeExpression(string propertyName, string value, MatchMode matchMode, ch #region ICriterion Members - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { - SqlString[] columns = CriterionUtil.GetColumnNamesUsingProjection(projection, criteriaQuery, criteria, enabledFilters); + SqlString[] columns = CriterionUtil.GetColumnNamesUsingProjection(projection, criteriaQuery, criteria); if (columns.Length != 1) throw new HibernateException("Like may only be used with single-column properties / projections."); diff --git a/src/NHibernate/Criterion/LogicalExpression.cs b/src/NHibernate/Criterion/LogicalExpression.cs index 5e56060eb75..83ee3759dbc 100644 --- a/src/NHibernate/Criterion/LogicalExpression.cs +++ b/src/NHibernate/Criterion/LogicalExpression.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.Engine; using NHibernate.SqlCommand; @@ -68,13 +67,13 @@ public override IProjection[] GetProjections() /// /// A well formed SqlString for the Where clause. /// The SqlString will be enclosed by ( and ). - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { //TODO: add default capacity SqlStringBuilder sqlBuilder = new SqlStringBuilder(); - SqlString lhSqlString = _lhs.ToSqlString(criteria, criteriaQuery, enabledFilters); - SqlString rhSqlString = _rhs.ToSqlString(criteria, criteriaQuery, enabledFilters); + SqlString lhSqlString = _lhs.ToSqlString(criteria, criteriaQuery); + SqlString rhSqlString = _rhs.ToSqlString(criteria, criteriaQuery); sqlBuilder.Add(new SqlString[] {lhSqlString, rhSqlString}, "(", diff --git a/src/NHibernate/Criterion/NaturalIdentifier.cs b/src/NHibernate/Criterion/NaturalIdentifier.cs index 692e3b31e8b..6665475d260 100644 --- a/src/NHibernate/Criterion/NaturalIdentifier.cs +++ b/src/NHibernate/Criterion/NaturalIdentifier.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq.Expressions; using NHibernate.Criterion.Lambda; using NHibernate.Engine; @@ -13,10 +12,9 @@ public class NaturalIdentifier: ICriterion { private readonly Junction conjunction = new Conjunction(); - public SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, - IDictionary enabledFilters) + public SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { - return conjunction.ToSqlString(criteria, criteriaQuery, enabledFilters); + return conjunction.ToSqlString(criteria, criteriaQuery); } public TypedValue[] GetTypedValues(ICriteria criteria, ICriteriaQuery criteriaQuery) diff --git a/src/NHibernate/Criterion/NotExpression.cs b/src/NHibernate/Criterion/NotExpression.cs index ab5527ac039..745f04f42a9 100644 --- a/src/NHibernate/Criterion/NotExpression.cs +++ b/src/NHibernate/Criterion/NotExpression.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.Engine; using NHibernate.SqlCommand; @@ -23,12 +22,12 @@ public NotExpression(ICriterion criterion) _criterion = criterion; } - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { //TODO: set default capacity var builder = new SqlStringBuilder(); builder.Add("not ("); - builder.Add(_criterion.ToSqlString(criteria, criteriaQuery, enabledFilters)); + builder.Add(_criterion.ToSqlString(criteria, criteriaQuery)); builder.Add(")"); return builder.ToSqlString(); diff --git a/src/NHibernate/Criterion/NotNullExpression.cs b/src/NHibernate/Criterion/NotNullExpression.cs index 2c5a357a0dd..38bea97346d 100644 --- a/src/NHibernate/Criterion/NotNullExpression.cs +++ b/src/NHibernate/Criterion/NotNullExpression.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.Engine; using NHibernate.SqlCommand; @@ -35,13 +34,13 @@ public NotNullExpression(string propertyName) _propertyName = propertyName; } - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { //TODO: add default capacity SqlStringBuilder sqlBuilder = new SqlStringBuilder(); SqlString[] columnNames = - CriterionUtil.GetColumnNames(_propertyName, _projection, criteriaQuery, criteria, enabledFilters); + CriterionUtil.GetColumnNames(_propertyName, _projection, criteriaQuery, criteria); bool opNeeded = false; diff --git a/src/NHibernate/Criterion/NullExpression.cs b/src/NHibernate/Criterion/NullExpression.cs index 8e3b7fbc4e6..1c073f49694 100644 --- a/src/NHibernate/Criterion/NullExpression.cs +++ b/src/NHibernate/Criterion/NullExpression.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.Engine; using NHibernate.SqlCommand; @@ -34,13 +33,13 @@ public NullExpression(string propertyName) _propertyName = propertyName; } - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { //TODO: add default capacity SqlStringBuilder sqlBuilder = new SqlStringBuilder(); SqlString[] columnNames = - CriterionUtil.GetColumnNames(_propertyName, _projection, criteriaQuery, criteria, enabledFilters); + CriterionUtil.GetColumnNames(_propertyName, _projection, criteriaQuery, criteria); for (int i = 0; i < columnNames.Length; i++) { diff --git a/src/NHibernate/Criterion/Order.cs b/src/NHibernate/Criterion/Order.cs index c229ea2ca5c..83ac468d375 100644 --- a/src/NHibernate/Criterion/Order.cs +++ b/src/NHibernate/Criterion/Order.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Text; using NHibernate.Criterion; using NHibernate.Engine; @@ -42,7 +41,7 @@ public virtual SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteria if (projection != null) { SqlString sb = SqlString.Empty; - SqlString produced = this.projection.ToSqlString(criteria, 0, criteriaQuery, new Dictionary()); + SqlString produced = this.projection.ToSqlString(criteria, 0, criteriaQuery); SqlString truncated = SqlStringHelper.RemoveAsAliasesFromSql(produced); sb = sb.Append(truncated); sb = sb.Append(ascending ? " asc" : " desc"); diff --git a/src/NHibernate/Criterion/ProjectionList.cs b/src/NHibernate/Criterion/ProjectionList.cs index 3716afca30e..565d833de34 100644 --- a/src/NHibernate/Criterion/ProjectionList.cs +++ b/src/NHibernate/Criterion/ProjectionList.cs @@ -54,13 +54,13 @@ public IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery) return result; } - public SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery) { SqlStringBuilder buf = new SqlStringBuilder(); for (int i = 0; i < Length; i++) { IProjection proj = this[i]; - buf.Add(proj.ToSqlString(criteria, loc, criteriaQuery, enabledFilters)); + buf.Add(proj.ToSqlString(criteria, loc, criteriaQuery)); loc += proj.GetColumnAliases(loc, criteria, criteriaQuery).Length; if (i < elements.Count - 1) { @@ -70,7 +70,7 @@ public SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteri return buf.ToSqlString(); } - public SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { SqlStringBuilder buf = new SqlStringBuilder(); for (int i = 0; i < Length; i++) @@ -78,7 +78,7 @@ public SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQue IProjection proj = this[i]; if (proj.IsGrouped) { - buf.Add(proj.ToGroupSqlString(criteria, criteriaQuery,enabledFilters)) + buf.Add(proj.ToGroupSqlString(criteria, criteriaQuery)) .Add(", "); } } diff --git a/src/NHibernate/Criterion/PropertyExpression.cs b/src/NHibernate/Criterion/PropertyExpression.cs index 84ec0d96faa..d7db44e7ee7 100644 --- a/src/NHibernate/Criterion/PropertyExpression.cs +++ b/src/NHibernate/Criterion/PropertyExpression.cs @@ -68,13 +68,12 @@ protected PropertyExpression(string lhsPropertyName, IProjection rhsProjection) /// protected abstract string Op { get; } - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, - IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { SqlString[] columnNames = - CriterionUtil.GetColumnNames(_lhsPropertyName, _lhsProjection, criteriaQuery, criteria, enabledFilters); + CriterionUtil.GetColumnNames(_lhsPropertyName, _lhsProjection, criteriaQuery, criteria); SqlString[] otherColumnNames = - CriterionUtil.GetColumnNames(_rhsPropertyName, _rhsProjection, criteriaQuery, criteria, enabledFilters); + CriterionUtil.GetColumnNames(_rhsPropertyName, _rhsProjection, criteriaQuery, criteria); SqlStringBuilder sb = new SqlStringBuilder(); if (columnNames.Length > 1) diff --git a/src/NHibernate/Criterion/PropertyProjection.cs b/src/NHibernate/Criterion/PropertyProjection.cs index 9f7fe466853..e1a3b5c3e8e 100644 --- a/src/NHibernate/Criterion/PropertyProjection.cs +++ b/src/NHibernate/Criterion/PropertyProjection.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.SqlCommand; using NHibernate.Type; using NHibernate.Util; @@ -51,7 +50,7 @@ public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuer return new IType[] {criteriaQuery.GetType(criteria, propertyName)}; } - public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery) { SqlStringBuilder s = new SqlStringBuilder(); string[] cols = criteriaQuery.GetColumnsUsingProjection(criteria, propertyName); @@ -67,7 +66,7 @@ public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuer return s.ToSqlString(); } - public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { if (!grouped) { diff --git a/src/NHibernate/Criterion/RowCountProjection.cs b/src/NHibernate/Criterion/RowCountProjection.cs index 1a071c06ce4..ff6ad411159 100644 --- a/src/NHibernate/Criterion/RowCountProjection.cs +++ b/src/NHibernate/Criterion/RowCountProjection.cs @@ -4,8 +4,6 @@ namespace NHibernate.Criterion { - using System.Collections.Generic; - [Serializable] public class RowCountProjection : SimpleProjection { @@ -23,7 +21,7 @@ public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuer return new IType[] {NHibernateUtil.Int32}; } - public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery) { return new SqlString("count(*) as y", position.ToString(), "_"); } @@ -38,8 +36,7 @@ public override bool IsGrouped get { return false; } } - public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, - IDictionary enabledFilters) + public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { throw new InvalidOperationException("not a grouping projection"); diff --git a/src/NHibernate/Criterion/SQLCriterion.cs b/src/NHibernate/Criterion/SQLCriterion.cs index ff8ab44e660..06df9db44a3 100644 --- a/src/NHibernate/Criterion/SQLCriterion.cs +++ b/src/NHibernate/Criterion/SQLCriterion.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq; using NHibernate.Engine; using NHibernate.SqlCommand; @@ -31,7 +30,7 @@ public SQLCriterion(SqlString sql, object[] values, IType[] types) } } - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { var parameters = _sql.GetParameters().ToList(); var paramPos = 0; diff --git a/src/NHibernate/Criterion/SQLProjection.cs b/src/NHibernate/Criterion/SQLProjection.cs index f5ab04059da..bb257490dc5 100644 --- a/src/NHibernate/Criterion/SQLProjection.cs +++ b/src/NHibernate/Criterion/SQLProjection.cs @@ -5,7 +5,6 @@ namespace NHibernate.Criterion { - using System.Collections.Generic; using Engine; /// @@ -36,7 +35,7 @@ internal SQLProjection(string sql, string groupBy, string[] columnAliases, IType this.groupBy = groupBy; } - public SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery) { //SqlString result = new SqlString(criteriaQuery.GetSQLAlias(criteria)); //result.Replace(sql, "{alias}"); @@ -44,7 +43,7 @@ public SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteri return new SqlString(StringHelper.Replace(sql, "{alias}", criteriaQuery.GetSQLAlias(criteria))); } - public SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { return new SqlString(StringHelper.Replace(groupBy, "{alias}", criteriaQuery.GetSQLAlias(criteria))); } diff --git a/src/NHibernate/Criterion/SimpleExpression.cs b/src/NHibernate/Criterion/SimpleExpression.cs index bd82e7c71cf..be1266eda70 100644 --- a/src/NHibernate/Criterion/SimpleExpression.cs +++ b/src/NHibernate/Criterion/SimpleExpression.cs @@ -76,7 +76,7 @@ public object Value /// Converts the SimpleExpression to a . /// /// A SqlString that contains a valid Sql fragment. - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { SqlString[] columnNames = CriterionUtil.GetColumnNamesForSimpleExpression( @@ -84,7 +84,6 @@ public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteri _projection, criteriaQuery, criteria, - enabledFilters, this, value); diff --git a/src/NHibernate/Criterion/SimpleProjection.cs b/src/NHibernate/Criterion/SimpleProjection.cs index 04498ba1d86..3521d5b7476 100644 --- a/src/NHibernate/Criterion/SimpleProjection.cs +++ b/src/NHibernate/Criterion/SimpleProjection.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.SqlCommand; using NHibernate.Engine; using NHibernate.Type; @@ -56,7 +55,7 @@ public virtual string[] Aliases public abstract bool IsGrouped { get; } - public abstract SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters); + public abstract SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery); public abstract bool IsAggregate { get; } @@ -71,7 +70,7 @@ public virtual TypedValue[] GetTypedValues(ICriteria criteria, ICriteriaQuery cr return new TypedValue[0]; } - public abstract SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, IDictionary enabledFilters); + public abstract SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery); public abstract IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery); diff --git a/src/NHibernate/Criterion/SqlFunctionProjection.cs b/src/NHibernate/Criterion/SqlFunctionProjection.cs index 0e261eaf107..c958ce055f9 100644 --- a/src/NHibernate/Criterion/SqlFunctionProjection.cs +++ b/src/NHibernate/Criterion/SqlFunctionProjection.cs @@ -51,15 +51,14 @@ public override bool IsGrouped } } - public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, - IDictionary enabledFilters) + public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { SqlStringBuilder buf = new SqlStringBuilder(); foreach (IProjection projection in args) { if (projection.IsGrouped) { - buf.Add(projection.ToGroupSqlString(criteria, criteriaQuery, enabledFilters)).Add(", "); + buf.Add(projection.ToGroupSqlString(criteria, criteriaQuery)).Add(", "); } } if (buf.Count >= 2) @@ -69,15 +68,14 @@ public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery cr return buf.ToSqlString(); } - public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery, - IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery) { ISQLFunction sqlFunction = GetFunction(criteriaQuery); var arguments = new List(); for (int i = 0; i < args.Length; i++) { - SqlString projectArg = GetProjectionArgument(criteriaQuery, criteria, args[i], 0, enabledFilters); // The loc parameter is unused. + SqlString projectArg = GetProjectionArgument(criteriaQuery, criteria, args[i], 0); // The loc parameter is unused. arguments.Add(projectArg); } @@ -102,11 +100,9 @@ private ISQLFunction GetFunction(ICriteriaQuery criteriaQuery) return dialectFunction; } - private static SqlString GetProjectionArgument(ICriteriaQuery criteriaQuery, ICriteria criteria, - IProjection projection, int loc, - IDictionary enabledFilters) + private static SqlString GetProjectionArgument(ICriteriaQuery criteriaQuery, ICriteria criteria, IProjection projection, int loc) { - SqlString sql = projection.ToSqlString(criteria, loc, criteriaQuery, enabledFilters); + SqlString sql = projection.ToSqlString(criteria, loc, criteriaQuery); return SqlStringHelper.RemoveAsAliasesFromSql(sql); } diff --git a/src/NHibernate/Criterion/SubqueryExpression.cs b/src/NHibernate/Criterion/SubqueryExpression.cs index b9ff54595b1..6fa12f37936 100644 --- a/src/NHibernate/Criterion/SubqueryExpression.cs +++ b/src/NHibernate/Criterion/SubqueryExpression.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq; using NHibernate.Engine; using NHibernate.Impl; @@ -7,6 +6,7 @@ using NHibernate.Persister.Entity; using NHibernate.SqlCommand; using NHibernate.Type; +using NHibernate.Util; namespace NHibernate.Criterion { @@ -40,7 +40,7 @@ public IType[] GetTypes() protected abstract SqlString ToLeftSqlString(ICriteria criteria, ICriteriaQuery outerQuery); - public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { ISessionFactoryImplementor factory = criteriaQuery.Factory; @@ -60,10 +60,9 @@ public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteri IOuterJoinLoadable persister = (IOuterJoinLoadable) factory.GetEntityPersister(criteriaImpl.EntityOrClassName); - //patch to generate joins on subqueries - //stolen from CriteriaLoader - CriteriaJoinWalker walker = - new CriteriaJoinWalker(persister, innerQuery, factory, criteriaImpl, criteriaImpl.EntityOrClassName, enabledFilters); + criteriaImpl.Session = DeriveRootSession(criteria); + + var walker = new CriteriaJoinWalker(persister, innerQuery, factory, criteriaImpl, criteriaImpl.EntityOrClassName, criteriaImpl.Session.EnabledFilters); parameters = innerQuery.GetQueryParameters(); // parameters can be inferred only after initialize the walker @@ -99,6 +98,7 @@ public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteri return buf.ToSqlString(); } + public override string ToString() { if (prefixOp) @@ -117,10 +117,22 @@ public override IProjection[] GetProjections() return null; } - public ICriteria Criteria + // NH-1146 + public ICriteria Criteria => criteriaImpl; + + static ISessionImplementor DeriveRootSession(ICriteria criteria) { - // NH-1146 - get { return criteriaImpl; } + while (criteria is CriteriaImpl.Subcriteria subcriteria) + { + criteria = subcriteria.Parent; + } + if (criteria is CriteriaImpl criteriaImpl) + { + return criteriaImpl.Session; + } + // could happen for custom Criteria impls. Not likely, but... + // for long term solution, see HHH-3514 + return null; } } } \ No newline at end of file diff --git a/src/NHibernate/Criterion/SubqueryProjection.cs b/src/NHibernate/Criterion/SubqueryProjection.cs index eec6204059f..c7a68afdbfc 100644 --- a/src/NHibernate/Criterion/SubqueryProjection.cs +++ b/src/NHibernate/Criterion/SubqueryProjection.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using NHibernate.Engine; using NHibernate.Impl; using NHibernate.SqlCommand; @@ -40,13 +39,13 @@ public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuer return _subQuery.GetTypes(); } - public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery) { - return _subQuery.ToSqlString(criteria, criteriaQuery, enabledFilters) + return _subQuery.ToSqlString(criteria, criteriaQuery) .Append(new SqlString(" as y", loc.ToString(), "_")); } - public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary enabledFilters) + public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) { throw new InvalidOperationException("not a grouping projection"); } diff --git a/src/NHibernate/Loader/Criteria/CriteriaJoinWalker.cs b/src/NHibernate/Loader/Criteria/CriteriaJoinWalker.cs index c1a55a359d5..925811ef907 100644 --- a/src/NHibernate/Loader/Criteria/CriteriaJoinWalker.cs +++ b/src/NHibernate/Loader/Criteria/CriteriaJoinWalker.cs @@ -46,11 +46,11 @@ public CriteriaJoinWalker(IOuterJoinLoadable persister, CriteriaQueryTranslator if (translator.HasProjection) { InitProjection( - translator.GetSelect(enabledFilters), - translator.GetWhereCondition(enabledFilters), + translator.GetSelect(), + translator.GetWhereCondition(), translator.GetOrderBy(), translator.GetGroupBy(), - translator.GetHavingCondition(enabledFilters), + translator.GetHavingCondition(), enabledFilters, LockMode.None); @@ -61,7 +61,7 @@ public CriteriaJoinWalker(IOuterJoinLoadable persister, CriteriaQueryTranslator } else { - InitAll(translator.GetWhereCondition(enabledFilters), translator.GetOrderBy(), LockMode.None); + InitAll(translator.GetWhereCondition(), translator.GetOrderBy(), LockMode.None); resultTypes = new IType[] { TypeFactory.ManyToOne(persister.EntityName) }; @@ -228,7 +228,7 @@ protected override string GenerateRootAlias(string tableName) protected override SqlString GetWithClause(string path) { - return translator.GetWithClause(path, EnabledFilters); + return translator.GetWithClause(path); } } } \ No newline at end of file diff --git a/src/NHibernate/Loader/Criteria/CriteriaQueryTranslator.cs b/src/NHibernate/Loader/Criteria/CriteriaQueryTranslator.cs index ecae7a6e4de..5b02a62f3ab 100644 --- a/src/NHibernate/Loader/Criteria/CriteriaQueryTranslator.cs +++ b/src/NHibernate/Loader/Criteria/CriteriaQueryTranslator.cs @@ -156,9 +156,7 @@ public SqlString GetGroupBy() { if (rootCriteria.Projection.IsGrouped) { - return - rootCriteria.Projection.ToGroupSqlString(rootCriteria.ProjectionCriteria, this, - new CollectionHelper.EmptyMapClass()); + return rootCriteria.Projection.ToGroupSqlString(rootCriteria.ProjectionCriteria, this); } else { @@ -166,12 +164,11 @@ public SqlString GetGroupBy() } } - public SqlString GetSelect(IDictionary enabledFilters) + public SqlString GetSelect() { - return rootCriteria.Projection.ToSqlString(rootCriteria.ProjectionCriteria, 0, this, enabledFilters); + return rootCriteria.Projection.ToSqlString(rootCriteria.ProjectionCriteria, 0, this); } - internal IType ResultType(ICriteria criteria) { return TypeFactory.ManyToOne(GetEntityName(criteria)); @@ -194,7 +191,7 @@ public string[] ProjectedAliases get { return rootCriteria.Projection.Aliases; } } - public SqlString GetWhereCondition(IDictionary enabledFilters) + public SqlString GetWhereCondition() { SqlStringBuilder condition = new SqlStringBuilder(30); @@ -208,7 +205,7 @@ public SqlString GetWhereCondition(IDictionary enabledFilters) condition.Add(" and "); } first = false; - SqlString sqlString = entry.Criterion.ToSqlString(entry.Criteria, this, enabledFilters); + SqlString sqlString = entry.Criterion.ToSqlString(entry.Criteria, this); condition.Add(sqlString); } } @@ -708,12 +705,12 @@ public string GetPropertyName(string propertyName) return propertyName; } - public SqlString GetWithClause(string path, IDictionary enabledFilters) + public SqlString GetWithClause(string path) { ICriterion crit; if (withClauseMap.TryGetValue(path, out crit)) { - return crit == null ? null : crit.ToSqlString(GetCriteria(path), this, enabledFilters); + return crit == null ? null : crit.ToSqlString(GetCriteria(path), this); } return null; } @@ -774,7 +771,7 @@ public Parameter CreateTakeParameter(int value) return NewQueryParameter("take_",typedValue).Single(); } - public SqlString GetHavingCondition(IDictionary enabledFilters) + public SqlString GetHavingCondition() { SqlStringBuilder condition = new SqlStringBuilder(30); bool first = true; @@ -787,7 +784,7 @@ public SqlString GetHavingCondition(IDictionary enabledFilters) condition.Add(" and "); } first = false; - SqlString sqlString = entry.Criterion.ToSqlString(entry.Criteria, this, enabledFilters); + SqlString sqlString = entry.Criterion.ToSqlString(entry.Criteria, this); condition.Add(sqlString); } }