Skip to content

Commit a91ddbe

Browse files
ngbrownhazzik
authored andcommitted
NH-3807 - Guard on all uses of GetSchemaTable, including use of dbm2dll and implementations of ITableMetaData.
1 parent 135fc34 commit a91ddbe

37 files changed

+161
-25
lines changed

src/NHibernate/Cfg/Configuration.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
using NHibernate.Impl;
2424
using NHibernate.Mapping;
2525
using NHibernate.Proxy;
26-
using NHibernate.Tool.hbm2ddl;
2726
using NHibernate.Type;
2827
using NHibernate.Util;
2928
using Array = System.Array;
@@ -37,6 +36,10 @@
3736
using System.Security;
3837
#endif
3938

39+
#if FEATURE_DATA_GETSCHEMATABLE
40+
using NHibernate.Tool.hbm2ddl;
41+
#endif
42+
4043
namespace NHibernate.Cfg
4144
{
4245
/// <summary>
@@ -2307,6 +2310,7 @@ private static T[] AppendListeners<T>(T[] existing, T[] listenersToAdd)
23072310
return list.ToArray();
23082311
}
23092312

2313+
#if FEATURE_DATA_GETSCHEMATABLE
23102314
///<summary>
23112315
/// Generate DDL for altering tables
23122316
///</summary>
@@ -2431,6 +2435,7 @@ public void ValidateSchema(Dialect.Dialect dialect, DatabaseMetadata databaseMet
24312435
}
24322436
}
24332437
}
2438+
#endif
24342439

24352440
private IEnumerable<IPersistentIdentifierGenerator> IterateGenerators(Dialect.Dialect dialect)
24362441
{

src/NHibernate/Dialect/Dialect.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,10 +426,12 @@ public virtual bool SupportsNotNullUnique
426426
get { return true; }
427427
}
428428

429+
#if FEATURE_DATA_GETSCHEMATABLE
429430
public virtual IDataBaseSchema GetDataBaseSchema(DbConnection connection)
430431
{
431432
throw new NotSupportedException();
432433
}
434+
#endif
433435

434436
#endregion
435437

@@ -2276,4 +2278,4 @@ public virtual ISQLExceptionConverter BuildSQLExceptionConverter()
22762278
return new SQLStateConverter(ViolatedConstraintNameExtracter);
22772279
}
22782280
}
2279-
}
2281+
}

src/NHibernate/Dialect/FirebirdDialect.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,12 @@ public override SqlString Render(IList args, ISessionFactoryImplementor factory)
188188
}
189189
}
190190

191+
#if FEATURE_DATA_GETSCHEMATABLE
191192
public override IDataBaseSchema GetDataBaseSchema(DbConnection connection)
192193
{
193194
return new FirebirdDataBaseSchema(connection);
194195
}
196+
#endif
195197

196198
public override string QuerySequencesString
197199
{
@@ -426,4 +428,4 @@ private static bool IsUnallowedDecimal(DbType dbType, int precision)
426428
return dbType == DbType.Decimal && precision > MAX_DECIMAL_PRECISION;
427429
}
428430
}
429-
}
431+
}

src/NHibernate/Dialect/MsSql2000Dialect.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,10 +483,12 @@ public override bool SupportsCircularCascadeDeleteConstraints
483483
}
484484
}
485485

486+
#if FEATURE_DATA_GETSCHEMATABLE
486487
public override IDataBaseSchema GetDataBaseSchema(DbConnection connection)
487488
{
488489
return new MsSqlDataBaseSchema(connection);
489490
}
491+
#endif
490492

491493
public override bool SupportsUnionAll
492494
{

src/NHibernate/Dialect/MsSqlCeDialect.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,12 @@ public override bool SupportsLimitOffset
124124
get { return false; }
125125
}
126126

127+
#if FEATURE_DATA_GETSCHEMATABLE
127128
public override IDataBaseSchema GetDataBaseSchema(DbConnection connection)
128129
{
129130
return new MsSqlCeDataBaseSchema(connection);
130131
}
132+
#endif
131133

132134
public override SqlString GetLimitString(SqlString querySqlString, SqlString offset, SqlString limit)
133135
{
@@ -203,4 +205,4 @@ public override long TimestampResolutionInTicks
203205
}
204206
}
205207
}
206-
}
208+
}

src/NHibernate/Dialect/MySQLDialect.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,12 @@ public override bool SupportsLimit
234234
get { return true; }
235235
}
236236

237+
#if FEATURE_DATA_GETSCHEMATABLE
237238
public override IDataBaseSchema GetDataBaseSchema(DbConnection connection)
238239
{
239240
return new MySQLDataBaseSchema(connection);
240241
}
242+
#endif
241243

242244
public override bool SupportsSubSelects
243245
{
@@ -387,4 +389,4 @@ public override long TimestampResolutionInTicks
387389
}
388390
}
389391
}
390-
}
392+
}

src/NHibernate/Dialect/Oracle8iDialect.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,10 +449,12 @@ public override bool SupportsCurrentTimestampSelection
449449
get { return true; }
450450
}
451451

452+
#if FEATURE_DATA_GETSCHEMATABLE
452453
public override IDataBaseSchema GetDataBaseSchema(DbConnection connection)
453454
{
454455
return new OracleDataBaseSchema(connection);
455456
}
457+
#endif
456458

457459
public override long TimestampResolutionInTicks
458460
{
@@ -536,4 +538,4 @@ public SqlString Render(IList args, ISessionFactoryImplementor factory)
536538

537539
#endregion
538540
}
539-
}
541+
}

src/NHibernate/Dialect/PostgreSQLDialect.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,11 +229,13 @@ public override string SelectGUIDString
229229
{
230230
get { return "select uuid_generate_v4()"; }
231231
}
232-
232+
233+
#if FEATURE_DATA_GETSCHEMATABLE
233234
public override IDataBaseSchema GetDataBaseSchema(DbConnection connection)
234235
{
235236
return new PostgreSQLDataBaseMetadata(connection);
236237
}
238+
#endif
237239

238240
public override long TimestampResolutionInTicks
239241
{

src/NHibernate/Dialect/SQLiteDialect.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,12 @@ protected virtual void RegisterDefaultProperties()
125125
DefaultProperties[Cfg.Environment.QuerySubstitutions] = "true 1, false 0, yes 'Y', no 'N'";
126126
}
127127

128+
#if FEATURE_DATA_GETSCHEMATABLE
128129
public override Schema.IDataBaseSchema GetDataBaseSchema(DbConnection connection)
129130
{
130131
return new Schema.SQLiteDataBaseMetaData(connection);
131132
}
133+
#endif
132134

133135
public override string AddColumnString
134136
{
@@ -344,4 +346,4 @@ protected override bool CastingIsRequired(string sqlType)
344346
}
345347
}
346348
}
347-
}
349+
}

src/NHibernate/Dialect/Schema/AbstractDataBaseSchema.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#if FEATURE_DATA_GETSCHEMATABLE
2+
13
using System.Collections.Generic;
24
using System.Data;
35
using System.Data.Common;
@@ -109,4 +111,6 @@ protected virtual string ForeignKeysSchemaName
109111

110112
#endregion
111113
}
112-
}
114+
}
115+
116+
#endif

0 commit comments

Comments
 (0)