Skip to content

Commit 6f22b8f

Browse files
committed
NH-3807 - Guard on all uses of GetSchemaTable, including use of dbm2dll and implementations of ITableMetaData.
1 parent c16eef3 commit 6f22b8f

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
@@ -99,10 +99,12 @@ protected virtual void RegisterDefaultProperties()
9999
DefaultProperties[Cfg.Environment.QuerySubstitutions] = "true 1, false 0, yes 'Y', no 'N'";
100100
}
101101

102+
#if FEATURE_DATA_GETSCHEMATABLE
102103
public override Schema.IDataBaseSchema GetDataBaseSchema(DbConnection connection)
103104
{
104105
return new Schema.SQLiteDataBaseMetaData(connection);
105106
}
107+
#endif
106108

107109
public override string AddColumnString
108110
{
@@ -318,4 +320,4 @@ protected override bool CastingIsRequired(string sqlType)
318320
}
319321
}
320322
}
321-
}
323+
}

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

src/NHibernate/Dialect/Schema/AbstractForeignKeyMetadata.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

@@ -33,4 +35,6 @@ public override string ToString()
3335
return "ForeignKeyMetadata(" + name + ')';
3436
}
3537
}
36-
}
38+
}
39+
40+
#endif

src/NHibernate/Dialect/Schema/AbstractIndexMetadata.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;
24
using System.Collections.Generic;
35
using System.Data;
@@ -34,4 +36,6 @@ public override string ToString()
3436
return "IndexMatadata(" + name + ')';
3537
}
3638
}
37-
}
39+
}
40+
41+
#endif

src/NHibernate/Dialect/Schema/AbstractTableMetadata.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

@@ -168,4 +170,6 @@ private void InitColumns(IDataBaseSchema meta)
168170
}
169171
}
170172
}
171-
}
173+
}
174+
175+
#endif

src/NHibernate/Dialect/Schema/FirebirdMetaData.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#if FEATURE_DATA_GETSCHEMATABLE
2+
13
using System;
24
using System.Data;
35
using System.Data.Common;
@@ -97,3 +99,5 @@ public FirebirdForeignKeyMetadata(DataRow rs)
9799
}
98100

99101
}
102+
103+
#endif

src/NHibernate/Dialect/Schema/IDataBaseSchema.cs

Lines changed: 4 additions & 0 deletions
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

@@ -124,3 +126,5 @@ public interface IDataBaseSchema
124126
ISet<string> GetReservedWords();
125127
}
126128
}
129+
130+
#endif

src/NHibernate/Dialect/Schema/MsSqlCeMetaData.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#if FEATURE_DATA_GETSCHEMATABLE
2+
13
using System;
24
using System.Data;
35
using System.Data.Common;
@@ -89,3 +91,5 @@ public MsSqlCeForeignKeyMetadata(DataRow rs)
8991
}
9092
}
9193
}
94+
95+
#endif

src/NHibernate/Dialect/Schema/MsSqlMetaData.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#if FEATURE_DATA_GETSCHEMATABLE
2+
13
using System;
24
using System.Data;
35
using System.Data.Common;
@@ -94,3 +96,5 @@ public MsSqlForeignKeyMetadata(DataRow rs)
9496
}
9597
}
9698
}
99+
100+
#endif

src/NHibernate/Dialect/Schema/MySQLMetaData.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#if FEATURE_DATA_GETSCHEMATABLE
2+
13
using System;
24
using System.Data;
35
using System.Data.Common;
@@ -100,3 +102,5 @@ public MySQLForeignKeyMetadata(DataRow rs)
100102
}
101103
}
102104
}
105+
106+
#endif

src/NHibernate/Dialect/Schema/OracleMetaData.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#if FEATURE_DATA_GETSCHEMATABLE
2+
13
using System;
24
using System.Data;
35
using System.Data.Common;
@@ -130,3 +132,5 @@ public OracleForeignKeyMetadata(DataRow rs)
130132
}
131133
}
132134
}
135+
136+
#endif

src/NHibernate/Dialect/Schema/PostgreSQLMetadata.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using System;
1+
#if FEATURE_DATA_GETSCHEMATABLE
2+
3+
using System;
24
using System.Data;
35
using System.Data.Common;
46
using System.Globalization;
@@ -159,3 +161,5 @@ public PostgreSQLForeignKeyMetadata(DataRow rs)
159161
}
160162
}
161163
}
164+
165+
#endif

src/NHibernate/Dialect/Schema/SQLiteMetaData.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using System;
1+
#if FEATURE_DATA_GETSCHEMATABLE
2+
3+
using System;
24
using System.Data;
35
using System.Data.Common;
46

@@ -94,3 +96,5 @@ public SQLiteForeignKeyMetaData(DataRow rs) : base(rs)
9496
}
9597
}
9698
}
99+
100+
#endif

src/NHibernate/Dialect/Schema/SchemaHelper.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#if FEATURE_DATA_GETSCHEMATABLE
2+
13
using System;
24
using System.Data;
35

@@ -40,3 +42,5 @@ public static string GetString(DataRow row, params string[] alternativeColumnNam
4042
}
4143
}
4244
}
45+
46+
#endif

src/NHibernate/Dialect/Schema/SybaseAnywhereMetaData.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using System;
1+
#if FEATURE_DATA_GETSCHEMATABLE
2+
3+
using System;
24
using System.Collections.Generic;
35
using System.Data;
46
using System.Data.Common;
@@ -144,3 +146,5 @@ public SybaseAnywhereForeignKeyMetaData(DataRow rs) : base(rs)
144146
}
145147
}
146148
}
149+
150+
#endif

src/NHibernate/Dialect/SybaseASA9Dialect.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,12 @@ public override SqlString GetLimitString(SqlString queryString, SqlString offset
116116
return queryString.Insert(intSelectInsertPoint, limitFragment.ToSqlString());
117117
}
118118

119+
#if FEATURE_DATA_GETSCHEMATABLE
119120
public override IDataBaseSchema GetDataBaseSchema(DbConnection connection)
120121
{
121122
return new SybaseAnywhereDataBaseMetaData(connection);
122123
}
124+
#endif
123125

124126
public override string AddColumnString
125127
{
@@ -185,4 +187,4 @@ private static int GetAfterSelectInsertPoint(SqlString sql)
185187
return 0;
186188
}
187189
}
188-
}
190+
}

0 commit comments

Comments
 (0)