Skip to content

Commit 7fd5d5b

Browse files
committed
Remove breaking changes
1 parent 5d11263 commit 7fd5d5b

File tree

4 files changed

+43
-40
lines changed

4 files changed

+43
-40
lines changed

src/NHibernate/Hql/Ast/ANTLR/Tree/EntityJoinFromElement.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public EntityJoinFromElement(FromClause fromClause, IQueryable entityPersister,
1515
string tableAlias = fromClause.AliasGenerator.CreateName(entityPersister.EntityName);
1616

1717
EntityType entityType = (EntityType) entityPersister.Type;
18-
InitializeEntity(fromClause, entityPersister.EntityName, entityPersister, entityType, alias, tableAlias, out _);
18+
InitializeEntity(fromClause, entityPersister.EntityName, entityPersister, entityType, alias, tableAlias);
1919

2020
//NH Specific: hibernate uses special class EntityJoinJoinSequenceImpl
2121
JoinSequence = new JoinSequence(SessionFactoryHelper.Factory) {ForceFilter = true}

src/NHibernate/Hql/Ast/ANTLR/Tree/FromClause.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,8 @@ public bool IsSubQuery
288288

289289
internal bool IsJoinSubQuery { get; set; }
290290

291+
internal bool HasRegisteredFromElements => _fromElements.Any();
292+
291293
public string GetDisplayText()
292294
{
293295
return "FromClause{" +
@@ -375,14 +377,20 @@ private FromElement FindIntendedAliasedFromElementBasedOnCrazyJPARequirements(st
375377

376378
public void RegisterFromElement(FromElement element, out bool isFirst)
377379
{
378-
isFirst = !_fromElements.Any();
380+
isFirst = !HasRegisteredFromElements;
381+
RegisterFromElement(element);
382+
}
383+
384+
public void RegisterFromElement(FromElement element)
385+
{
379386
_fromElements.Add(element);
380387
string classAlias = element.ClassAlias;
381388
if (classAlias != null)
382389
{
383390
// The HQL class alias refers to the class name.
384391
_fromElementByClassAlias.Add(classAlias, element);
385392
}
393+
386394
// Associate the table alias with the element.
387395
string tableAlias = element.TableAlias;
388396
if (tableAlias != null)
@@ -392,7 +400,7 @@ public void RegisterFromElement(FromElement element, out bool isFirst)
392400

393401
if (element.IsEntityJoin())
394402
{
395-
_appendFromElements.Add((EntityJoinFromElement) element);
403+
_appendFromElements.Add((EntityJoinFromElement)element);
396404
}
397405
}
398406

src/NHibernate/Hql/Ast/ANTLR/Tree/FromElement.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ protected FromElement(FromClause fromClause,FromElement origin,string alias):thi
6666
protected void InitializeComponentJoin(FromElementType elementType)
6767
{
6868
_elementType = elementType;
69-
_fromClause.RegisterFromElement(this, out _);
69+
_fromClause.RegisterFromElement(this);
7070
_initialized = true;
7171
}
7272

@@ -738,7 +738,7 @@ public virtual string GetDisplayText()
738738

739739
public void InitializeCollection(FromClause fromClause, string classAlias, string tableAlias)
740740
{
741-
DoInitialize(fromClause, tableAlias, null, classAlias, null, null, null, out _);
741+
DoInitialize(fromClause, tableAlias, null, classAlias, null, null, null);
742742
_initialized = true;
743743
}
744744

@@ -747,10 +747,9 @@ public void InitializeEntity(FromClause fromClause,
747747
IEntityPersister persister,
748748
EntityType type,
749749
string classAlias,
750-
string tableAlias,
751-
out bool isFirstElement)
750+
string tableAlias)
752751
{
753-
DoInitialize(fromClause, tableAlias, className, classAlias, persister, type, null, out isFirstElement);
752+
DoInitialize(fromClause, tableAlias, className, classAlias, persister, type, null);
754753
_initialized = true;
755754
}
756755

@@ -762,7 +761,7 @@ internal void Initialize(
762761
string tableAlias,
763762
IEntityPersister persister)
764763
{
765-
DoInitialize(fromClause, tableAlias, null, classAlias, persister, type, propertyMapping, out _);
764+
DoInitialize(fromClause, tableAlias, null, classAlias, persister, type, propertyMapping);
766765
_initialized = true;
767766
}
768767

@@ -810,7 +809,7 @@ private void AddDestination(FromElement fromElement)
810809
}
811810

812811
private void DoInitialize(FromClause fromClause, string tableAlias, string className, string classAlias,
813-
IEntityPersister persister, IType type, IPropertyMapping propertyMapping, out bool isFirstElement)
812+
IEntityPersister persister, IType type, IPropertyMapping propertyMapping)
814813
{
815814
if (_initialized)
816815
{
@@ -827,7 +826,7 @@ private void DoInitialize(FromClause fromClause, string tableAlias, string class
827826
}
828827

829828
// Register the FromElement with the FROM clause, now that we have the names and aliases.
830-
fromClause.RegisterFromElement(this, out isFirstElement);
829+
fromClause.RegisterFromElement(this);
831830

832831
if (Log.IsDebugEnabled())
833832
{

src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementFactory.cs

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,7 @@ public FromElement AddFromElement()
8484
_classAlias,
8585
entityPersister,
8686
(EntityType)((IQueryable)entityPersister).Type,
87-
null,
88-
out _);
87+
null);
8988

9089
// Add to the query spaces.
9190
_fromClause.Walker.AddQuerySpaces(entityPersister);
@@ -142,8 +141,7 @@ private FromElement CreateFromElementInSubselect(
142141
classAlias,
143142
entityPersister,
144143
(EntityType)((IQueryable)entityPersister).Type,
145-
tableAlias,
146-
out _
144+
tableAlias
147145
);
148146
}
149147
if (Log.IsDebugEnabled())
@@ -256,8 +254,7 @@ public FromElement CreateElementJoin(IQueryableCollection queryableCollection)
256254
_classAlias,
257255
targetEntityPersister,
258256
(EntityType)queryableCollection.ElementType,
259-
tableAlias,
260-
out _);
257+
tableAlias);
261258

262259
// If the join is implied, then don't include sub-classes on the element.
263260
if (_implied)
@@ -293,7 +290,8 @@ public FromElement CreateEntityJoin(
293290
bool inFrom,
294291
EntityType type)
295292
{
296-
FromElement elem = CreateJoin(entityClass, tableAlias, joinSequence, type, false, out bool isFirstElement);
293+
var isFirstFromElement = !_fromClause.HasRegisteredFromElements;
294+
FromElement elem = CreateJoin(entityClass, tableAlias, joinSequence, type, false);
297295
elem.Fetch = fetchFlag;
298296

299297
//if (numberOfTables > 1 && _implied && !elem.UseFromFragment)
@@ -323,7 +321,7 @@ public FromElement CreateEntityJoin(
323321
// 1) 'elem' is the "root from-element" in correlated subqueries
324322
// 2) The DotNode.useThetaStyleImplicitJoins has been set to true
325323
// and 'elem' represents an implicit join
326-
if (isFirstElement && elem.FromClause != elem.Origin.FromClause || DotNode.UseThetaStyleImplicitJoins)
324+
if (isFirstFromElement && elem.FromClause != elem.Origin.FromClause || DotNode.UseThetaStyleImplicitJoins)
327325
{
328326
// the "root from-element" in correlated subqueries do need this piece
329327
elem.Type = HqlSqlWalker.FROM_FRAGMENT;
@@ -355,7 +353,7 @@ private FromElement CreateEntityAssociation(
355353

356354
var joinSequence = CreateJoinSequence(roleAlias, joinType, implicitJoin);
357355

358-
elem = CreateJoin(associatedEntityName, roleAlias, joinSequence, (EntityType) _queryableCollection.ElementType, false, out _);
356+
elem = CreateJoin(associatedEntityName, roleAlias, joinSequence, (EntityType) _queryableCollection.ElementType, false);
359357
elem.UseFromFragment |= elem.IsImplied && elem.Walker.IsSubQuery;
360358
}
361359
else
@@ -418,7 +416,7 @@ private FromElement CreateManyToMany(
418416
{
419417
// For implied many-to-many, just add the end join.
420418
JoinSequence joinSequence = CreateJoinSequence(roleAlias, joinType, implicitJoin);
421-
elem = CreateJoin(associatedEntityName, roleAlias, joinSequence, type, true, out _);
419+
elem = CreateJoin(associatedEntityName, roleAlias, joinSequence, type, true);
422420
}
423421
else
424422
{
@@ -431,7 +429,7 @@ private FromElement CreateManyToMany(
431429
// Add the second join, the one that ends in the destination table.
432430
JoinSequence joinSequence = CreateJoinSequence(roleAlias, joinType, implicitJoin);
433431
joinSequence.AddJoin(sfh.GetElementAssociationType(_collectionType), tableAlias, joinType, secondJoinColumns);
434-
elem = CreateJoin(associatedEntityName, tableAlias, joinSequence, type, false, out _);
432+
elem = CreateJoin(associatedEntityName, tableAlias, joinSequence, type, false);
435433
elem.UseFromFragment = true;
436434
}
437435
return elem;
@@ -454,17 +452,15 @@ private FromElement CreateJoin(
454452
string tableAlias,
455453
JoinSequence joinSequence,
456454
EntityType type,
457-
bool manyToMany,
458-
out bool isFirstElement)
455+
bool manyToMany)
459456
{
460457
// origin, path, implied, columns, classAlias,
461458
IEntityPersister entityPersister = _fromClause.SessionFactoryHelper.RequireClassPersister(entityClass);
462459
FromElement destination = CreateAndAddFromElement(entityClass,
463-
_classAlias,
464-
entityPersister,
465-
type,
466-
tableAlias,
467-
out isFirstElement);
460+
_classAlias,
461+
entityPersister,
462+
type,
463+
tableAlias);
468464
return InitializeJoin(_path, destination, joinSequence, Columns, _origin, manyToMany);
469465
}
470466

@@ -527,37 +523,37 @@ private IASTNode CreateFromElement(string text)
527523
return ast;
528524
}
529525

530-
private void InitializeAndAddFromElement(FromElement element,
531-
string className,
532-
string classAlias,
533-
IEntityPersister entityPersister,
534-
EntityType type,
535-
string tableAlias,
536-
out bool isFirstElement)
526+
private void InitializeAndAddFromElement(
527+
FromElement element,
528+
string className,
529+
string classAlias,
530+
IEntityPersister entityPersister,
531+
EntityType type,
532+
string tableAlias)
537533
{
538534
if (tableAlias == null)
539535
{
540536
AliasGenerator aliasGenerator = _fromClause.AliasGenerator;
541537
tableAlias = aliasGenerator.CreateName(entityPersister.EntityName);
542538
}
543-
element.InitializeEntity(_fromClause, className, entityPersister, type, classAlias, tableAlias, out isFirstElement);
539+
540+
element.InitializeEntity(_fromClause, className, entityPersister, type, classAlias, tableAlias);
544541
}
545542

546543
private FromElement CreateAndAddFromElement(
547544
string className,
548545
string classAlias,
549546
IEntityPersister entityPersister,
550547
EntityType type,
551-
string tableAlias,
552-
out bool isFirstElement)
548+
string tableAlias)
553549
{
554550
if (!(entityPersister is IJoinable))
555551
{
556552
throw new ArgumentException("EntityPersister " + entityPersister + " does not implement Joinable!");
557553
}
558554

559555
FromElement element = CreateFromElement(entityPersister);
560-
InitializeAndAddFromElement(element, className, classAlias, entityPersister, type, tableAlias, out isFirstElement);
556+
InitializeAndAddFromElement(element, className, classAlias, entityPersister, type, tableAlias);
561557
return element;
562558
}
563559

0 commit comments

Comments
 (0)