From: <jul...@us...> - 2011-01-18 07:02:55
|
Revision: 5363 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5363&view=rev Author: julian-maughan Date: 2011-01-18 07:02:44 +0000 (Tue, 18 Jan 2011) Log Message: ----------- Merged latest trunk (r5362) to ReadOnlyCriteria branch. Modified Paths: -------------- branches/ReadOnlyCriteria/nhibernate/ShowBuildMenu.bat branches/ReadOnlyCriteria/nhibernate/build-common/common-project.xml branches/ReadOnlyCriteria/nhibernate/build-common/common.xml branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/basic_mapping.xml branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/configuration.xml branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/manipulating_data.xml branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/performance.xml branches/ReadOnlyCriteria/nhibernate/lib/net/3.5/Remotion.Data.Linq.dll branches/ReadOnlyCriteria/nhibernate/releasenotes.txt branches/ReadOnlyCriteria/nhibernate/src/Iesi.Collections/Iesi.Collections.csproj branches/ReadOnlyCriteria/nhibernate/src/Iesi.Collections.Test/Iesi.Collections.Test.csproj branches/ReadOnlyCriteria/nhibernate/src/Iesi.Collections.sln branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Collection/PersistentIdentifierBag.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Criterion/Restrictions.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Driver/DriverBase.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Engine/CascadeStyle.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Engine/CascadingAction.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Engine/ISessionImplementor.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Event/Default/DefaultMergeEventListener.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Event/IEventSource.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/CaseNode.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElement.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/HqlTreeBuilder.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/HqlTreeNode.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/IQuery.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/ISession.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/IStatelessSession.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/AbstractQueryImpl.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/AbstractSessionImpl.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/SessionImpl.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/LinqExtensionMethods.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/NhQueryProvider.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/NhQueryable.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/ReWriters/AddLeftJoinsReWriter.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/Visitors/ExpressionKeyVisitor.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/Visitors/LeftJoinDetector.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/Visitors/QueryModelVisitor.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/Visitors/ResultOperatorProcessors/ProcessGroupBy.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/Visitors/ResultOperatorProcessors/ProcessOfType.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/NHibernate.csproj branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Persister/Collection/AbstractCollectionPersister.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/PropertyValueException.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/AbstractBinaryType.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/CompositeCustomType.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/CustomType.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/DateTime2Type.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/DateTimeType.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/EntityType.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Util/ArrayHelper.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/nhibernate-mapping.xsd branches/ReadOnlyCriteria/nhibernate/src/NHibernate.ByteCode.Castle/NHibernate.ByteCode.Castle.csproj branches/ReadOnlyCriteria/nhibernate/src/NHibernate.ByteCode.Castle.Tests/NHibernate.ByteCode.Castle.Tests.csproj branches/ReadOnlyCriteria/nhibernate/src/NHibernate.ByteCode.LinFu/NHibernate.ByteCode.LinFu.csproj branches/ReadOnlyCriteria/nhibernate/src/NHibernate.ByteCode.LinFu.Tests/App.config branches/ReadOnlyCriteria/nhibernate/src/NHibernate.ByteCode.LinFu.Tests/NHibernate.ByteCode.LinFu.Tests.csproj branches/ReadOnlyCriteria/nhibernate/src/NHibernate.ByteCode.Spring/NHibernate.ByteCode.Spring.csproj branches/ReadOnlyCriteria/nhibernate/src/NHibernate.ByteCode.Spring.Tests/App.config branches/ReadOnlyCriteria/nhibernate/src/NHibernate.ByteCode.Spring.Tests/NHibernate.ByteCode.Spring.Tests.csproj branches/ReadOnlyCriteria/nhibernate/src/NHibernate.DomainModel/NHibernate.DomainModel.csproj branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Everything.sln branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Example.Web/Web.Config branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/BinaryExpressionOrdererTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/EagerLoadTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ParameterisedQueries.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ProjectionsTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/WhereTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH479/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/TypesTest/Decima2lTypeFixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.TestDatabaseSetup/NHibernate.TestDatabaseSetup.csproj branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Tool.HbmXsd/NHibernate.Tool.HbmXsd.csproj branches/ReadOnlyCriteria/nhibernate/src/NHibernate.sln Added Paths: ----------- branches/ReadOnlyCriteria/.hgignore branches/ReadOnlyCriteria/nhibernate/Tools/Antlr/ branches/ReadOnlyCriteria/nhibernate/Tools/Antlr/antlr-3.2.jar branches/ReadOnlyCriteria/nhibernate/lib/net/3.5/Remotion.Data.Linq.pdb branches/ReadOnlyCriteria/nhibernate/lib/net/3.5/Remotion.Data.Linq.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Event/Default/EventCache.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHql.bat branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlDebug.bat branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalker.bat branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalkerDebug.bat branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/ReWriters/MoveOrderByToEndRewriter.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/ReWriters/ResultOperatorRewriter.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/ReWriters/ResultOperatorRewriterResult.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Util/EnumerableExtensions.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/A.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/CascadeMergeToChildBeforeParent.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/CascadeMergeToChildBeforeParentTest.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/MultiPathCircleCascade.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/MultiPathCircleCascadeTest.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/Node.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/Route.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/Tour.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/Transport.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/Vehicle.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/G.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/H.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/MultiPathCascade.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/MultiPathCascadeTest.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/AnyTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/GroupByTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/OrderByTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/SumTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/StatelessSessionQueringTest.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2118/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2118/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2118/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2228/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2228/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2228/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2228/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2280/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2280/InvalidSqlTest.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2280/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2280/Organisation.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2280/OrganisationCode.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2341/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2341/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2341/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2341/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2362/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2362/Category.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2362/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2362/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2362/Product.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2362/Supplier.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2386/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2386/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2386/Organisation.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2386/ResponsibleLegalPerson.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2386/Test.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2386/TradingName.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2412/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2412/Customer.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2412/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2412/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2412/Order.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2459/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2459/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2459/Test.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2459/TrainingComponent.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Classes.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2DTOs.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Tests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DTO.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DomainObject.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/AnyExtensionTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstExtensionTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstOrNullExtensionTests.cs Removed Paths: ------------- branches/ReadOnlyCriteria/nhibernate/Tools/Antlr/antlr-3.2.jar branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Hql/Ast/ANTLR/output/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/CascadeMergeToChildBeforeParent.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/CascadeMergeToChildBeforeParentTest.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/MultiPathCircleCascade.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/MultiPathCircleCascadeTest.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/Node.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/Route.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/Tour.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/Transport.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Cascade/Circle/Vehicle.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/AnyTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/GroupByTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/OrderByTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/SumTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/OrderByTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2118/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2118/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2228/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2228/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2228/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2280/InvalidSqlTest.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2280/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2280/Organisation.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2280/OrganisationCode.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2341/Domain.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2341/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2341/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2362/Category.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2362/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2362/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2362/Product.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2362/Supplier.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2386/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2386/Organisation.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2386/ResponsibleLegalPerson.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2386/Test.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2386/TradingName.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2412/Customer.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2412/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2412/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2412/Order.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2459/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2459/Test.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2459/TrainingComponent.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Classes.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2DTOs.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Tests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DTO.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DomainObject.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/AnyExtensionTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstExtensionTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/UtilityTest/EnumerableExtensionsTests/FirstOrNullExtensionTests.cs Property Changed: ---------------- branches/ReadOnlyCriteria/ branches/ReadOnlyCriteria/nhibernate/ branches/ReadOnlyCriteria/nhibernate/src/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Customer.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Model.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1927/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1928/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/ Property changes on: branches/ReadOnlyCriteria ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x:4505-4508,4510-4513,4537-4538 + /branches/2.1.x:4505-4508,4510-4513,4537-4538 /trunk:5306-5362 Copied: branches/ReadOnlyCriteria/.hgignore (from rev 5362, trunk/.hgignore) =================================================================== --- branches/ReadOnlyCriteria/.hgignore (rev 0) +++ branches/ReadOnlyCriteria/.hgignore 2011-01-18 07:02:44 UTC (rev 5363) @@ -0,0 +1,37 @@ +# Ignore file for Visual Studio 2008/2010 + +# use glob syntax +syntax: glob + +*.obj +*.exe +*.pdb +*.user +*.aps +*.pch +*.vspscc +*_i.c +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.cache +*.ilk +*.log +*.lib +*.sbr +*.scc +[Bb]in +[Db]ebug*/ +obj/ +[Rr]elease*/ +*resharper* +_ReSharper*/ +[Tt]est[Rr]esult* +[Bb]uild[Ll]og.* +*.[Pp]ublish.xml +glob:NHibernate.dll +glob:nhibernate\build\ +glob:AssemblyInfo.cs Property changes on: branches/ReadOnlyCriteria/nhibernate ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x/nhibernate:4690-4691,4696-4697,4711,4715-4716,4905-4908 + /branches/2.1.x/nhibernate:4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate:5306-5362 Modified: branches/ReadOnlyCriteria/nhibernate/ShowBuildMenu.bat =================================================================== --- branches/ReadOnlyCriteria/nhibernate/ShowBuildMenu.bat 2011-01-17 15:39:29 UTC (rev 5362) +++ branches/ReadOnlyCriteria/nhibernate/ShowBuildMenu.bat 2011-01-18 07:02:44 UTC (rev 5363) @@ -1,6 +1,5 @@ @echo off -set OLD_CD=%CD% -cd %~dp0 +pushd %~dp0 set NANT=Tools\nant\bin\NAnt.exe -t:net-3.5 @@ -17,9 +16,18 @@ echo F. Build NHibernate (Release) echo G. Build Release Package (Also runs tests and creates documentation) echo. -choice /C abcdefg +echo --- GRAMMAR --- +echo H. Grammar operations (related to Hql.g and HqlSqlWalker.g) +echo. +if exist %SYSTEMROOT%\System32\choice.exe ( goto prompt-choice ) +goto prompt-set + +:prompt-choice +choice /C:abcdefgh + if errorlevel 255 goto end +if errorlevel 8 goto grammar if errorlevel 7 goto build-release-package if errorlevel 6 goto build-release if errorlevel 5 goto build-debug @@ -29,6 +37,19 @@ if errorlevel 1 goto build-visual-studio if errorlevel 0 goto end +:prompt-set +set /p OPT=[A, B, C, D, E, F, G, H]? + +if /I "%OPT%"=="A" goto build-visual-studio +if /I "%OPT%"=="B" goto help-test-setup +if /I "%OPT%"=="C" goto help-larger-window +if /I "%OPT%"=="D" goto build-test +if /I "%OPT%"=="E" goto build-debug +if /I "%OPT%"=="F" goto build-release +if /I "%OPT%"=="G" goto build-release-package +if /I "%OPT%"=="H" goto grammar +goto prompt-set + :help-test-setup echo. echo 1. Install SQL Server 2008 (or use the database included with VS). @@ -88,6 +109,65 @@ %NANT% test goto end +:grammar +echo. +echo --- GRAMMAR --- +echo A. Regenerate HqlLexer.cs and HqlParser.cs from Hql.g. +echo B. Regenerate HqlSqlWalker.cs from HqlSqlWalker.g. +echo C. Regenerate Hql.g in debug mode. +echo D. Regenerate HqlSqlWalker.g in debug mode. +echo E. Quick instructions on using debug mode. +echo. + +if exist %SYSTEMROOT%\System32\choice.exe ( goto grammar-prompt-choice ) +goto grammar-prompt-set + +:grammar-prompt-choice +choice /C:abcde + +if errorlevel 255 goto end +if errorlevel 5 goto antlr-debug +if errorlevel 4 goto antlr-hqlsqlwalker-debug +if errorlevel 3 goto antlr-hql-debug +if errorlevel 2 goto antlr-hqlsqlwalker +if errorlevel 1 goto antlr-hql +if errorlevel 0 goto end + +:grammar-prompt-set +set /p OPT=[A, B, C, D, E]? + +if /I "%OPT%"=="A" goto antlr-hql +if /I "%OPT%"=="B" goto antlr-hqlsqlwalker +if /I "%OPT%"=="C" goto antlr-hql-debug +if /I "%OPT%"=="D" goto antlr-hqlsqlwalker-debug +if /I "%OPT%"=="E" goto antlr-debug +goto grammar-prompt-set + +:antlr-hql +call src\NHibernate\Hql\Ast\ANTLR\AntlrHql.bat +goto end + +:antlr-hqlsqlwalker +call src\NHibernate\Hql\Ast\ANTLR\AntlrHqlSqlWalker.bat +goto end + +:antlr-hql-debug +call src\NHibernate\Hql\Ast\ANTLR\AntlrHqlDebug.bat +goto end + +:antlr-hqlsqlwalker-debug +call src\NHibernate\Hql\Ast\ANTLR\AntlrHqlSqlWalkerDebug.bat +goto end + +:antlr-debug +echo To use the debug grammar: +echo 1. Create a unit test that runs the hql parser on the input you're interested in. +echo 2. Run the unit test. It will appear to stall. +echo 3. Download and run AntlrWorks. +echo 4. Choose "Debug Remote" and allow the default ports. +echo 5. You should now be connected and able to step through your grammar. +goto end + :end -cd %OLD_CD% +popd pause Property changes on: branches/ReadOnlyCriteria/nhibernate/Tools/Antlr ___________________________________________________________________ Added: bugtraq:url + http://jira.nhibernate.org/browse/%BUGID% Added: bugtraq:logregex + NH-\d+ Deleted: branches/ReadOnlyCriteria/nhibernate/Tools/Antlr/antlr-3.2.jar =================================================================== (Binary files differ) Copied: branches/ReadOnlyCriteria/nhibernate/Tools/Antlr/antlr-3.2.jar (from rev 5362, trunk/nhibernate/Tools/Antlr/antlr-3.2.jar) =================================================================== (Binary files differ) Modified: branches/ReadOnlyCriteria/nhibernate/build-common/common-project.xml =================================================================== --- branches/ReadOnlyCriteria/nhibernate/build-common/common-project.xml 2011-01-17 15:39:29 UTC (rev 5362) +++ branches/ReadOnlyCriteria/nhibernate/build-common/common-project.xml 2011-01-18 07:02:44 UTC (rev 5363) @@ -108,6 +108,7 @@ output="${bin.dir}/${project::get-name()}.dll" doc="${bin.dir}/${project::get-name()}.xml" if="${sign}" + optimize="${build.release}" > <nowarn> <warning number="1591" /> <!-- No XML comment for publicly visible member --> @@ -124,6 +125,7 @@ output="${bin.dir}/${project::get-name()}.dll" doc="${bin.dir}/${project::get-name()}.xml" unless="${sign}" + optimize="${build.release}" > <nowarn> <warning number="1591" /> <!-- No XML comment for publicly visible member --> Modified: branches/ReadOnlyCriteria/nhibernate/build-common/common.xml =================================================================== --- branches/ReadOnlyCriteria/nhibernate/build-common/common.xml 2011-01-17 15:39:29 UTC (rev 5362) +++ branches/ReadOnlyCriteria/nhibernate/build-common/common.xml 2011-01-18 07:02:44 UTC (rev 5363) @@ -84,7 +84,7 @@ effectively SP0). --> - <property name="project.version" value="3.0.0.GA" overwrite="false" /> + <property name="project.version" value="3.0.1.GA" overwrite="false" /> <!-- Compute short project version (major.minor) using a regex --> <regex input="${project.version}" pattern="^(?'shortversion'\d+\.\d+)" /> Modified: branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/basic_mapping.xml =================================================================== --- branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/basic_mapping.xml 2011-01-17 15:39:29 UTC (rev 5362) +++ branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/basic_mapping.xml 2011-01-18 07:02:44 UTC (rev 5363) @@ -225,7 +225,7 @@ <callout arearefs="class2"> <para> <literal>table</literal>(optional - defaults to the unqualified class name): The name of its database table. - </para> + </para> </callout> <callout arearefs="class3"> <para> @@ -1739,8 +1739,7 @@ insert="true|false" upate="true|false" access="field|property|nosetter|ClassName" - optimistic-lock="true|false" -> + optimistic-lock="true|false"> <property ...../> <many-to-one .... /> @@ -1805,6 +1804,113 @@ </sect2> + <sect2 id="mapping-declaration-properties"> + <title>properties</title> + + <para> + The <literal><properties></literal> element allows the + definition of a named, logical grouping of the properties of a class. + The most important use of the construct is that it allows a combination + of properties to be the target of a <literal>property-ref</literal>. It + is also a convenient way to define a multi-column unique constraint. For + example: + </para> + + <programlistingco> + <areaspec> + <area coords="2 60" id="properties1" /> + <area coords="3 60" id="properties2" /> + <area coords="4 60" id="properties3" /> + <area coords="5 60" id="properties4" /> + <area coords="6 60" id="properties5" /> + </areaspec> + + <programlisting><![CDATA[<properties + name="logicalName" + insert="true|false" + update="true|false" + optimistic-lock="true|false" + unique="true|false"> + + <property .../> + <many-to-one .../> + ........ +</properties>]]></programlisting> + + <calloutlist> + <callout arearefs="properties1"> + <para> + <literal>name</literal>: the logical name of the grouping. + It is <emphasis>not</emphasis> an actual property name. + </para> + </callout> + + <callout arearefs="properties2"> + <para> + <literal>insert</literal>: do the mapped columns appear in + SQL <literal>INSERTs</literal>? + </para> + </callout> + + <callout arearefs="properties3"> + <para> + <literal>update</literal>: do the mapped columns appear in + SQL <literal>UPDATEs</literal>? + </para> + </callout> + + <callout arearefs="properties4"> + <para> + <literal>optimistic-lock</literal> (optional - defaults to + <literal>true</literal>): specifies that updates to these + properties either do or do not require acquisition of the + optimistic lock. It determines if a version increment should occur + when these properties are dirty. + </para> + </callout> + + <callout arearefs="properties5"> + <para> + <literal>unique</literal> (optional - defaults to + <literal>false</literal>): specifies that a unique constraint + exists upon all mapped columns of the component. + </para> + </callout> + </calloutlist> + </programlistingco> + + <para> + For example, if we have the following + <literal><![CDATA[<properties>]]></literal> mapping: + </para> + + <programlisting role="XML"><![CDATA[<class name="Person"> + <id name="personNumber" /> + <properties name="name" unique="true" update="false"> + <property name="firstName" /> + <property name="lastName" /> + <property name="initial" /> + </properties> +</class>]]></programlisting> + + <para> + You might have some legacy data association that refers to this + unique key of the <literal>Person</literal> table, instead of to the + primary key: + </para> + + <programlisting role="XML"><![CDATA[<many-to-one name="owner" class="Person" property-ref="name"> + <column name="firstName" /> + <column name="lastName" /> + <column name="initial" /> +</many-to-one>]]></programlisting> + + <para> + The use of this outside the context of mapping legacy data is not + recommended. + </para> + </sect2> + <sect2 id="mapping-declaration-subclass"> <title>subclass</title> @@ -1830,6 +1936,7 @@ dynamic-insert="true|false"> <property .... /> + <properties .... /> ..... </subclass>]]></programlisting> <calloutlist> @@ -1899,6 +2006,7 @@ <key .... > <property .... /> + <properties .... /> ..... </joined-subclass>]]></programlisting> <calloutlist> @@ -2003,6 +2111,7 @@ node="element-name"> <property .... /> + <properties .... /> ..... </union-subclass>]]></programlisting> <calloutlist> Modified: branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/configuration.xml =================================================================== --- branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/configuration.xml 2011-01-17 15:39:29 UTC (rev 5362) +++ branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/configuration.xml 2011-01-18 07:02:44 UTC (rev 5363) @@ -568,7 +568,32 @@ </para> </entry> </row> - <row> + <row> + <entry> + <literal>hbm2ddl.keywords</literal> + </entry> + <entry> + Automatically import <literal>reserved/keywords</literal> from the database when the + <literal>ISessionFactory</literal> is created. + <para> + <emphasis role="strong">none :</emphasis> + disable any operation regarding RDBMS KeyWords + </para> + <para> + <emphasis role="strong">keywords :</emphasis> + imports all RDBMS KeyWords where the <literal>Dialect</literal> can provide the implementation of <literal>IDataBaseSchema</literal>. + </para> + <para> + <emphasis role="strong">auto-quote :</emphasis> + imports all RDBMS KeyWords and auto-quote all table-names/column-names . + </para> + <para> + <emphasis role="strong">eg.</emphasis> + <literal>none</literal> | <literal>keywords</literal> | <literal>auto-quote</literal> + </para> + </entry> + </row> + <row> <entry> <literal>use_proxy_validator</literal> </entry> Modified: branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/manipulating_data.xml =================================================================== --- branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/manipulating_data.xml 2011-01-17 15:39:29 UTC (rev 5362) +++ branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/manipulating_data.xml 2011-01-18 07:02:44 UTC (rev 5363) @@ -633,14 +633,14 @@ </itemizedlist> <para> - The last case can be avoided by using <literal>SaveOrUpdateCopy(Object o)</literal>. This method + The last case can be avoided by using <literal>Merge(Object o)</literal>. This method copies the state of the given object onto the persistent object with the same identifier. If there is no persistent instance currently associated with the session, it will be loaded. The method returns the persistent instance. If the given instance is unsaved or does not exist in the database, NHibernate will save it and return it as a newly persistent instance. Otherwise, the given instance does not become associated with the session. In most applications with detached objects, you need both methods, <literal>SaveOrUpdate()</literal> - and <literal>SaveOrUpdateCopy()</literal>. + and <literal>Merge()</literal>. </para> </sect2> Modified: branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/performance.xml =================================================================== --- branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/performance.xml 2011-01-17 15:39:29 UTC (rev 5362) +++ branches/ReadOnlyCriteria/nhibernate/doc/reference/modules/performance.xml 2011-01-18 07:02:44 UTC (rev 5363) @@ -481,7 +481,7 @@ <listitem> <para> You may also attach a previously loaded object to a new <literal>ISession</literal> - with <literal>SaveOrUpdateCopy()</literal> or <literal>Lock()</literal> before + with <literal>Merge()</literal> or <literal>Lock()</literal> before accessing uninitialized collections (or other proxies). No, NHibernate does not, and certainly <emphasis>should</emphasis> not do this automatically, since it would introduce ad hoc transaction semantics! Modified: branches/ReadOnlyCriteria/nhibernate/lib/net/3.5/Remotion.Data.Linq.dll =================================================================== (Binary files differ) Copied: branches/ReadOnlyCriteria/nhibernate/lib/net/3.5/Remotion.Data.Linq.pdb (from rev 5362, trunk/nhibernate/lib/net/3.5/Remotion.Data.Linq.pdb) =================================================================== (Binary files differ) Copied: branches/ReadOnlyCriteria/nhibernate/lib/net/3.5/Remotion.Data.Linq.xml (from rev 5362, trunk/nhibernate/lib/net/3.5/Remotion.Data.Linq.xml) =================================================================== --- branches/ReadOnlyCriteria/nhibernate/lib/net/3.5/Remotion.Data.Linq.xml (rev 0) +++ branches/ReadOnlyCriteria/nhibernate/lib/net/3.5/Remotion.Data.Linq.xml 2011-01-18 07:02:44 UTC (rev 5363) @@ -0,0 +1,1253 @@ +<?xml version="1.0" encoding="utf-8"?><doc><assembly> + <name>Remotion.Data.Linq</name> + </assembly><members><member name="T:Remotion.Data.Linq.DefaultQueryProvider"><summary> + Represents a default implementation of <see cref="T:Remotion.Data.Linq.QueryProviderBase" /> that is automatically used by <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> + unless a custom <see cref="T:System.Linq.IQueryProvider" /> is specified. The <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> executes queries by parsing them into + an instance of type <see cref="T:Remotion.Data.Linq.QueryModel" />, which is then passed to an implementation of <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> to obtain the + result set. + </summary></member><member name="T:Remotion.Data.Linq.QueryProviderBase"><summary> + Provides a default implementation of <see cref="T:System.Linq.IQueryProvider" /> that executes queries (subclasses of <see cref="T:Remotion.Data.Linq.QueryableBase`1" />) by + first parsing them into a <see cref="T:Remotion.Data.Linq.QueryModel" /> and then passing that to a given implementation of <see cref="T:Remotion.Data.Linq.IQueryExecutor" />. + Usually, <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> should be used unless <see cref="M:Remotion.Data.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)" /> must be manually implemented. + </summary></member><member name="M:Remotion.Data.Linq.QueryProviderBase.#ctor(Remotion.Data.Linq.IQueryExecutor)"><summary> + Initializes a new instance of <see cref="T:Remotion.Data.Linq.QueryProviderBase" /> using the default <see cref="T:Remotion.Data.Linq.Parsing.Structure.MethodCallExpressionNodeTypeRegistry" />. + </summary><param name="executor">The <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> used to execute queries against a specific query backend.</param></member><member name="M:Remotion.Data.Linq.QueryProviderBase.#ctor(Remotion.Data.Linq.IQueryExecutor,Remotion.Data.Linq.Parsing.Structure.MethodCallExpressionNodeTypeRegistry)"><summary> + Initializes a new instance of <see cref="T:Remotion.Data.Linq.QueryProviderBase" /> using a custom <see cref="T:Remotion.Data.Linq.Parsing.Structure.MethodCallExpressionNodeTypeRegistry" />. Use this + constructor to specify a specific set of parsers to use when analyzing the query. + </summary><param name="executor">The <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> used to execute queries against a specific query backend.</param><param name="nodeTypeRegistry">The <see cref="T:Remotion.Data.Linq.Parsing.Structure.MethodCallExpressionNodeTypeRegistry" /> containing the <see cref="T:System.Linq.Expressions.MethodCallExpression" /> + parsers that should be used when parsing queries.</param></member><member name="M:Remotion.Data.Linq.QueryProviderBase.CreateQuery(System.Linq.Expressions.Expression)"><summary> + Constructs an <see cref="T:System.Linq.IQueryable" /> object that can evaluate the query represented by a specified expression tree. This + method delegates to <see cref="M:Remotion.Data.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)" />. + </summary><param name="expression">An expression tree that represents a LINQ query.</param></member><member name="M:Remotion.Data.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)"><summary> + Constructs an <see cref="T:System.Linq.IQueryable`1" /> object that can evaluate the query represented by a specified expression tree. This method is + called by the standard query operators defined by the <see cref="T:System.Linq.Queryable" /> class. + </summary><param name="expression">An expression tree that represents a LINQ query.</param></member><member name="M:Remotion.Data.Linq.QueryProviderBase.Execute``1(System.Linq.Expressions.Expression)"><summary> + Executes the query defined by the specified expression by parsing it with a + <see cref="T:Remotion.Data.Linq.Parsing.Structure.QueryParser" /> and then running it through the <see cref="P:Remotion.Data.Linq.QueryProviderBase.Executor" />. + This method is invoked through the <see cref="T:System.Linq.IQueryProvider" /> interface by methods such as + <see cref="M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0})" /> and + <see cref="M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0})" />, and it's also invoked by <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> + when the <see cref="T:System.Linq.IQueryable`1" /> is enumerated. + </summary></member><member name="M:Remotion.Data.Linq.QueryProviderBase.GenerateQueryModel(System.Linq.Expressions.Expression)"><summary> + The method generates a <see cref="T:Remotion.Data.Linq.QueryModel" />. + </summary><param name="expression">The query as expression chain.</param></member><member name="P:Remotion.Data.Linq.QueryProviderBase.Executor"><summary> + Gets or sets the implementation of <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> used to execute queries created via <see cref="M:Remotion.Data.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)" />. + </summary></member><member name="P:Remotion.Data.Linq.QueryProviderBase.ExpressionTreeParser"><summary> + Gets the <see cref="P:Remotion.Data.Linq.QueryProviderBase.ExpressionTreeParser" /> used by this <see cref="T:Remotion.Data.Linq.QueryProviderBase" /> to parse LINQ <see cref="T:System.Linq.Expressions.Expression" /> + trees. + </summary></member><member name="M:Remotion.Data.Linq.DefaultQueryProvider.CreateQuery``1(System.Linq.Expressions.Expression)"><summary> + Creates a new <see cref="T:System.Linq.IQueryable" /> (of type <see cref="P:Remotion.Data.Linq.DefaultQueryProvider.QueryableType" /> with <typeparamref name="T" /> as its generic argument) that + represents the query defined by <paramref name="expression" /> and is able to enumerate its results. + </summary><param name="expression">An expression representing the query for which a <see cref="T:System.Linq.IQueryable`1" /> should be created.</param></member><member name="P:Remotion.Data.Linq.DefaultQueryProvider.QueryableType"><summary> + Gets the type of queryable created by this provider. This is the generic type definition of an implementation of <see cref="T:System.Linq.IQueryable`1" /> + (usually a subclass of <see cref="T:Remotion.Data.Linq.QueryableBase`1" />) with exactly one type argument. + </summary></member><member name="T:Remotion.Data.Linq.IQueryExecutor"><summary> + Constitutes the bridge between re-linq and a concrete query provider implementation. Concrete providers implement this interface + and <see cref="T:Remotion.Data.Linq.QueryProviderBase" /> calls the respective method of the interface implementation when a query is to be executed. + </summary></member><member name="M:Remotion.Data.Linq.IQueryExecutor.ExecuteScalar``1(Remotion.Data.Linq.QueryModel)"><summary> + Executes the given <paramref name="queryModel" /> as a scalar query, i.e. as a query returning a scalar value of type <typeparamref name="T" />. + The query ends with a scalar result operator, for example a <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.CountResultOperator" /> or a <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.SumResultOperator" />. + </summary><param name="queryModel">The <see cref="T:Remotion.Data.Linq.QueryModel" /> representing the query to be executed. Analyze this via an + <see cref="T:Remotion.Data.Linq.IQueryModelVisitor" />.</param></member><member name="M:Remotion.Data.Linq.IQueryExecutor.ExecuteSingle``1(Remotion.Data.Linq.QueryModel,System.Boolean)"><summary> + Executes the given <paramref name="queryModel" /> as a single object query, i.e. as a query returning a single object of type + <typeparamref name="T" />. + The query ends with a single result operator, for example a <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.FirstResultOperator" /> or a <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.SingleResultOperator" />. + </summary><param name="queryModel">The <see cref="T:Remotion.Data.Linq.QueryModel" /> representing the query to be executed. Analyze this via an + <see cref="T:Remotion.Data.Linq.IQueryModelVisitor" />.</param><param name="returnDefaultWhenEmpty">If <see langword="true" />, the executor must return a default value when its result set is empty; + if <see langword="false" />, it should throw an <see cref="T:System.InvalidOperationException" /> when its result set is empty.</param></member><member name="M:Remotion.Data.Linq.IQueryExecutor.ExecuteCollection``1(Remotion.Data.Linq.QueryModel)"><summary> + Executes the given <paramref name="queryModel" /> as a collection query, i.e. as a query returning objects of type <typeparamref name="T" />. + The query does not end with a scalar result operator, but it can end with a single result operator, for example + <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.SingleResultOperator" /> or <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.FirstResultOperator" />. In such a case, the returned enumerable must yield exactly + one object (or none if the last result operator allows empty result sets). + </summary><param name="queryModel">The <see cref="T:Remotion.Data.Linq.QueryModel" /> representing the query to be executed. Analyze this via an + <see cref="T:Remotion.Data.Linq.IQueryModelVisitor" />.</param></member><member name="T:Remotion.Data.Linq.IQueryModelVisitor"><summary> + Defines an interface for visiting the clauses of a <see cref="T:Remotion.Data.Linq.QueryModel" />. + </summary></member><member name="T:Remotion.Data.Linq.QueryableBase`1"><summary> + Acts as a common base class for <see cref="T:System.Linq.IQueryable`1" /> implementations based on re-linq. In a specific LINQ provider, a custom queryable + class should be derived from <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> which supplies an implementation of <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> that is used to + execute the query. This is then used as an entry point (the main data source) of a LINQ query. + </summary></member><member name="M:Remotion.Data.Linq.QueryableBase`1.#ctor(Remotion.Data.Linq.IQueryExecutor)"><summary> + Initializes a new instance of the <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> class with a <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> and the given + <paramref name="executor" />. This constructor should be used by subclasses to begin a new query. The <see cref="P:Remotion.Data.Linq.QueryableBase`1.Expression" /> generated by + this constructor is a <see cref="T:System.Linq.Expressions.ConstantExpression" /> pointing back to this <see cref="T:Remotion.Data.Linq.QueryableBase`1" />. + </summary><param name="executor">The <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> used to execute the query represented by this <see cref="T:Remotion.Data.Linq.QueryableBase`1" />.</param></member><member name="M:Remotion.Data.Linq.QueryableBase`1.#ctor(System.Linq.IQueryProvider)"><summary> + Initializes a new instance of the <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> class with a specific <see cref="T:System.Linq.IQueryProvider" />. This constructor + should only be used to begin a query when <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> does not fit the requirements. + </summary><param name="provider">The provider used to execute the query represented by this <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> and to construct + queries around this <see cref="T:Remotion.Data.Linq.QueryableBase`1" />.</param></member><member name="M:Remotion.Data.Linq.QueryableBase`1.#ctor(System.Linq.IQueryProvider,System.Linq.Expressions.Expression)"><summary> + Initializes a new instance of the <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> class with a given <paramref name="provider" /> and + <paramref name="expression" />. A constructor with a matching signature must be exposed on subclasses because it is used by + <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> to construct queries around this <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> when a query method (e.g. of the + <see cref="T:System.Linq.Queryable" /> class) is called. + </summary><param name="provider">The provider used to execute the query represented by this <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> and to construct + queries around this <see cref="T:Remotion.Data.Linq.QueryableBase`1" />.</param><param name="expression">The expression representing the query.</param></member><member name="M:Remotion.Data.Linq.QueryableBase`1.GetEnumerator"><summary> + Executes the query via the <see cref="P:Remotion.Data.Linq.QueryableBase`1.Provider" /> and returns an enumerator that iterates through the items returned by the query. + </summary></member><member name="P:Remotion.Data.Linq.QueryableBase`1.Expression"><summary> + Gets the expression tree that is associated with the instance of <see cref="T:System.Linq.IQueryable" />. This expression describes the + query represented by this <see cref="T:Remotion.Data.Linq.QueryableBase`1" />. + </summary></member><member name="P:Remotion.Data.Linq.QueryableBase`1.Provider"><summary> + Gets the query provider that is associated with this data source. The provider is used to execute the query. By default, a + <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> is used that parses the query and passes it on to an implementation of <see cref="T:Remotion.Data.Linq.IQueryExecutor" />. + </summary></member><member name="P:Remotion.Data.Linq.QueryableBase`1.ElementType"><summary> + Gets the type of the element(s) that are returned when the expression tree associated with this instance of <see cref="T:System.Linq.IQueryable" /> is executed. + </summary></member><member name="T:Remotion.Data.Linq.QueryModel"><summary> + Provides an abstraction of an expression tree created for a LINQ query. <see cref="T:Remotion.Data.Linq.QueryModel" /> instances are passed to LINQ providers based + on re-linq via <see cref="T:Remotion.Data.Linq.IQueryExecutor" />, but you can also use <see cref="T:Remotion.Data.Linq.Parsing.Structure.QueryParser" /> to parse an expression tree by hand or construct + a <see cref="T:Remotion.Data.Linq.QueryModel" /> manually via its constructor. + </summary></member><member name="M:Remotion.Data.Linq.QueryModel.#ctor(Remotion.Data.Linq.Clauses.MainFromClause,Remotion.Data.Linq.Clauses.SelectClause)"><summary> + Initializes a new instance of <see cref="T:Remotion.Data.Linq.QueryModel" /> + </summary><param name="mainFromClause">The <see cref="T:Remotion.Data.Linq.Clauses.MainFromClause" /> of the query. This is the starting point of the query, generating items + that are filtered and projected by the query.</param><param name="selectClause">The <see cref="P:Remotion.Data.Linq.QueryModel.SelectClause" /> of the query. This is the end point of + the query, it defines what is actually returned for each of the items coming from the <see cref="P:Remotion.Data.Linq.QueryModel.MainFromClause" /> and passing the + <see cref="P:Remotion.Data.Linq.QueryModel.BodyClauses" />. After it, only the <see cref="P:Remotion.Data.Linq.QueryModel.ResultOperators" /> modify the result of the query.</param></member><member name="M:Remotion.Data.Linq.QueryModel.GetOutputDataInfo"><summary> + Gets an <see cref="T:Remotion.Data.Linq.Clauses.StreamedData.IStreamedDataInfo" /> object describing the data streaming out of this <see cref="T:Remotion.Data.Linq.QueryModel" />. If a query ends with + the <see cref="P:Remotion.Data.Linq.QueryModel.SelectClause" />, this corresponds to <see cref="M:Remotion.Data.Linq.Clauses.SelectClause.GetOutputDataInfo" />. If a query has + <see cref="P:Remotion.Data.Linq.QueryModel.ResultOperators" />, the data is further modified by those operators. + </summary></member><member name="M:Remotion.Data.Linq.QueryModel.GetUniqueIdentfierGenerator"><summary> + Gets the <see cref="T:Remotion.Data.Linq.UniqueIdentifierGenerator" /> which is used by the <see cref="T:Remotion.Data.Linq.QueryModel" />. + </summary></member><member name="M:Remotion.Data.Linq.QueryModel.Accept(Remotion.Data.Linq.IQueryModelVisitor)"><summary> + Accepts an implementation of <see cref="T:Remotion.Data.Linq.IQueryModelVisitor" /> or <see cref="T:Remotion.Data.Linq.QueryModelVisitorBase" />, as defined by the Visitor pattern. + </summary></member><member name="M:Remotion.Data.Linq.QueryModel.ToString"><summary> + Returns a <see cref="T:System.String" /> representation of this <see cref="T:Remotion.Data.Linq.QueryModel" />. + </summary></member><member name="M:Remotion.Data.Linq.Query... [truncated message content] |
From: <jul...@us...> - 2011-02-07 09:21:55
|
Revision: 5376 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5376&view=rev Author: julian-maughan Date: 2011-02-07 09:21:46 +0000 (Mon, 07 Feb 2011) Log Message: ----------- Merged latest trunk (r5375) to ReadOnlyCriteria branch. Modified Paths: -------------- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/DB2400Dialect.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Driver/SqlClientDriver.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Engine/QueryParameters.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/MultiCriteriaImpl.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/ReWriters/ResultOperatorRewriter.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Loader/Loader.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Mapping/SimpleValue.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/SerializableType.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/TypeFactory.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/DriverTest/SqlClientDriverFixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/AnyTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/QueryCacheableTests.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHibernate.Test.build branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/DomainClass.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/NH2467Test.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/Model.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/food-photo.jpg branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2507/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2507/Animal.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2507/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2507/Mappings.hbm.xml Removed Paths: ------------- branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/DomainClass.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/NH2467Test.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/Model.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/food-photo.jpg branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2507/Animal.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2507/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2507/Mappings.hbm.xml Property Changed: ---------------- branches/ReadOnlyCriteria/ branches/ReadOnlyCriteria/nhibernate/ branches/ReadOnlyCriteria/nhibernate/src/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Customer.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Fixture.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Mappings.hbm.xml branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Model.cs branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1927/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1928/ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/ Property changes on: branches/ReadOnlyCriteria ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x:4505-4508,4510-4513,4537-4538 /trunk:5306-5362 + /branches/2.1.x:4505-4508,4510-4513,4537-4538 /trunk:5306-5375 Property changes on: branches/ReadOnlyCriteria/nhibernate ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x/nhibernate:4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate:5306-5362 + /branches/2.1.x/nhibernate:4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate:5306-5375 Property changes on: branches/ReadOnlyCriteria/nhibernate/src ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x/nhibernate/src:4659,4671,4681,4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src:5306-5362 + /branches/2.1.x/nhibernate/src:4659,4671,4681,4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src:5306-5375 Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/DB2400Dialect.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/DB2400Dialect.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/DB2400Dialect.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -46,6 +46,12 @@ get { return false; } } + public override SqlString GetLimitString(SqlString querySqlString, int offset, int limit, int? offsetParameterIndex, int? limitParameterIndex) + { + // override the base-class's implementation that uses limit parameters + return GetLimitString(querySqlString, offset, limit); + } + public override SqlString GetLimitString(SqlString querySqlString, int offset, int limit) { return new SqlStringBuilder(querySqlString) Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -5,6 +5,7 @@ using System.Text.RegularExpressions; using NHibernate.Dialect.Function; using NHibernate.Dialect.Schema; +using NHibernate.Driver; using NHibernate.Engine; using NHibernate.Mapping; using NHibernate.SqlCommand; @@ -40,18 +41,16 @@ /// </remarks> public class MsSql2000Dialect : Dialect { - public const int MaxSizeForLengthLimitedStrings = 4000; - /// <summary></summary> public MsSql2000Dialect() { RegisterColumnType(DbType.AnsiStringFixedLength, "CHAR(255)"); RegisterColumnType(DbType.AnsiStringFixedLength, 8000, "CHAR($l)"); RegisterColumnType(DbType.AnsiString, "VARCHAR(255)"); - RegisterColumnType(DbType.AnsiString, 8000, "VARCHAR($l)"); - RegisterColumnType(DbType.AnsiString, 2147483647, "TEXT"); + RegisterColumnType(DbType.AnsiString, SqlClientDriver.MaxSizeForLengthLimitedAnsiString, "VARCHAR($l)"); + RegisterColumnType(DbType.AnsiString, SqlClientDriver.MaxSizeForAnsiClob, "TEXT"); RegisterColumnType(DbType.Binary, "VARBINARY(8000)"); - RegisterColumnType(DbType.Binary, 8000, "VARBINARY($l)"); - RegisterColumnType(DbType.Binary, 2147483647, "IMAGE"); + RegisterColumnType(DbType.Binary, SqlClientDriver.MaxSizeForLengthLimitedBinary, "VARBINARY($l)"); + RegisterColumnType(DbType.Binary, SqlClientDriver.MaxSizeForBlob, "IMAGE"); RegisterColumnType(DbType.Boolean, "BIT"); RegisterColumnType(DbType.Byte, "TINYINT"); RegisterColumnType(DbType.Currency, "MONEY"); @@ -66,10 +65,10 @@ RegisterColumnType(DbType.Int64, "BIGINT"); RegisterColumnType(DbType.Single, "REAL"); //synonym for FLOAT(24) RegisterColumnType(DbType.StringFixedLength, "NCHAR(255)"); - RegisterColumnType(DbType.StringFixedLength, MaxSizeForLengthLimitedStrings, "NCHAR($l)"); + RegisterColumnType(DbType.StringFixedLength, SqlClientDriver.MaxSizeForLengthLimitedString, "NCHAR($l)"); RegisterColumnType(DbType.String, "NVARCHAR(255)"); - RegisterColumnType(DbType.String, MaxSizeForLengthLimitedStrings, "NVARCHAR($l)"); - RegisterColumnType(DbType.String, 1073741823, "NTEXT"); + RegisterColumnType(DbType.String, SqlClientDriver.MaxSizeForLengthLimitedString, "NVARCHAR($l)"); + RegisterColumnType(DbType.String, SqlClientDriver.MaxSizeForClob, "NTEXT"); RegisterColumnType(DbType.Time, "DATETIME"); RegisterFunction("count", new CountBigQueryFunction()); Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Data; +using NHibernate.Driver; using NHibernate.Mapping; using NHibernate.SqlCommand; using NHibernate.Util; @@ -11,9 +12,9 @@ { public MsSql2005Dialect() { - RegisterColumnType(DbType.String, 1073741823, "NVARCHAR(MAX)"); - RegisterColumnType(DbType.AnsiString, 2147483647, "VARCHAR(MAX)"); - RegisterColumnType(DbType.Binary, 2147483647, "VARBINARY(MAX)"); + RegisterColumnType(DbType.String, SqlClientDriver.MaxSizeForClob, "NVARCHAR(MAX)"); + RegisterColumnType(DbType.AnsiString, SqlClientDriver.MaxSizeForAnsiClob, "VARCHAR(MAX)"); + RegisterColumnType(DbType.Binary, SqlClientDriver.MaxSizeForBlob, "VARBINARY(MAX)"); RegisterColumnType(DbType.Xml, "XML"); } Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Driver/SqlClientDriver.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Driver/SqlClientDriver.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Driver/SqlClientDriver.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -12,8 +12,19 @@ /// </summary> public class SqlClientDriver : DriverBase, IEmbeddedBatcherFactoryProvider { + public const int MaxSizeForAnsiClob = 2147483647; // int.MaxValue + public const int MaxSizeForClob = 1073741823; // int.MaxValue / 2 + public const int MaxSizeForBlob = 2147483647; // int.MaxValue + public const int MaxSizeForLengthLimitedAnsiString = 8000; + public const int MaxSizeForLengthLimitedString = 4000; + public const int MaxSizeForLengthLimitedBinary = 8000; + public const byte MaxPrecision = 28; + public const byte MaxScale = 5; + public const byte MaxDateTime2 = 8; + public const byte MaxDateTimeOffset = 10; + /// <summary> - /// Creates an uninitialized <see cref="IDbConnection" /> object for + /// Creates an uninitialized <see cref="IDbConnection" /> object for /// the SqlClientDriver. /// </summary> /// <value>An unitialized <see cref="System.Data.SqlClient.SqlConnection"/> object.</value> @@ -23,7 +34,7 @@ } /// <summary> - /// Creates an uninitialized <see cref="IDbCommand" /> object for + /// Creates an uninitialized <see cref="IDbCommand" /> object for /// the SqlClientDriver. /// </summary> /// <value>An unitialized <see cref="System.Data.SqlClient.SqlCommand"/> object.</value> @@ -33,7 +44,7 @@ } /// <summary> - /// MsSql requires the use of a Named Prefix in the SQL statement. + /// MsSql requires the use of a Named Prefix in the SQL statement. /// </summary> /// <remarks> /// <see langword="true" /> because MsSql uses "<c>@</c>". @@ -44,7 +55,7 @@ } /// <summary> - /// MsSql requires the use of a Named Prefix in the Parameter. + /// MsSql requires the use of a Named Prefix in the Parameter. /// </summary> /// <remarks> /// <see langword="true" /> because MsSql uses "<c>@</c>". @@ -55,7 +66,7 @@ } /// <summary> - /// The Named Prefix for parameters. + /// The Named Prefix for parameters. /// </summary> /// <value> /// Sql Server uses <c>"@"</c>. @@ -71,8 +82,8 @@ /// </summary> /// <value><see langword="false" /> - it is not supported.</value> /// <remarks> - /// MS SQL Server 2000 (and 7) throws an exception when multiple IDataReaders are - /// attempted to be opened. When SQL Server 2005 comes out a new driver will be + /// MS SQL Server 2000 (and 7) throws an exception when multiple IDataReaders are + /// attempted to be opened. When SQL Server 2005 comes out a new driver will be /// created for it because SQL Server 2005 is supposed to support it. /// </remarks> public override bool SupportsMultipleOpenReaders @@ -80,6 +91,20 @@ get { return false; } } + public override bool SupportsMultipleQueries + { + get { return true; } + } + + public override IDbCommand GenerateCommand(CommandType type, SqlString sqlString, SqlType[] parameterTypes) + { + IDbCommand command = base.GenerateCommand(type, sqlString, parameterTypes); + + SetParameterSizes(command.Parameters, parameterTypes); + + return command; + } + // Used from SqlServerCeDriver as well public static void SetParameterSizes(IDataParameterCollection parameters, SqlType[] parameterTypes) { @@ -89,34 +114,33 @@ } } - private const int MaxAnsiStringSize = 8000; - private const int MaxBinarySize = MaxAnsiStringSize; - private const int MaxStringSize = MaxAnsiStringSize / 2; - private const int MaxBinaryBlobSize = int.MaxValue; - private const int MaxStringClobSize = MaxBinaryBlobSize / 2; - private const byte MaxPrecision = 28; - private const byte MaxScale = 5; - private const byte MaxDateTime2 = 8; - private const byte MaxDateTimeOffset = 10; + private static void SetVariableLengthParameterSize(IDbDataParameter dbParam, SqlType sqlType) + { + SetDefaultParameterSize(dbParam, sqlType); + // Override the defaults using data from SqlType - except for LOB types + if (sqlType.LengthDefined && !IsText(dbParam, sqlType) && !IsBlob(dbParam, sqlType)) + { + dbParam.Size = sqlType.Length; + } + + if (sqlType.PrecisionDefined) + { + dbParam.Precision = sqlType.Precision; + dbParam.Scale = sqlType.Scale; + } + } + private static void SetDefaultParameterSize(IDbDataParameter dbParam, SqlType sqlType) { switch (dbParam.DbType) { case DbType.AnsiString: case DbType.AnsiStringFixedLength: - dbParam.Size = MaxAnsiStringSize; + dbParam.Size = MaxSizeForLengthLimitedAnsiString; break; - case DbType.Binary: - if (sqlType is BinaryBlobSqlType) - { - dbParam.Size = MaxBinaryBlobSize; - } - else - { - dbParam.Size = MaxBinarySize; - } + dbParam.Size = IsBlob(dbParam, sqlType) ? MaxSizeForBlob : MaxSizeForLengthLimitedBinary; break; case DbType.Decimal: dbParam.Precision = MaxPrecision; @@ -124,7 +148,7 @@ break; case DbType.String: case DbType.StringFixedLength: - dbParam.Size = IsText(dbParam, sqlType) ? MaxStringClobSize : MaxStringSize; + dbParam.Size = IsText(dbParam, sqlType) ? MaxSizeForClob : MaxSizeForLengthLimitedString; break; case DbType.DateTime2: dbParam.Size = MaxDateTime2; @@ -135,44 +159,28 @@ } } + /// <summary> + /// Interprets if a parameter is a Clob (for the purposes of setting its default size) + /// </summary> + /// <param name="dbParam">The parameter</param> + /// <param name="sqlType">The <see cref="SqlType" /> of the parameter</param> + /// <returns>True, if the parameter should be interpreted as a Clob, otherwise False</returns> private static bool IsText(IDbDataParameter dbParam, SqlType sqlType) { - return (sqlType is StringClobSqlType) || (sqlType.LengthDefined && sqlType.Length > MsSql2000Dialect.MaxSizeForLengthLimitedStrings && - (DbType.String == dbParam.DbType || DbType.StringFixedLength == dbParam.DbType)); + return (sqlType is StringClobSqlType) || ((DbType.String == dbParam.DbType || DbType.StringFixedLength == dbParam.DbType) && sqlType.LengthDefined && (sqlType.Length > MaxSizeForLengthLimitedString)); } - - private static void SetVariableLengthParameterSize(IDbDataParameter dbParam, SqlType sqlType) + + /// <summary> + /// Interprets if a parameter is a Blob (for the purposes of setting its default size) + /// </summary> + /// <param name="dbParam">The parameter</param> + /// <param name="sqlType">The <see cref="SqlType" /> of the parameter</param> + /// <returns>True, if the parameter should be interpreted as a Blob, otherwise False</returns> + private static bool IsBlob(IDbDataParameter dbParam, SqlType sqlType) { - SetDefaultParameterSize(dbParam, sqlType); - - // Override the defaults using data from SqlType. - if (sqlType.LengthDefined && !IsText(dbParam, sqlType)) - { - dbParam.Size = sqlType.Length; - } - - if (sqlType.PrecisionDefined) - { - dbParam.Precision = sqlType.Precision; - dbParam.Scale = sqlType.Scale; - } + return (sqlType is BinaryBlobSqlType) || ((DbType.Binary == dbParam.DbType) && sqlType.LengthDefined && (sqlType.Length > MaxSizeForLengthLimitedBinary)); } - public override IDbCommand GenerateCommand(CommandType type, SqlString sqlString, SqlType[] parameterTypes) - { - IDbCommand command = base.GenerateCommand(type, sqlString, parameterTypes); - //if (IsPrepareSqlEnabled) - { - SetParameterSizes(command.Parameters, parameterTypes); - } - return command; - } - - public override bool SupportsMultipleQueries - { - get { return true; } - } - #region IEmbeddedBatcherFactoryProvider Members System.Type IEmbeddedBatcherFactoryProvider.BatcherFactoryClass @@ -182,4 +190,4 @@ #endregion } -} +} \ No newline at end of file Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Engine/QueryParameters.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Engine/QueryParameters.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Engine/QueryParameters.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -553,12 +553,12 @@ else { paramTypeList.Add(NHibernateUtil.Int32); - limitParameterIndex = totalSpan; + limitParameterIndex = startParameterIndex + totalSpan; if (addOffset) { paramTypeList.Add(NHibernateUtil.Int32); - offsetParameterIndex = totalSpan; - limitParameterIndex = totalSpan + 1; + offsetParameterIndex = startParameterIndex + totalSpan; + limitParameterIndex = startParameterIndex + totalSpan + 1; } } Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/MultiCriteriaImpl.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/MultiCriteriaImpl.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/MultiCriteriaImpl.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -5,11 +5,10 @@ using System.Diagnostics; using Iesi.Collections; using Iesi.Collections.Generic; - using NHibernate.Cache; +using NHibernate.Criterion; using NHibernate.Driver; using NHibernate.Engine; -using NHibernate.Criterion; using NHibernate.Loader.Criteria; using NHibernate.SqlCommand; using NHibernate.SqlTypes; @@ -319,18 +318,19 @@ { int limitParameterSpan = BindLimitParametersFirstIfNeccesary(command, queryIndex, colIndex); colIndex = BindQueryParameters(command, queryIndex, colIndex + limitParameterSpan); - BindLimitParametersLastIfNeccesary(command, queryIndex, colIndex); + colIndex += BindLimitParametersLastIfNeccesary(command, queryIndex, colIndex); } } - private void BindLimitParametersLastIfNeccesary(IDbCommand command, int queryIndex, int colIndex) + private int BindLimitParametersLastIfNeccesary(IDbCommand command, int queryIndex, int colIndex) { QueryParameters parameter = parameters[queryIndex]; RowSelection selection = parameter.RowSelection; if (Loader.Loader.UseLimit(selection, dialect) && !dialect.BindLimitParametersFirst) { - Loader.Loader.BindLimitParameters(command, colIndex, selection, session); + return Loader.Loader.BindLimitParameters(command, colIndex, selection, session); } + return 0; } private int BindQueryParameters(IDbCommand command, int queryIndex, int colIndex) Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -1,9 +1,10 @@ using System; using System.Collections; +using System.Collections.Generic; using System.Data; using System.Diagnostics; using Iesi.Collections; - +using Iesi.Collections.Generic; using NHibernate.Cache; using NHibernate.Driver; using NHibernate.Engine; @@ -12,8 +13,6 @@ using NHibernate.SqlTypes; using NHibernate.Transform; using NHibernate.Type; -using Iesi.Collections.Generic; -using System.Collections.Generic; namespace NHibernate.Impl { @@ -653,18 +652,19 @@ { int limitParameterSpan = BindLimitParametersFirstIfNeccesary(command, queryIndex, colIndex); colIndex = BindQueryParameters(command, queryIndex, colIndex + limitParameterSpan); - BindLimitParametersLastIfNeccesary(command, queryIndex, colIndex); + colIndex += BindLimitParametersLastIfNeccesary(command, queryIndex, colIndex); } } - private void BindLimitParametersLastIfNeccesary(IDbCommand command, int queryIndex, int colIndex) + private int BindLimitParametersLastIfNeccesary(IDbCommand command, int queryIndex, int colIndex) { QueryParameters parameter = parameters[queryIndex]; RowSelection selection = parameter.RowSelection; if (Loader.Loader.UseLimit(selection, dialect) && !dialect.BindLimitParametersFirst) { - Loader.Loader.BindLimitParameters(command, colIndex, selection, session); + return Loader.Loader.BindLimitParameters(command, colIndex, selection, session); } + return 0; } private int BindQueryParameters(IDbCommand command, int queryIndex, int colIndex) Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/ReWriters/ResultOperatorRewriter.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/ReWriters/ResultOperatorRewriter.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/ReWriters/ResultOperatorRewriter.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -63,6 +63,7 @@ { typeof(FetchRequestBase), typeof(OfTypeResultOperator), + typeof(CacheableResultOperator), }; private readonly List<ResultOperatorBase> resultOperators = new List<ResultOperatorBase>(); Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -330,6 +330,7 @@ case ExpressionType.Not: return _hqlTreeBuilder.BooleanNot(VisitExpression(expression.Operand).AsBooleanExpression()); case ExpressionType.Convert: + case ExpressionType.ConvertChecked: return VisitExpression(expression.Operand); } Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Loader/Loader.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Loader/Loader.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Loader/Loader.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -1222,7 +1222,8 @@ private int GetFirstLimitParameterCount(Dialect.Dialect dialect, bool useLimit, bool hasFirstRow, bool useOffset) { - if (!useLimit) return 0; + if (!useLimit) return 0; + if (!dialect.SupportsVariableLimit) return 0; if (!dialect.BindLimitParametersFirst) return 0; return (hasFirstRow && useOffset) ? 2 : 1; } Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Mapping/SimpleValue.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Mapping/SimpleValue.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Mapping/SimpleValue.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -247,18 +247,21 @@ { // NH different behavior // If the mapping has a type as "Double(10,5)" our SqlType will be created with all information - // including the rigth SqlType specification but when the length/presion/scale was specified - // trough attributes the SqlType is wrong (does not include length/presion/scale specification) + // including the right SqlType specification, but when the length/precision/scale was specified + // through attributes the SqlType is wrong (does not include length/precision/scale specification) IType result = null; if (ColumnSpan == 1 && !columns[0].IsFormula) { - var col = (Column) columns[0]; - if(col.IsLengthDefined()) + var col = (Column)columns[0]; + if (col.IsLengthDefined()) { result = TypeFactory.BuiltInType(typeName, col.Length); + + if (result == null) + result = TypeFactory.HeuristicType(typeName, typeParameters, col.Length); } - else if(col.IsPrecisionDefined()) + else if (col.IsPrecisionDefined()) { result = TypeFactory.BuiltInType(typeName, Convert.ToByte(col.Precision), Convert.ToByte(col.Scale)); } Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -3898,29 +3898,19 @@ { return this; } - else + // TODO : really need a way to do something like : + // getTuplizer(entityMode).determineConcreteSubclassEntityName(instance) + var clazz = instance.GetType(); + if (clazz == GetMappedClass(entityMode)) { - // TODO : really need a way to do something like : - // getTuplizer(entityMode).determineConcreteSubclassEntityName(instance) - System.Type clazz = instance.GetType(); - if (clazz == GetMappedClass(entityMode)) - { - return this; - } - else - { - string subclassEntityName = GetSubclassEntityName(clazz); - if (subclassEntityName == null) - { - throw new HibernateException("instance not of expected entity type: " + clazz.FullName + " is not a: " - + EntityName); - } - else - { - return factory.GetEntityPersister(subclassEntityName); - } - } + return this; } + var subclassEntityName = GetSubclassEntityName(clazz); + if (subclassEntityName == null || EntityName.Equals(subclassEntityName)) + { + return this; + } + return factory.GetEntityPersister(subclassEntityName); } public virtual EntityMode? GuessEntityMode(object obj) Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/SerializableType.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/SerializableType.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/SerializableType.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -14,8 +14,9 @@ /// </summary> /// <remarks> /// <para> - /// The SerializableType should be used when you know that Bytes are - /// not going to be greater than 8,000. + /// For performance reasons, the SerializableType should be used when you know that Bytes are + /// not going to be greater than 8,000. Implementing a custom type is recommended for larger + /// types. /// </para> /// <para> /// The base class is <see cref="MutableType"/> because the data is stored in Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/TypeFactory.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/TypeFactory.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate/Type/TypeFactory.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -21,7 +21,7 @@ /// <remarks> /// Applications should use static methods and constants on NHibernate.NHibernateUtil if the default /// IType is good enough. For example, the TypeFactory should only be used when the String needs - /// to have a length of 300 instead of 255. At this point NHibernate.String does not get you the + /// to have a length of 300 instead of 255. At this point NHibernateUtil.String does not get you the /// correct IType. Instead use TypeFactory.GetString(300) and keep a local variable that holds /// a reference to the IType. /// </remarks> @@ -33,8 +33,8 @@ Length, PrecisionScale } + private static readonly string[] EmptyAliases= new string[0]; - private static readonly char[] PrecisionScaleSplit = new[] { '(', ')', ',' }; private static readonly char[] LengthSplit = new[] { '(', ')' }; private static readonly TypeFactory Instance; @@ -446,14 +446,25 @@ } /// <summary> - /// Uses heuristics to deduce a NHibernate type given a string naming the - /// type. + /// Uses heuristics to deduce a NHibernate type given a string naming the type. /// </summary> /// <param name="typeName">the type name</param> /// <param name="parameters">parameters for the type</param> /// <returns>An instance of <c>NHibernate.Type.IType</c></returns> public static IType HeuristicType(string typeName, IDictionary<string, string> parameters) { + return HeuristicType(typeName, parameters, null); + } + + /// <summary> + /// Uses heuristics to deduce a NHibernate type given a string naming the type. + /// </summary> + /// <param name="typeName">the type name</param> + /// <param name="parameters">parameters for the type</param> + /// <param name="length">optionally, the size of the type</param> + /// <returns></returns> + public static IType HeuristicType(string typeName, IDictionary<string, string> parameters, int? length) + { IType type = Basic(typeName); if (type == null) @@ -518,6 +529,10 @@ { type = GetSerializableType(typeClass, Int32.Parse(parsedTypeName[1])); } + else if (length != null) + { + type = GetSerializableType(typeClass, length.Value); + } else { type = GetSerializableType(typeClass); Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/DriverTest/SqlClientDriverFixture.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/DriverTest/SqlClientDriverFixture.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/DriverTest/SqlClientDriverFixture.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -29,10 +29,6 @@ [TestFixture] public class SqlClientDriverFixture : TestCase { - protected override void Configure(Configuration configuration) - { - configuration.SetProperty(Environment.PrepareSql, "true"); - } protected override string MappingsAssembly { get { return "NHibernate.Test"; } @@ -45,24 +41,28 @@ protected override bool AppliesTo(Dialect.Dialect dialect) { - return dialect is MsSql2000Dialect; + return dialect is MsSql2008Dialect; } [Test] public void Crud() { - // Should use default dimension for CRUD op and prepare_sql='true' because the mapping does not + // Should use default dimension for CRUD op because the mapping does not // have dimensions specified. object savedId; using (ISession s = OpenSession()) using (ITransaction t = s.BeginTransaction()) { savedId = s.Save(new MultiTypeEntity - { - StringProp = "a", StringClob = "a",BinaryBlob = new byte[]{1,2,3}, - Binary = new byte[] { 4, 5, 6 }, Currency = 123.4m, Double = 123.5d, - Decimal = 789.5m - }); + { + StringProp = "a", + StringClob = "a", + BinaryBlob = new byte[]{1,2,3}, + Binary = new byte[] { 4, 5, 6 }, + Currency = 123.4m, + Double = 123.5d, + Decimal = 789.5m + }); t.Commit(); } Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/AnyTests.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/AnyTests.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/ByMethod/AnyTests.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -9,11 +9,25 @@ [TestFixture] public class AnyTests : LinqTestCase { - [Test] - public void AnySublist() - { - var orders = db.Orders.Where(o => o.OrderLines.Any(ol => ol.Quantity == 5)).ToList(); - Assert.AreEqual(61, orders.Count); - } + [Test] + public void AnySublist() + { + var orders = db.Orders.Where(o => o.OrderLines.Any(ol => ol.Quantity == 5)).ToList(); + Assert.AreEqual(61, orders.Count); + + orders = db.Orders.Where(o => o.OrderLines.Any(ol => ol.Order == null)).ToList(); + Assert.AreEqual(0, orders.Count); + } + + [Test] + public void NestedAny() + { + var test = (from c in db.Customers + where c.ContactName == "Bob" && + (c.CompanyName == "NormalooCorp" || + c.Orders.Any(o => o.OrderLines.Any(ol => ol.Discount < 20 && ol.Discount >= 10))) + select c).ToList(); + Assert.AreEqual(0, test.Count); + } } } Modified: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/QueryCacheableTests.cs =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/QueryCacheableTests.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/Linq/QueryCacheableTests.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -85,5 +85,34 @@ Assert.That(Sfi.Statistics.QueryCachePutCount, Is.EqualTo(2)); Assert.That(Sfi.Statistics.QueryCacheHitCount, Is.EqualTo(1)); } + + [Test] + public void CacheableBeforeOtherClauses() + { + Sfi.Statistics.Clear(); + Sfi.QueryCache.Clear(); + + db.Customers.Cacheable().Where(c => c.ContactName != c.CompanyName).Take(1).ToList(); + db.Customers.Where(c => c.ContactName != c.CompanyName).Take(1).ToList(); + + Assert.That(Sfi.Statistics.QueryExecutionCount, Is.EqualTo(2)); + Assert.That(Sfi.Statistics.QueryCachePutCount, Is.EqualTo(1)); + Assert.That(Sfi.Statistics.QueryCacheHitCount, Is.EqualTo(0)); + } + + [Test] + public void CacheableRegionBeforeOtherClauses() + { + Sfi.Statistics.Clear(); + Sfi.QueryCache.Clear(); + + db.Customers.Cacheable().CacheRegion("test").Where(c => c.ContactName != c.CompanyName).Take(1).ToList(); + db.Customers.Cacheable().CacheRegion("test").Where(c => c.ContactName != c.CompanyName).Take(1).ToList(); + db.Customers.Cacheable().CacheRegion("other").Where(c => c.ContactName != c.CompanyName).Take(1).ToList(); + + Assert.That(Sfi.Statistics.QueryExecutionCount, Is.EqualTo(2)); + Assert.That(Sfi.Statistics.QueryCachePutCount, Is.EqualTo(2)); + Assert.That(Sfi.Statistics.QueryCacheHitCount, Is.EqualTo(1)); + } } } Deleted: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Fixture.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Fixture.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -1,48 +0,0 @@ - -using System.Collections; -using NUnit.Framework; - -namespace NHibernate.Test.NHSpecificTest.EntityNameAndInheritance -{ - public class Fixture : BugTestCase - { - private int id; - private const string entityName = "SuperClass"; - - protected override void OnSetUp() - { - using (var s = OpenSession()) - { - using (var tx = s.BeginTransaction()) - { - id = (int)s.Save(entityName, new Hashtable()); - tx.Commit(); - } - } - } - - [Test] - public void DoesNotCrash() - { - using (var s = OpenSession()) - { - using (s.BeginTransaction()) - { - Assert.IsNotNull(s.Get(entityName, id)); - } - } - } - - protected override void OnTearDown() - { - using (var s = OpenSession()) - { - using (var tx = s.BeginTransaction()) - { - s.CreateSQLQuery("delete from " + entityName).ExecuteUpdate(); - tx.Commit(); - } - } - } - } -} Copied: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Fixture.cs (from rev 5375, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Fixture.cs) =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Fixture.cs (rev 0) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Fixture.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -0,0 +1,48 @@ + +using System.Collections; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.EntityNameAndInheritance +{ + public class Fixture : BugTestCase + { + private int id; + private const string entityName = "SuperClass"; + + protected override void OnSetUp() + { + using (var s = OpenSession()) + { + using (var tx = s.BeginTransaction()) + { + id = (int)s.Save(entityName, new Hashtable()); + tx.Commit(); + } + } + } + + [Test] + public void DoesNotCrash() + { + using (var s = OpenSession()) + { + using (s.BeginTransaction()) + { + Assert.IsNotNull(s.Get(entityName, id)); + } + } + } + + protected override void OnTearDown() + { + using (var s = OpenSession()) + { + using (var tx = s.BeginTransaction()) + { + s.CreateSQLQuery("delete from " + entityName).ExecuteUpdate(); + tx.Commit(); + } + } + } + } +} Deleted: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Mappings.hbm.xml 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Mappings.hbm.xml 2011-02-07 09:21:46 UTC (rev 5376) @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" - namespace="NHibernate.Test.NHSpecificTest.EntityNameAndCompositeId" - assembly="NHibernate.Test"> - <class entity-name="SuperClass"> - <id name="Id" type="int"> - <generator class="native"/> - </id> - <discriminator column="DISC" type="string" /> - <subclass entity-name="Subclass" discriminator-value="B" /> - </class> -</hibernate-mapping> Copied: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Mappings.hbm.xml (from rev 5375, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Mappings.hbm.xml) =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Mappings.hbm.xml (rev 0) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityNameAndInheritance/Mappings.hbm.xml 2011-02-07 09:21:46 UTC (rev 5376) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.EntityNameAndCompositeId" + assembly="NHibernate.Test"> + <class entity-name="SuperClass"> + <id name="Id" type="int"> + <generator class="native"/> + </id> + <discriminator column="DISC" type="string" /> + <subclass entity-name="Subclass" discriminator-value="B" /> + </class> +</hibernate-mapping> Property changes on: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Customer.cs ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Customer.cs:4593-4594,4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Customer.cs:5306-5362 + /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Customer.cs:4593-4594,4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Customer.cs:5306-5375 Property changes on: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Fixture.cs ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Fixture.cs:4593-4594,4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Fixture.cs:5306-5362 + /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Fixture.cs:4593-4594,4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Fixture.cs:5306-5375 Property changes on: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Mappings.hbm.xml ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Mappings.hbm.xml:4593-4594,4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Mappings.hbm.xml:5306-5362 + /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Mappings.hbm.xml:4593-4594,4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Mappings.hbm.xml:5306-5375 Property changes on: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Fixture.cs ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Fixture.cs:4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Fixture.cs:5306-5362 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1908/Fixture.cs:4657 + /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Fixture.cs:4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Fixture.cs:5306-5375 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1908/Fixture.cs:4657 Property changes on: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Mappings.hbm.xml ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Mappings.hbm.xml:4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Mappings.hbm.xml:5306-5362 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1908/Mappings.hbm.xml:4657 + /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Mappings.hbm.xml:4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Mappings.hbm.xml:5306-5375 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1908/Mappings.hbm.xml:4657 Property changes on: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Model.cs ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Model.cs:4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Model.cs:5306-5362 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1908/Model.cs:4657 + /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Model.cs:4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1904/Model.cs:5306-5375 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1908/Model.cs:4657 Property changes on: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1927 ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1927:4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1927:5306-5362 + /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1927:4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1927:5306-5375 Property changes on: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1928 ___________________________________________________________________ Modified: svn:mergeinfo - /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1928:4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1928:5306-5362 + /branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1928:4690-4691,4696-4697,4711,4715-4716,4905-4908 /trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1928:5306-5375 Deleted: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/DomainClass.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/DomainClass.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/DomainClass.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -1,20 +0,0 @@ - - -namespace NHibernate.Test.NHSpecificTest.NH2467 -{ - public class DomainClass - { - - public int Id - { - get; - set; - } - - public string Data - { - get; - set; - } - } -} Copied: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/DomainClass.cs (from rev 5375, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/DomainClass.cs) =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/DomainClass.cs (rev 0) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/DomainClass.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -0,0 +1,20 @@ + + +namespace NHibernate.Test.NHSpecificTest.NH2467 +{ + public class DomainClass + { + + public int Id + { + get; + set; + } + + public string Data + { + get; + set; + } + } +} Deleted: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/Mappings.hbm.xml 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/Mappings.hbm.xml 2011-02-07 09:21:46 UTC (rev 5376) @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" - namespace="NHibernate.Test.NHSpecificTest.NH2467" - default-lazy="false"> - <class name="DomainClass"> - <id name="Id"> - <generator class="assigned" /> - </id> - <property name="Data" /> - </class> -</hibernate-mapping> Copied: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/Mappings.hbm.xml (from rev 5375, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/Mappings.hbm.xml) =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/Mappings.hbm.xml (rev 0) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/Mappings.hbm.xml 2011-02-07 09:21:46 UTC (rev 5376) @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2467" + default-lazy="false"> + <class name="DomainClass"> + <id name="Id"> + <generator class="assigned" /> + </id> + <property name="Data" /> + </class> +</hibernate-mapping> Deleted: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/NH2467Test.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/NH2467Test.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/NH2467Test.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -1,126 +0,0 @@ -using System.Linq; -using NHibernate.Criterion; -using NUnit.Framework; - -namespace NHibernate.Test.NHSpecificTest.NH2467 -{ - [TestFixture] - public class NH2467Test : BugTestCase - { - protected override void OnSetUp() - { - base.OnSetUp(); - using (var session = OpenSession()) - { - var entity = new DomainClass {Id = 1, Data = "Test"}; - session.Save(entity); - session.Flush(); - } - } - - protected override bool AppliesTo(Dialect.Dialect dialect) - { - return dialect.SupportsLimit && !dialect.BindLimitParametersFirst; - } - - protected override void OnTearDown() - { - base.OnTearDown(); - using (var session = OpenSession()) - { - session.Delete("from System.Object"); - session.Flush(); - } - } - - [Test] - public void ShouldNotThrowOnFuturePaging() - { - using (var session = OpenSession()) - { - - var contentQuery = session - .CreateCriteria<DomainClass>() - .Add(Restrictions.Eq("Data", "Test")); - contentQuery.SetMaxResults(2); - contentQuery.SetFirstResult(0); - var content = contentQuery.Future<DomainClass>(); - - var countQuery = session - .CreateCriteria<DomainClass>() - .Add(Restrictions.Eq("Data", "Test")); - countQuery.SetProjection(Projections.RowCount()); - var count = countQuery.FutureValue<int>(); - - // triggers batch operation, should not throw - var result = content.ToList(); - } - } - - [Test] - public void ShouldNotThrowOnReversedFuturePaging() - { - using (var session = OpenSession()) - { - - var countQuery = session - .CreateCriteria<DomainClass>() - .Add(Restrictions.Eq("Data", "Test")); - countQuery.SetProjection(Projections.RowCount()); - var count = countQuery.FutureValue<int>(); - - var contentQuery = session - .CreateCriteria<DomainClass>() - .Add(Restrictions.Eq("Data", "Test")); - contentQuery.SetMaxResults(2); - contentQuery.SetFirstResult(0); - var content = contentQuery.Future<DomainClass>(); - - // triggers batch operation, should not throw - var result = content.ToList(); - } - } - - [Test] - public void ShouldNotThrowOnFuturePagingUsingHql() - { - using (var session = OpenSession()) - { - - var contentQuery = session.CreateQuery("from DomainClass as d where d.Data = ?"); - contentQuery.SetString(0, "Test"); - contentQuery.SetMaxResults(2); - contentQuery.SetFirstResult(0); - var content = contentQuery.Future<DomainClass>(); - - var countQuery = session.CreateQuery("select count(d) from DomainClass as d where d.Data = ?"); - countQuery.SetString(0, "Test"); - var count = countQuery.FutureValue<long>(); - - Assert.AreEqual(1, content.ToList().Count); - Assert.AreEqual(1, count.Value); - } - } - - [Test] - public void ShouldNotThrowOnReversedFuturePagingUsingHql() - { - using (var session = OpenSession()) - { - - var contentQuery = session.CreateQuery("from DomainClass as d where d.Data = ?"); - contentQuery.SetString(0, "Test"); - contentQuery.SetMaxResults(2); - contentQuery.SetFirstResult(0); - var content = contentQuery.Future<DomainClass>(); - - var countQuery = session.CreateQuery("select count(d) from DomainClass as d where d.Data = ?"); - countQuery.SetString(0, "Test"); - var count = countQuery.FutureValue<long>(); - - Assert.AreEqual(1, content.ToList().Count); - Assert.AreEqual(1, count.Value); - } - } - } -} Copied: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/NH2467Test.cs (from rev 5375, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/NH2467Test.cs) =================================================================== --- branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/NH2467Test.cs (rev 0) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2467/NH2467Test.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -0,0 +1,126 @@ +using System.Linq; +using NHibernate.Criterion; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2467 +{ + [TestFixture] + public class NH2467Test : BugTestCase + { + protected override void OnSetUp() + { + base.OnSetUp(); + using (var session = OpenSession()) + { + var entity = new DomainClass {Id = 1, Data = "Test"}; + session.Save(entity); + session.Flush(); + } + } + + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect.SupportsLimit && !dialect.BindLimitParametersFirst; + } + + protected override void OnTearDown() + { + base.OnTearDown(); + using (var session = OpenSession()) + { + session.Delete("from System.Object"); + session.Flush(); + } + } + + [Test] + public void ShouldNotThrowOnFuturePaging() + { + using (var session = OpenSession()) + { + + var contentQuery = session + .CreateCriteria<DomainClass>() + .Add(Restrictions.Eq("Data", "Test")); + contentQuery.SetMaxResults(2); + contentQuery.SetFirstResult(0); + var content = contentQuery.Future<DomainClass>(); + + var countQuery = session + .CreateCriteria<DomainClass>() + .Add(Restrictions.Eq("Data", "Test")); + countQuery.SetProjection(Projections.RowCount()); + var count = countQuery.FutureValue<int>(); + + // triggers batch operation, should not throw + var result = content.ToList(); + } + } + + [Test] + public void ShouldNotThrowOnReversedFuturePaging() + { + using (var session = OpenSession()) + { + + var countQuery = session + .CreateCriteria<DomainClass>() + .Add(Restrictions.Eq("Data", "Test")); + countQuery.SetProjection(Projections.RowCount()); + var count = countQuery.FutureValue<int>(); + + var contentQuery = session + .CreateCriteria<DomainClass>() + .Add(Restrictions.Eq("Data", "Test")); + contentQuery.SetMaxResults(2); + contentQuery.SetFirstResult(0); + var content = contentQuery.Future<DomainClass>(); + + // triggers batch operation, should not throw + var result = content.ToList(); + } + } + + [Test] + public void ShouldNotThrowOnFuturePagingUsingHql() + { + using (var session = OpenSession()) + { + + var contentQuery = session.CreateQuery("from DomainClass as d where d.Data = ?"); + contentQuery.SetString(0, "Test"); + contentQuery.SetMaxResults(2); + contentQuery.SetFirstResult(0); + var content = contentQuery.Future<DomainClass>(); + + var countQuery = session.CreateQuery("select count(d) from DomainClass as d where d.Data = ?"); + countQuery.SetString(0, "Test"); + var count = countQuery.FutureValue<long>(); + + Assert.AreEqual(1, content.ToList().Count); + Assert.AreEqual(1, count.Value); + } + } + + [Test] + public void ShouldNotThrowOnReversedFuturePagingUsingHql() + { + using (var session = OpenSession()) + { + + var contentQuery = session.CreateQuery("from DomainClass as d where d.Data = ?"); + contentQuery.SetString(0, "Test"); + contentQuery.SetMaxResults(2); + contentQuery.SetFirstResult(0); + var content = contentQuery.Future<DomainClass>(); + + var countQuery = session.CreateQuery("select count(d) from DomainClass as d where d.Data = ?"); + countQuery.SetString(0, "Test"); + var count = countQuery.FutureValue<long>(); + + Assert.AreEqual(1, content.ToList().Count); + Assert.AreEqual(1, count.Value); + } + } + } +} Deleted: branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/Fixture.cs 2011-02-05 23:18:25 UTC (rev 5375) +++ branches/ReadOnlyCriteria/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2484/Fixture.cs 2011-02-07 09:21:46 UTC (rev 5376) @@ -1,82 +0,0 @@ -using System; -using System.Drawing; -using System.Reflection; -using NUn... [truncated message content] |