Skip to content

Commit a0bc61f

Browse files
Merge 5.4.5 in master
2 parents 4308ec9 + 7681611 commit a0bc61f

File tree

2 files changed

+49
-13
lines changed

2 files changed

+49
-13
lines changed

releasenotes.txt

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
1-
Build 5.4.4
1+
Build 5.4.5
2+
=============================
3+
4+
Release notes - NHibernate - Version 5.4.5
5+
6+
2 issues were resolved in this release.
7+
8+
** Task
9+
10+
* #3408 Release 5.4.4
11+
* #3407 Release Merge 5.3.19 in 5.4.x
12+
13+
14+
Build 5.4.4
215
=============================
316

417
Release notes - NHibernate - Version 5.4.4
@@ -282,6 +295,22 @@ Release notes - NHibernate - Version 5.4.0
282295
* #2242 Test case for NH-3972 - SQL error when selecting a column of a subclass when sibling classes have a column of the same name
283296

284297

298+
Build 5.3.19
299+
=============================
300+
301+
Release notes - NHibernate - Version 5.3.19
302+
303+
2 issues were resolved in this release.
304+
305+
** Bug
306+
307+
* #3397 GenerateSchemaCreationScript creates many identical dialect instances
308+
309+
** Task
310+
311+
* #3405 Release 5.3.19
312+
313+
285314
Build 5.3.18
286315
=============================
287316

src/NHibernate/Cfg/Configuration.cs

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -246,10 +246,14 @@ private class StaticDialectMappingWrapper : IMapping
246246
{
247247
private readonly IMapping _mapping;
248248

249-
public StaticDialectMappingWrapper(IMapping mapping)
249+
public StaticDialectMappingWrapper(IMapping mapping): this(mapping, mapping.Dialect)
250+
{
251+
}
252+
253+
public StaticDialectMappingWrapper(IMapping mapping, Dialect.Dialect dialect)
250254
{
251255
_mapping = mapping;
252-
Dialect = mapping.Dialect;
256+
Dialect = dialect;
253257
}
254258

255259
public IType GetIdentifierType(string className)
@@ -941,11 +945,12 @@ public string[] GenerateSchemaCreationScript(Dialect.Dialect dialect)
941945

942946
var script = new List<string>();
943947

948+
var staticDialectMapping = new StaticDialectMappingWrapper(mapping, dialect);
944949
foreach (var table in TableMappings)
945950
{
946951
if (table.IsPhysicalTable && IncludeAction(table.SchemaActions, SchemaAction.Export))
947952
{
948-
script.Add(table.SqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
953+
script.Add(table.SqlCreateString(dialect, staticDialectMapping, defaultCatalog, defaultSchema));
949954
script.AddRange(table.SqlCommentStrings(dialect, defaultCatalog, defaultSchema));
950955
}
951956
}
@@ -958,7 +963,7 @@ public string[] GenerateSchemaCreationScript(Dialect.Dialect dialect)
958963
{
959964
foreach (var uk in table.UniqueKeyIterator)
960965
{
961-
string constraintString = uk.SqlCreateString(dialect, mapping, defaultCatalog, defaultSchema);
966+
string constraintString = uk.SqlCreateString(dialect, staticDialectMapping, defaultCatalog, defaultSchema);
962967
if (constraintString != null)
963968
{
964969
script.Add(constraintString);
@@ -968,7 +973,7 @@ public string[] GenerateSchemaCreationScript(Dialect.Dialect dialect)
968973

969974
foreach (var index in table.IndexIterator)
970975
{
971-
script.Add(index.SqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
976+
script.Add(index.SqlCreateString(dialect, staticDialectMapping, defaultCatalog, defaultSchema));
972977
}
973978

974979
if (dialect.SupportsForeignKeyConstraintInAlterTable)
@@ -977,7 +982,7 @@ public string[] GenerateSchemaCreationScript(Dialect.Dialect dialect)
977982
{
978983
if (fk.IsGenerated(dialect) && IncludeAction(fk.ReferencedTable.SchemaActions, SchemaAction.Export))
979984
{
980-
script.Add(fk.SqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
985+
script.Add(fk.SqlCreateString(dialect, staticDialectMapping, defaultCatalog, defaultSchema));
981986
}
982987
}
983988
}
@@ -994,7 +999,7 @@ public string[] GenerateSchemaCreationScript(Dialect.Dialect dialect)
994999
{
9951000
if (auxDbObj.AppliesToDialect(dialect))
9961001
{
997-
script.Add(auxDbObj.SqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
1002+
script.Add(auxDbObj.SqlCreateString(dialect, staticDialectMapping, defaultCatalog, defaultSchema));
9981003
}
9991004
}
10001005

@@ -2364,6 +2369,7 @@ public string[] GenerateSchemaUpdateScript(Dialect.Dialect dialect, IDatabaseMet
23642369
var defaultSchema = GetQuotedDefaultSchema(dialect);
23652370

23662371
var script = new List<string>(50);
2372+
var staticDialectMapping = new StaticDialectMappingWrapper(mapping, dialect);
23672373
foreach (var table in TableMappings)
23682374
{
23692375
if (table.IsPhysicalTable && IncludeAction(table.SchemaActions, SchemaAction.Update))
@@ -2372,11 +2378,11 @@ public string[] GenerateSchemaUpdateScript(Dialect.Dialect dialect, IDatabaseMet
23722378
table.Catalog ?? defaultCatalog, table.IsQuoted);
23732379
if (tableInfo == null)
23742380
{
2375-
script.Add(table.SqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
2381+
script.Add(table.SqlCreateString(dialect, staticDialectMapping, defaultCatalog, defaultSchema));
23762382
}
23772383
else
23782384
{
2379-
string[] alterDDL = table.SqlAlterStrings(dialect, mapping, tableInfo, defaultCatalog, defaultSchema);
2385+
string[] alterDDL = table.SqlAlterStrings(dialect, staticDialectMapping, tableInfo, defaultCatalog, defaultSchema);
23802386
script.AddRange(alterDDL);
23812387
}
23822388

@@ -2404,7 +2410,7 @@ public string[] GenerateSchemaUpdateScript(Dialect.Dialect dialect, IDatabaseMet
24042410
&& (!(dialect is MySQLDialect) || tableInfo.GetIndexMetadata(fk.Name) == null));
24052411
if (create)
24062412
{
2407-
script.Add(fk.SqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
2413+
script.Add(fk.SqlCreateString(dialect, staticDialectMapping, defaultCatalog, defaultSchema));
24082414
}
24092415
}
24102416
}
@@ -2414,7 +2420,7 @@ public string[] GenerateSchemaUpdateScript(Dialect.Dialect dialect, IDatabaseMet
24142420
{
24152421
if (tableInfo == null || tableInfo.GetIndexMetadata(index.Name) == null)
24162422
{
2417-
script.Add(index.SqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
2423+
script.Add(index.SqlCreateString(dialect, staticDialectMapping, defaultCatalog, defaultSchema));
24182424
}
24192425
}
24202426
}
@@ -2440,6 +2446,7 @@ public void ValidateSchema(Dialect.Dialect dialect, IDatabaseMetadata databaseMe
24402446
{
24412447
SecondPassCompile();
24422448

2449+
var staticDialectMapping = new StaticDialectMappingWrapper(mapping, dialect);
24432450
var defaultCatalog = GetQuotedDefaultCatalog(dialect);
24442451
var defaultSchema = GetQuotedDefaultSchema(dialect);
24452452

@@ -2466,7 +2473,7 @@ public void ValidateSchema(Dialect.Dialect dialect, IDatabaseMetadata databaseMe
24662473
}
24672474
else
24682475
{
2469-
validationErrors.AddRange(table.ValidateColumns(dialect, mapping, tableInfo));
2476+
validationErrors.AddRange(table.ValidateColumns(dialect, staticDialectMapping, tableInfo));
24702477
}
24712478
}
24722479
}

0 commit comments

Comments
 (0)