Skip to content

Commit faba328

Browse files
author
Gunnar Liljas
committed
Rebased
1 parent e867f17 commit faba328

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

src/NHibernate/Loader/Criteria/CriteriaQueryTranslator.cs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ public ISet<string> GetQuerySpaces()
9696
{
9797
result.UnionWith(collectionPersister.CollectionSpaces);
9898
}
99+
100+
result.UnionWith(subQuerySpaces);
101+
99102
return result;
100103
}
101104

@@ -851,7 +854,7 @@ public string[] GetColumnAliasesUsingProjection(ICriteria subcriteria, string pr
851854

852855
private void CreateSubQuerySpaces()
853856
{
854-
857+
855858
var subQueries =
856859
rootCriteria.IterateExpressionEntries()
857860
.Select(x => x.Criterion)
@@ -866,6 +869,23 @@ private void CreateSubQuerySpaces()
866869
subQuerySpaces.UnionWith(translator.GetQuerySpaces());
867870
}
868871

869-
}
872+
}
873+
874+
private void GetSubQueries(CriteriaImpl criteriaImpl, List<CriteriaImpl> subQueries)
875+
{
876+
var subQueryExpressions =
877+
criteriaImpl.IterateExpressionEntries().Select(x => x.Criterion).OfType<SubqueryExpression>().ToList();
878+
879+
foreach (var subqueryExpression in subQueryExpressions)
880+
{
881+
var impl = subqueryExpression.Criteria as CriteriaImpl;
882+
if (impl != null)
883+
{
884+
subQueries.Add(impl);
885+
GetSubQueries(impl, subQueries);
886+
}
887+
}
888+
889+
}
870890
}
871891
}

0 commit comments

Comments
 (0)