From ab0ad5ad6e5dedbb94b669d4e3b2c3050662deae Mon Sep 17 00:00:00 2001 From: Jorge Gamba Date: Mon, 18 Aug 2014 09:13:16 -0500 Subject: [PATCH] Ensures that Distinct clause works with InMemoryAdapter --- Simple.Data.InMemoryTest/InMemoryTests.cs | 10 ++++++++++ Simple.Data/QueryPolyfills/DictionaryQueryRunner.cs | 7 ++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Simple.Data.InMemoryTest/InMemoryTests.cs b/Simple.Data.InMemoryTest/InMemoryTests.cs index d462583d..62604e11 100644 --- a/Simple.Data.InMemoryTest/InMemoryTests.cs +++ b/Simple.Data.InMemoryTest/InMemoryTests.cs @@ -188,6 +188,16 @@ public void SelectWithHavingSumShouldReturnOnlyMatchingRows() Assert.AreEqual("Bob", records[0].Name); } + [Test] + public void SelectWithDistinctShouldReturnOnlyDistinctRows() + { + var db = CreateAggregateTestDb(); + var records = db.Test.All().Select(db.Test.Name).Distinct().ToList(); + Assert.AreEqual(2, records.Count); + Assert.AreEqual("Alice", records[0].Name); + Assert.AreEqual("Bob", records[1].Name); + } + private static dynamic CreateAggregateTestDb() { Database.UseMockAdapter(new InMemoryAdapter()); diff --git a/Simple.Data/QueryPolyfills/DictionaryQueryRunner.cs b/Simple.Data/QueryPolyfills/DictionaryQueryRunner.cs index ff33250d..b0858efc 100644 --- a/Simple.Data/QueryPolyfills/DictionaryQueryRunner.cs +++ b/Simple.Data/QueryPolyfills/DictionaryQueryRunner.cs @@ -47,6 +47,9 @@ public IEnumerable> Run() } source = RunOrderByClauses(source); + + source = RunHavingClauses(source); + source = RunSelectClauses(source); foreach (var clause in _clauses) { @@ -56,9 +59,7 @@ public IEnumerable> Run() source = handler(clause, source); } } - - source = RunHavingClauses(source); - source = RunSelectClauses(source); + return source; }