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