diff --git a/src/NHibernate.Test/Async/CompositeId/CompositeIdFixture.cs b/src/NHibernate.Test/Async/CompositeId/CompositeIdFixture.cs index 5bc228546f8..20e81265dd4 100644 --- a/src/NHibernate.Test/Async/CompositeId/CompositeIdFixture.cs +++ b/src/NHibernate.Test/Async/CompositeId/CompositeIdFixture.cs @@ -10,8 +10,10 @@ using System; using System.Collections; +using System.Linq; using NHibernate.Dialect; using NUnit.Framework; +using NHibernate.Linq; namespace NHibernate.Test.CompositeId { @@ -296,5 +298,15 @@ public async Task QueryAsync() await (t.CommitAsync()); s.Close(); } + + [Test(Description = "GH-2646")] + public async Task AnyOnCompositeIdAsync() + { + using (var s = OpenSession()) + { + await (s.Query().Where(o => o.LineItems.Any()).ToListAsync()); + await (s.Query().Select(o => o.LineItems.Any()).ToListAsync()); + } + } } } diff --git a/src/NHibernate.Test/CompositeId/CompositeIdFixture.cs b/src/NHibernate.Test/CompositeId/CompositeIdFixture.cs index e63fed37cb1..9989a1d73c4 100644 --- a/src/NHibernate.Test/CompositeId/CompositeIdFixture.cs +++ b/src/NHibernate.Test/CompositeId/CompositeIdFixture.cs @@ -1,5 +1,6 @@ using System; using System.Collections; +using System.Linq; using NHibernate.Dialect; using NUnit.Framework; @@ -285,5 +286,15 @@ public void Query() t.Commit(); s.Close(); } + + [Test(Description = "GH-2646")] + public void AnyOnCompositeId() + { + using (var s = OpenSession()) + { + s.Query().Where(o => o.LineItems.Any()).ToList(); + s.Query().Select(o => o.LineItems.Any()).ToList(); + } + } } } diff --git a/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.cs b/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.cs index e75da1bf7c7..1d36eefe1e1 100644 --- a/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.cs +++ b/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.cs @@ -182,6 +182,7 @@ public IList Parameters void BeforeStatement(string statementName, int statementType) { _inFunctionCall = false; + _inCase = false; _level++; if (_level == 1) {