Skip to content

Commit d1ab580

Browse files
committed
SqlTypes
1 parent aff16f0 commit d1ab580

38 files changed

+129
-402
lines changed

src/NHibernate.Test/DialectTest/MsSql2005DialectFixture.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Data;
34
using NHibernate.Dialect;
45
using NHibernate.Driver;
56
using NHibernate.Mapping;
@@ -97,16 +98,16 @@ public void NH2809()
9798
{
9899
var d = new MsSql2005Dialect();
99100

100-
string t = d.GetTypeName(new BinarySqlType());
101+
string t = d.GetTypeName(new SqlType(DbType.Binary));
101102
Assert.That(t, Is.EqualTo("VARBINARY(MAX)"));
102103

103-
t = d.GetTypeName(new BinarySqlType(), SqlClientDriver.MaxSizeForLengthLimitedBinary - 1, 0, 0);
104+
t = d.GetTypeName(new SqlType(DbType.Binary), SqlClientDriver.MaxSizeForLengthLimitedBinary - 1, 0, 0);
104105
Assert.That(t, Is.EqualTo(String.Format("VARBINARY({0})", SqlClientDriver.MaxSizeForLengthLimitedBinary - 1)));
105106

106-
t = d.GetTypeName(new BinarySqlType(), SqlClientDriver.MaxSizeForLengthLimitedBinary, 0, 0);
107+
t = d.GetTypeName(new SqlType(DbType.Binary), SqlClientDriver.MaxSizeForLengthLimitedBinary, 0, 0);
107108
Assert.That(t, Is.EqualTo(String.Format("VARBINARY({0})", SqlClientDriver.MaxSizeForLengthLimitedBinary)));
108109

109-
t = d.GetTypeName(new BinarySqlType(), SqlClientDriver.MaxSizeForLengthLimitedBinary + 1, 0, 0);
110+
t = d.GetTypeName(new SqlType(DbType.Binary), SqlClientDriver.MaxSizeForLengthLimitedBinary + 1, 0, 0);
110111
Assert.That(t, Is.EqualTo("VARBINARY(MAX)"));
111112
}
112113

@@ -303,4 +304,4 @@ private static void VerifyLimitStringForStoredProcedureCalls(string sql)
303304
Assert.That(limitSql, Is.Null, "Limit and Offset: {0}", sql);
304305
}
305306
}
306-
}
307+
}

src/NHibernate.Test/DriverTest/SqlServerCeEntity.hbm.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
<property name="BinaryProp"/> <!-- maps to VARBINARY(8000) -->
1313

1414
<property name="StringClob" type="StringClob">
15-
<column name="StringClob" sql-type="ntext"/>
15+
<column name="StringClob" length="65536" sql-type="ntext"/>
1616
</property>
1717

1818
<property name="BinaryBlob" type="BinaryBlob">
19-
<column name="BinaryBlob" sql-type="image"/>
19+
<column name="BinaryBlob" length="65536" sql-type="image"/>
2020
</property>
2121

2222
</class>
23-
</hibernate-mapping>
23+
</hibernate-mapping>

src/NHibernate.Test/NHSpecificTest/NH1835/Fixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public void ColumnTypeBinaryBlob()
1111
{
1212
var pc = Sfi.GetEntityPersister(typeof (Document).FullName);
1313
var type = pc.GetPropertyType("Contents");
14-
Assert.That(type.SqlTypes(Sfi)[0], Is.InstanceOf<BinaryBlobSqlType>());
14+
Assert.That(type.SqlTypes(Sfi)[0], Is.InstanceOf<SqlType>());
1515
}
1616
}
17-
}
17+
}

src/NHibernate.Test/NHSpecificTest/NH732/Fixture.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Data;
34
using System.Data.Common;
45
using NHibernate.Dialect;
56
using NHibernate.Engine;
@@ -60,7 +61,7 @@ public class CaseInsensitiveStringType : IEnhancedUserType
6061
{
6162
public SqlType[] SqlTypes
6263
{
63-
get { return new SqlType[] { new StringSqlType() }; }
64+
get { return new SqlType[] { new SqlType(DbType.String) }; }
6465
}
6566

6667
public System.Type ReturnedType

src/NHibernate.TestDatabaseSetup/TestDatabaseSetup.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,15 +118,15 @@ private static void SetupSqlServerCe(Cfg.Configuration cfg)
118118
{
119119
try
120120
{
121-
if (File.Exists("NHibernate.sdf"))
122-
File.Delete("NHibernate.sdf");
121+
if (File.Exists("D:\\NHibernate.sdf"))
122+
File.Delete("D:\\NHibernate.sdf");
123123
}
124124
catch (Exception e)
125125
{
126126
Console.WriteLine(e);
127127
}
128128

129-
using (var en = new SqlCeEngine("DataSource=\"NHibernate.sdf\""))
129+
using (var en = new SqlCeEngine("DataSource=\"D:\\Projects\\nhibernate-core\\current-test-configuration\\NHibernate.sdf\""))
130130
{
131131
en.CreateDatabase();
132132
}

src/NHibernate/Driver/SqlClientDriver.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,9 @@ protected static bool IsAnsiText(DbParameter dbParam, SqlType sqlType)
169169
/// <returns>True, if the parameter should be interpreted as a Clob, otherwise False</returns>
170170
protected static bool IsText(DbParameter dbParam, SqlType sqlType)
171171
{
172-
return (sqlType is StringClobSqlType) || ((DbType.String == dbParam.DbType || DbType.StringFixedLength == dbParam.DbType) && sqlType.LengthDefined && (sqlType.Length > MaxSizeForLengthLimitedString));
172+
return (DbType.String == dbParam.DbType || DbType.StringFixedLength == dbParam.DbType) &&
173+
sqlType.LengthDefined &&
174+
sqlType.Length > MaxSizeForLengthLimitedString;
173175
}
174176

175177
/// <summary>
@@ -180,7 +182,9 @@ protected static bool IsText(DbParameter dbParam, SqlType sqlType)
180182
/// <returns>True, if the parameter should be interpreted as a Blob, otherwise False</returns>
181183
protected static bool IsBlob(DbParameter dbParam, SqlType sqlType)
182184
{
183-
return (sqlType is BinaryBlobSqlType) || ((DbType.Binary == dbParam.DbType) && sqlType.LengthDefined && (sqlType.Length > MaxSizeForLengthLimitedBinary));
185+
return DbType.Binary == dbParam.DbType &&
186+
sqlType.LengthDefined &&
187+
sqlType.Length > MaxSizeForLengthLimitedBinary;
184188
}
185189

186190
#region IEmbeddedBatcherFactoryProvider Members

src/NHibernate/Driver/SqlServerCeDriver.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ namespace NHibernate.Driver
1414
/// </summary>
1515
public class SqlServerCeDriver : ReflectionBasedDriver
1616
{
17+
public const int MaxSizeForLengthLimitedString = 4000;
18+
public const int MaxSizeForLengthLimitedBinary = 8000;
19+
1720
/// <summary>
1821
/// Initializes a new instance of the <see cref="SqlServerCeDriver"/> class.
1922
/// </summary>
@@ -102,20 +105,21 @@ protected override void InitializeParameter(DbParameter dbParam, string name, Sq
102105
base.InitializeParameter(dbParam, name, AdjustSqlType(sqlType));
103106

104107
AdjustDbParamTypeForLargeObjects(dbParam, sqlType);
108+
105109
if (prepareSql)
106110
{
107111
SqlClientDriver.SetVariableLengthParameterSize(dbParam, sqlType);
108-
}
112+
}
109113
}
110114

111115
private static SqlType AdjustSqlType(SqlType sqlType)
112116
{
113117
switch (sqlType.DbType)
114118
{
115119
case DbType.AnsiString:
116-
return new StringSqlType(sqlType.Length);
120+
return new SqlType(DbType.String, sqlType.Length);
117121
case DbType.AnsiStringFixedLength:
118-
return new StringFixedLengthSqlType(sqlType.Length);
122+
return new SqlType(DbType.StringFixedLength, sqlType.Length);
119123
case DbType.Date:
120124
return SqlTypeFactory.DateTime;
121125
case DbType.Time:
@@ -127,14 +131,14 @@ private static SqlType AdjustSqlType(SqlType sqlType)
127131

128132
private void AdjustDbParamTypeForLargeObjects(DbParameter dbParam, SqlType sqlType)
129133
{
130-
if (sqlType is BinaryBlobSqlType)
134+
if (sqlType.DbType == DbType.Binary && sqlType.LengthDefined && sqlType.Length > MaxSizeForLengthLimitedBinary)
131135
{
132136
dbParamSqlDbTypeProperty.SetValue(dbParam, SqlDbType.Image, null);
133137
}
134-
else if (sqlType is StringClobSqlType)
138+
if (sqlType.DbType == DbType.String && sqlType.LengthDefined && sqlType.Length > MaxSizeForLengthLimitedString)
135139
{
136140
dbParamSqlDbTypeProperty.SetValue(dbParam, SqlDbType.NText, null);
137141
}
138142
}
139143
}
140-
}
144+
}

src/NHibernate/NHibernate.csproj

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -671,15 +671,8 @@
671671
<Compile Include="SqlCommand\SqlStringHelper.cs" />
672672
<Compile Include="SqlCommand\Template.cs" />
673673
<Compile Include="SqlCommand\WhereBuilder.cs" />
674-
<Compile Include="SqlTypes\AnsiStringFixedLengthSqlType.cs" />
675-
<Compile Include="SqlTypes\AnsiStringSqlType.cs" />
676-
<Compile Include="SqlTypes\BinaryBlobSqlType.cs" />
677-
<Compile Include="SqlTypes\BinarySqlType.cs" />
678674
<Compile Include="SqlTypes\SqlType.cs" />
679675
<Compile Include="SqlTypes\SqlTypeFactory.cs" />
680-
<Compile Include="SqlTypes\StringClobSqlType.cs" />
681-
<Compile Include="SqlTypes\StringFixedLengthSqlType.cs" />
682-
<Compile Include="SqlTypes\StringSqlType.cs" />
683676
<Compile Include="StaleObjectStateException.cs" />
684677
<Compile Include="Tool\hbm2ddl\SchemaExport.cs" />
685678
<Compile Include="TransactionException.cs" />
@@ -1165,7 +1158,6 @@
11651158
<Compile Include="Param\VersionTypeSeedParameterSpecification.cs" />
11661159
<Compile Include="Proxy\AbstractProxyFactory.cs" />
11671160
<Compile Include="SqlCommand\InsertSelect.cs" />
1168-
<Compile Include="SqlTypes\XmlSqlType.cs" />
11691161
<Compile Include="Tool\hbm2ddl\SchemaMetadataUpdater.cs" />
11701162
<Compile Include="Tool\hbm2ddl\ScriptSplitter.cs" />
11711163
<Compile Include="Transform\ToListResultTransformer.cs" />
@@ -1845,4 +1837,4 @@
18451837
<Error Condition="!Exists('..\packages\Antlr3.3.5.1\build\Antlr3.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Antlr3.3.5.1\build\Antlr3.targets'))" />
18461838
</Target>
18471839
<Import Project="..\packages\Antlr3.3.5.1\build\Antlr3.targets" Condition="Exists('..\packages\Antlr3.3.5.1\build\Antlr3.targets')" />
1848-
</Project>
1840+
</Project>

src/NHibernate/SqlTypes/AnsiStringFixedLengthSqlType.cs

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/NHibernate/SqlTypes/AnsiStringSqlType.cs

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/NHibernate/SqlTypes/BinaryBlobSqlType.cs

Lines changed: 0 additions & 30 deletions
This file was deleted.

src/NHibernate/SqlTypes/BinarySqlType.cs

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)