|
From: <te...@us...> - 2009-03-10 17:54:07
|
Revision: 4121
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4121&view=rev
Author: tehlike
Date: 2009-03-10 17:54:00 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
Marking SqlFunctions serializable. This is necessary for making Configuration serializable as it is possible to add custom sql functions.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs
trunk/nhibernate/src/NHibernate/Dialect/FirebirdDialect.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiExtractFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiSubstringFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiTrimEmulationFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiTrimFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/CastFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/CharIndexFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicAggregateFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicAvgFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicCountFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicSumFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/CommonGrammar.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/NoArgSQLFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/NvlFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/PositionSubstringFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/SQLFunctionTemplate.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/StandardSQLFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/StandardSafeSQLFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/Function/VarArgsSQLFunction.cs
trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs
trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs
trunk/nhibernate/src/NHibernate/Dialect/Oracle9Dialect.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/DialectTest/FunctionTests/
trunk/nhibernate/src/NHibernate.Test/DialectTest/FunctionTests/SerializableTypesFixture.cs
Modified: trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -1952,7 +1952,7 @@
#endregion
#region Agregate function redefinition
-
+ [Serializable]
protected class CountQueryFunctionInfo : ClassicAggregateFunction
{
public CountQueryFunctionInfo() : base("count",true)
@@ -1964,7 +1964,7 @@
return NHibernateUtil.Int64;
}
}
-
+ [Serializable]
protected class AvgQueryFunctionInfo : ClassicAggregateFunction
{
public AvgQueryFunctionInfo() : base("avg",false)
@@ -1994,7 +1994,8 @@
return NHibernateUtil.Double;
}
}
-
+
+ [Serializable]
protected class SumQueryFunctionInfo : ClassicAggregateFunction
{
public SumQueryFunctionInfo() : base("sum",false)
Modified: trunk/nhibernate/src/NHibernate/Dialect/FirebirdDialect.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/FirebirdDialect.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/FirebirdDialect.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -7,7 +7,8 @@
using NHibernate.Engine;
using NHibernate.Type;
using System.Data.Common;
-
+using System;
+using Environment = NHibernate.Cfg.Environment;
namespace NHibernate.Dialect
{
/// <summary>
@@ -214,6 +215,7 @@
return -1;
}
+ [Serializable]
private class CastedFunction : NoArgSQLFunction
{
public CastedFunction(string name, IType returnType)
@@ -233,6 +235,7 @@
}
}
+ [Serializable]
private class CurrentTimeStamp : NoArgSQLFunction
{
public CurrentTimeStamp()
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiExtractFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiExtractFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiExtractFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -27,6 +27,7 @@
/// TIMEZONE_MINUTE
/// ]]>
/// </remarks>
+ [Serializable]
public class AnsiExtractFunction: SQLFunctionTemplate, IFunctionGrammar
{
public AnsiExtractFunction()
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiSubstringFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiSubstringFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiSubstringFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -21,6 +21,7 @@
/// [ FOR <string length> ] <right paren>
///]]>
/// </remarks>
+ [Serializable]
public class AnsiSubstringFunction : ISQLFunction
{
#region ISQLFunction Members
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiTrimEmulationFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiTrimEmulationFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiTrimEmulationFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -17,6 +17,7 @@
/// which it uses in various combinations to emulate the desired ANSI trim()
/// functionality.
/// </summary>
+ [Serializable]
public class AnsiTrimEmulationFunction : ISQLFunction, IFunctionGrammar
{
private static readonly ISQLFunction LeadingSpaceTrim = new SQLFunctionTemplate(NHibernateUtil.String, "ltrim( ?1 )");
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiTrimFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiTrimFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/AnsiTrimFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -3,6 +3,7 @@
namespace NHibernate.Dialect.Function
{
+ [Serializable]
public class AnsiTrimFunction : SQLFunctionTemplate, IFunctionGrammar
{
public AnsiTrimFunction()
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/CastFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/CastFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/CastFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -10,6 +10,7 @@
/// <summary>
/// ANSI-SQL style cast(foo as type) where the type is a NHibernate type
/// </summary>
+ [Serializable]
public class CastFunction : ISQLFunction, IFunctionGrammar
{
#region ISQLFunction Members
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/CharIndexFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/CharIndexFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/CharIndexFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -10,6 +10,7 @@
/// <summary>
/// Emulation of locate() on Sybase
/// </summary>
+ [Serializable]
public class CharIndexFunction : ISQLFunction
{
public CharIndexFunction()
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicAggregateFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicAggregateFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicAggregateFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -8,6 +8,7 @@
namespace NHibernate.Dialect.Function
{
+ [Serializable]
public class ClassicAggregateFunction : ISQLFunction, IFunctionGrammar
{
private IType returnType = null;
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicAvgFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicAvgFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicAvgFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -9,6 +9,7 @@
/// <summary>
/// Classic AVG sqlfunction that return types as it was done in Hibernate 3.1
/// </summary>
+ [Serializable]
public class ClassicAvgFunction : ClassicAggregateFunction
{
public ClassicAvgFunction() : base("avg", false)
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicCountFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicCountFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicCountFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -7,6 +7,7 @@
/// <summary>
/// Classic COUNT sqlfunction that return types as it was done in Hibernate 3.1
/// </summary>
+ [Serializable]
public class ClassicCountFunction : ClassicAggregateFunction
{
public ClassicCountFunction() : base("count", true)
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicSumFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicSumFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/ClassicSumFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -5,6 +5,7 @@
/// <summary>
/// Classic SUM sqlfunction that return types as it was done in Hibernate 3.1
/// </summary>
+ [Serializable]
public class ClassicSumFunction : ClassicAggregateFunction
{
public ClassicSumFunction() : base("sum", false)
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/CommonGrammar.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/CommonGrammar.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/CommonGrammar.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -3,6 +3,7 @@
namespace NHibernate.Dialect.Function
{
+ [Serializable]
public class CommonGrammar: IFunctionGrammar
{
#region IFunctionGrammar Members
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/NoArgSQLFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/NoArgSQLFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/NoArgSQLFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -2,12 +2,14 @@
using NHibernate.Engine;
using NHibernate.SqlCommand;
using NHibernate.Type;
+using System;
namespace NHibernate.Dialect.Function
{
/// <summary>
/// Summary description for NoArgSQLFunction.
/// </summary>
+ [Serializable]
public class NoArgSQLFunction : ISQLFunction
{
public NoArgSQLFunction(string name, IType returnType)
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/NvlFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/NvlFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/NvlFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -9,6 +9,7 @@
/// <summary>
/// Emulation of coalesce() on Oracle, using multiple nvl() calls
/// </summary>
+ [Serializable]
public class NvlFunction : ISQLFunction
{
public NvlFunction()
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/PositionSubstringFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/PositionSubstringFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/PositionSubstringFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -10,6 +10,7 @@
/// <summary>
/// Emulation of locate() on PostgreSQL
/// </summary>
+ [Serializable]
public class PositionSubstringFunction : ISQLFunction
{
public PositionSubstringFunction()
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/SQLFunctionTemplate.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/SQLFunctionTemplate.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/SQLFunctionTemplate.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -5,6 +5,7 @@
using NHibernate.Engine;
using NHibernate.SqlCommand;
using NHibernate.Type;
+using System;
namespace NHibernate.Dialect.Function
{
@@ -16,6 +17,7 @@
/// Each dialect will define a template as a string (exactly like above) marking function
/// parameters with '?' followed by parameter's index (first index is 1).
/// </summary>
+ [Serializable]
public class SQLFunctionTemplate : ISQLFunction
{
private const int InvalidArgumentIndex = -1;
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/StandardSQLFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/StandardSQLFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/StandardSQLFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -3,6 +3,7 @@
using NHibernate.Engine;
using NHibernate.SqlCommand;
using NHibernate.Type;
+using System;
namespace NHibernate.Dialect.Function
{
@@ -14,6 +15,7 @@
/// The Dialect and its sub-classes use this class to provide details required
/// for processing of the associated function.
/// </remarks>
+ [Serializable]
public class StandardSQLFunction : ISQLFunction
{
private IType returnType = null;
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/StandardSafeSQLFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/StandardSafeSQLFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/StandardSafeSQLFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -14,6 +14,7 @@
/// The Dialect and its sub-classes use this class to provide details required
/// for processing of the associated function.
/// </remarks>
+ [Serializable]
public class StandardSafeSQLFunction : StandardSQLFunction
{
private int allowedArgsCount = 1;
Modified: trunk/nhibernate/src/NHibernate/Dialect/Function/VarArgsSQLFunction.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Function/VarArgsSQLFunction.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Function/VarArgsSQLFunction.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -11,6 +11,7 @@
/// Support for slightly more general templating than StandardSQLFunction,
/// with an unlimited number of arguments.
/// </summary>
+ [Serializable]
public class VarArgsSQLFunction : ISQLFunction
{
private readonly string begin;
Modified: trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -430,7 +430,7 @@
string selectExistingObject = GetSelectExistingObject(name, table);
return string.Format(@"if not exists ({0})", selectExistingObject);
}
-
+ [Serializable]
protected class CountBigQueryFunction : ClassicAggregateFunction
{
public CountBigQueryFunction()
Modified: trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -445,7 +445,7 @@
#endregion
#region Functions
-
+ [Serializable]
private class CurrentTimeStamp : NoArgSQLFunction
{
public CurrentTimeStamp() : base("current_timestamp", NHibernateUtil.DateTime, true) {}
@@ -455,7 +455,7 @@
return new SqlString(Name);
}
}
-
+ [Serializable]
private class LocateFunction : ISQLFunction
{
private static readonly ISQLFunction LocateWith2Params = new SQLFunctionTemplate(NHibernateUtil.Int32,
Modified: trunk/nhibernate/src/NHibernate/Dialect/Oracle9Dialect.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/Oracle9Dialect.cs 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate/Dialect/Oracle9Dialect.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -254,6 +254,7 @@
return new OracleDataBaseSchema(connection);
}
+ [Serializable]
private class CurrentTimeStamp : NoArgSQLFunction
{
public CurrentTimeStamp()
Added: trunk/nhibernate/src/NHibernate.Test/DialectTest/FunctionTests/SerializableTypesFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/DialectTest/FunctionTests/SerializableTypesFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/DialectTest/FunctionTests/SerializableTypesFixture.cs 2009-03-10 17:54:00 UTC (rev 4121)
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using NUnit.Framework;
+using NHibernate.Dialect.Function;
+using System.Reflection;
+
+namespace NHibernate.Test.DialectTest.FunctionTests
+{
+ [TestFixture]
+ public class SerializableTypesFixture
+ {
+ [Test]
+ public void AllEmbeddedTypesAreMarkedSerializable()
+ {
+ NHAssert.InheritedAreMarkedSerializable(typeof(ISQLFunction));
+ }
+ }
+}
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-09 22:16:12 UTC (rev 4120)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-10 17:54:00 UTC (rev 4121)
@@ -140,6 +140,7 @@
<Compile Include="DialectTest\DB2DialectFixture.cs" />
<Compile Include="DialectTest\DialectFixture.cs" />
<Compile Include="DialectTest\FirebirdDialectFixture.cs" />
+ <Compile Include="DialectTest\FunctionTests\SerializableTypesFixture.cs" />
<Compile Include="DialectTest\MsSql2005DialectFixture.cs" />
<Compile Include="DialectTest\MsSqlDialectFixture.cs" />
<Compile Include="DialectTest\SqlCEDialectFixture.cs" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|