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