diff --git a/vuu/src/main/scala/org/finos/vuu/core/sort/FilterAndSort.scala b/vuu/src/main/scala/org/finos/vuu/core/sort/FilterAndSort.scala index 173346015..9ab2c41aa 100644 --- a/vuu/src/main/scala/org/finos/vuu/core/sort/FilterAndSort.scala +++ b/vuu/src/main/scala/org/finos/vuu/core/sort/FilterAndSort.scala @@ -111,7 +111,7 @@ case class AntlrBasedFilter(clause: FilterClause) extends Filter with StrictLogg filteredKeys case Error(msg) => logger.error(s"Unexpected error occurred while filtering (skipping filters): \n$msg") - primaryKeys + EmptyTablePrimaryKeys } } } diff --git a/vuu/src/test/scala/org/finos/vuu/core/filter/FilterGrammarTest.scala b/vuu/src/test/scala/org/finos/vuu/core/filter/FilterGrammarTest.scala index 553753126..ce9995943 100644 --- a/vuu/src/test/scala/org/finos/vuu/core/filter/FilterGrammarTest.scala +++ b/vuu/src/test/scala/org/finos/vuu/core/filter/FilterGrammarTest.scala @@ -2,12 +2,14 @@ package org.finos.vuu.core.filter import org.antlr.v4.runtime.misc.ParseCancellationException import org.finos.vuu.core.filter.FilterSpecParser.{parse => filterClause} -import org.finos.vuu.core.sort.FilterAndSortFixture.{row, _} +import org.finos.vuu.core.sort.FilterAndSortFixture._ import org.finos.vuu.core.table.RowWithData import org.scalatest.featurespec.AnyFeatureSpec import org.scalatest.matchers.should.Matchers import org.scalatest.prop.TableDrivenPropertyChecks._ +import scala.collection.immutable + class FilterGrammarTest extends AnyFeatureSpec with Matchers { def assertParsable(filter: String): Unit = filterClause(filter) shouldBe a[FilterClause] def assertNotParsable(filter: String): Unit = an [ParseCancellationException] should be thrownBy filterClause(filter) @@ -277,10 +279,10 @@ class FilterGrammarTest extends AnyFeatureSpec with Matchers { ) } - Scenario("filter on a non-existent column skips filtering and returns result unchanged") { + Scenario("filter on a non-existent column returns empty results") { val table = setupTable2() val clause = filterClause("ccyCross = \"$GBPUSD\" and nonExistent = 10") - getFilteredRows(table, clause).map(_.key).toSet shouldEqual table.primaryKeys.toSet + getFilteredRows(table, clause).map(_.key).toSet shouldEqual immutable.Set.empty } } }