|
From: <fab...@us...> - 2011-03-23 16:16:25
|
Revision: 5510
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5510&view=rev
Author: fabiomaulo
Date: 2011-03-23 16:16:19 +0000 (Wed, 23 Mar 2011)
Log Message:
-----------
Minor refactoring (organized stuff in methods)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs
trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs
trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs
Modified: trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs 2011-03-23 15:41:09 UTC (rev 5509)
+++ trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs 2011-03-23 16:16:19 UTC (rev 5510)
@@ -43,34 +43,34 @@
{
public MsSql2000Dialect()
{
- RegisterColumnType(DbType.AnsiStringFixedLength, "CHAR(255)");
- RegisterColumnType(DbType.AnsiStringFixedLength, 8000, "CHAR($l)");
- RegisterColumnType(DbType.AnsiString, "VARCHAR(255)");
- RegisterColumnType(DbType.AnsiString, SqlClientDriver.MaxSizeForLengthLimitedAnsiString, "VARCHAR($l)");
- RegisterColumnType(DbType.AnsiString, SqlClientDriver.MaxSizeForAnsiClob, "TEXT");
- RegisterColumnType(DbType.Binary, "VARBINARY(8000)");
- 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");
- RegisterColumnType(DbType.Date, "DATETIME");
- RegisterColumnType(DbType.DateTime, "DATETIME");
- RegisterColumnType(DbType.Decimal, "DECIMAL(19,5)");
- RegisterColumnType(DbType.Decimal, 19, "DECIMAL($p, $s)");
- RegisterColumnType(DbType.Double, "DOUBLE PRECISION"); //synonym for FLOAT(53)
- RegisterColumnType(DbType.Guid, "UNIQUEIDENTIFIER");
- RegisterColumnType(DbType.Int16, "SMALLINT");
- RegisterColumnType(DbType.Int32, "INT");
- RegisterColumnType(DbType.Int64, "BIGINT");
- RegisterColumnType(DbType.Single, "REAL"); //synonym for FLOAT(24)
- RegisterColumnType(DbType.StringFixedLength, "NCHAR(255)");
- RegisterColumnType(DbType.StringFixedLength, SqlClientDriver.MaxSizeForLengthLimitedString, "NCHAR($l)");
- RegisterColumnType(DbType.String, "NVARCHAR(255)");
- RegisterColumnType(DbType.String, SqlClientDriver.MaxSizeForLengthLimitedString, "NVARCHAR($l)");
- RegisterColumnType(DbType.String, SqlClientDriver.MaxSizeForClob, "NTEXT");
- RegisterColumnType(DbType.Time, "DATETIME");
+ RegisterCharacterTypeMappings();
+ RegisterNumericTypeMappings();
+ RegisterDateTimeTypeMappings();
+ RegisterLargeObjectTypeMappings();
+ RegisterGuidTypeMapping();
+ RegisterFunctions();
+
+ RegisterKeywords();
+
+ RegisterDefaultProperties();
+ }
+
+ protected virtual void RegisterDefaultProperties()
+ {
+ DefaultProperties[Environment.ConnectionDriver] = "NHibernate.Driver.SqlClientDriver";
+ }
+
+ protected virtual void RegisterKeywords()
+ {
+ RegisterKeyword("top");
+ RegisterKeyword("integer");
+ RegisterKeyword("int");
+ RegisterKeyword("datetime");
+ }
+
+ protected virtual void RegisterFunctions()
+ {
RegisterFunction("count", new CountBigQueryFunction());
RegisterFunction("abs", new StandardSQLFunction("abs"));
@@ -116,8 +116,8 @@
RegisterFunction("day", new SQLFunctionTemplate(NHibernateUtil.Int32, "datepart(day, ?1)"));
RegisterFunction("month", new SQLFunctionTemplate(NHibernateUtil.Int32, "datepart(month, ?1)"));
RegisterFunction("year", new SQLFunctionTemplate(NHibernateUtil.Int32, "datepart(year, ?1)"));
- RegisterFunction("date", new SQLFunctionTemplate(NHibernateUtil.Date, "dateadd(dd, 0, datediff(dd, 0, ?1))"));
- RegisterFunction("concat", new VarArgsSQLFunction(NHibernateUtil.String, "(", "+", ")"));
+ RegisterFunction("date", new SQLFunctionTemplate(NHibernateUtil.Date, "dateadd(dd, 0, datediff(dd, 0, ?1))"));
+ RegisterFunction("concat", new VarArgsSQLFunction(NHibernateUtil.String, "(", "+", ")"));
RegisterFunction("digits", new StandardSQLFunction("digits", NHibernateUtil.String));
RegisterFunction("chr", new StandardSQLFunction("chr", NHibernateUtil.Character));
RegisterFunction("upper", new StandardSQLFunction("upper"));
@@ -130,15 +130,55 @@
RegisterFunction("trim", new AnsiTrimEmulationFunction());
RegisterFunction("iif", new SQLFunctionTemplate(null, "case when ?1 then ?2 else ?3 end"));
RegisterFunction("replace", new StandardSafeSQLFunction("replace", NHibernateUtil.String, 3));
+ }
- RegisterKeyword("top");
- RegisterKeyword("integer");
- RegisterKeyword("int");
- RegisterKeyword("datetime");
+ protected virtual void RegisterGuidTypeMapping()
+ {
+ RegisterColumnType(DbType.Guid, "UNIQUEIDENTIFIER");
+ }
- DefaultProperties[Environment.ConnectionDriver] = "NHibernate.Driver.SqlClientDriver";
+ protected virtual void RegisterLargeObjectTypeMappings()
+ {
+ RegisterColumnType(DbType.Binary, "VARBINARY(8000)");
+ RegisterColumnType(DbType.Binary, SqlClientDriver.MaxSizeForLengthLimitedBinary, "VARBINARY($l)");
+ RegisterColumnType(DbType.Binary, SqlClientDriver.MaxSizeForBlob, "IMAGE");
}
+ protected virtual void RegisterDateTimeTypeMappings()
+ {
+ RegisterColumnType(DbType.Time, "DATETIME");
+ }
+
+ protected virtual void RegisterNumericTypeMappings()
+ {
+ RegisterColumnType(DbType.Boolean, "BIT");
+ RegisterColumnType(DbType.Byte, "TINYINT");
+ RegisterColumnType(DbType.Currency, "MONEY");
+ RegisterColumnType(DbType.Date, "DATETIME");
+ RegisterColumnType(DbType.DateTime, "DATETIME");
+ RegisterColumnType(DbType.Decimal, "DECIMAL(19,5)");
+ RegisterColumnType(DbType.Decimal, 19, "DECIMAL($p, $s)");
+ RegisterColumnType(DbType.Double, "DOUBLE PRECISION"); //synonym for FLOAT(53)
+ RegisterColumnType(DbType.Int16, "SMALLINT");
+ RegisterColumnType(DbType.Int32, "INT");
+ RegisterColumnType(DbType.Int64, "BIGINT");
+ RegisterColumnType(DbType.Single, "REAL"); //synonym for FLOAT(24)
+ }
+
+ protected virtual void RegisterCharacterTypeMappings()
+ {
+ RegisterColumnType(DbType.AnsiStringFixedLength, "CHAR(255)");
+ RegisterColumnType(DbType.AnsiStringFixedLength, 8000, "CHAR($l)");
+ RegisterColumnType(DbType.AnsiString, "VARCHAR(255)");
+ RegisterColumnType(DbType.AnsiString, SqlClientDriver.MaxSizeForLengthLimitedAnsiString, "VARCHAR($l)");
+ RegisterColumnType(DbType.AnsiString, SqlClientDriver.MaxSizeForAnsiClob, "TEXT");
+ RegisterColumnType(DbType.StringFixedLength, "NCHAR(255)");
+ RegisterColumnType(DbType.StringFixedLength, SqlClientDriver.MaxSizeForLengthLimitedString, "NCHAR($l)");
+ RegisterColumnType(DbType.String, "NVARCHAR(255)");
+ RegisterColumnType(DbType.String, SqlClientDriver.MaxSizeForLengthLimitedString, "NVARCHAR($l)");
+ RegisterColumnType(DbType.String, SqlClientDriver.MaxSizeForClob, "NTEXT");
+ }
+
/// <summary></summary>
public override string AddColumnString
{
Modified: trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs 2011-03-23 15:41:09 UTC (rev 5509)
+++ trunk/nhibernate/src/NHibernate/Dialect/MsSql2005Dialect.cs 2011-03-23 16:16:19 UTC (rev 5510)
@@ -12,10 +12,15 @@
{
public MsSql2005Dialect()
{
+ RegisterColumnType(DbType.Xml, "XML");
+ }
+
+ protected override void RegisterCharacterTypeMappings()
+ {
+ base.RegisterCharacterTypeMappings();
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");
}
/// <summary>
Modified: trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs 2011-03-23 15:41:09 UTC (rev 5509)
+++ trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs 2011-03-23 16:16:19 UTC (rev 5510)
@@ -5,15 +5,25 @@
{
public class MsSql2008Dialect : MsSql2005Dialect
{
- public MsSql2008Dialect()
+ protected override void RegisterDateTimeTypeMappings()
{
+ base.RegisterDateTimeTypeMappings();
RegisterColumnType(DbType.DateTime2, "DATETIME2");
RegisterColumnType(DbType.DateTimeOffset, "DATETIMEOFFSET");
RegisterColumnType(DbType.Date, "DATE");
RegisterColumnType(DbType.Time, "TIME");
+ }
+ protected override void RegisterFunctions()
+ {
+ base.RegisterFunctions();
RegisterFunction("current_timestamp", new NoArgSQLFunction("sysdatetime", NHibernateUtil.DateTime2, true));
RegisterFunction("current_timestamp_offset", new NoArgSQLFunction("sysdatetimeoffset", NHibernateUtil.DateTimeOffset, true));
+ }
+
+ protected override void RegisterKeywords()
+ {
+ base.RegisterKeywords();
RegisterKeyword("datetime2");
RegisterKeyword("datetimeoffset");
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|