Skip to content

Commit

Permalink
Update changes file.
Browse files Browse the repository at this point in the history
  • Loading branch information
morazow committed Mar 2, 2021
1 parent 25a470d commit 780ec79
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 7 deletions.
6 changes: 6 additions & 0 deletions doc/changes/changes_1.0.0.md
Expand Up @@ -2,9 +2,15 @@

## Features / Improvements

## Bug Fixes

* #14: Fixed issue with using Exasol reserved keywords in Spark queries (PR #88).
* #39: Fixed issue related to quoted columns in Spark queries (PR #88).

## Refactoring

* #40: Added Exasol testcontainers, refactored test environment (PR #87).
* #84: Added Exasol SQL Statement Builder for building SQL queries (PR #88).

## Documentation

Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/com/exasol/spark/ExasolRelation.scala
Expand Up @@ -71,7 +71,7 @@ class ExasolRelation(
}

override def unhandledFilters(filters: Array[Filter]): Array[Filter] =
filters.filterNot(Filters.newFilter(_).isDefined)
filters.filterNot(Filters.filterToBooleanExpression(_).isDefined)

/**
* When a count action is run from Spark dataframe we do not have to read the
Expand Down
12 changes: 6 additions & 6 deletions src/main/scala/com/exasol/spark/util/Filters.scala
Expand Up @@ -20,7 +20,7 @@ object Filters {
* @return a sequence of Exasol boolean expressions
*/
def booleanExpressionFromFilters(filters: Seq[Filter]): Seq[BooleanExpression] =
filters.map(newFilter(_)).map(_.toList).flatten
filters.map(filterToBooleanExpression(_)).map(_.toList).flatten

/**
* Given a Spark source [[org.apache.spark.sql.sources.Filter]],
Expand Down Expand Up @@ -59,18 +59,18 @@ object Filters {
// case In(a, vs) => inExpr(a, vs, "IN", dataTypes)
// case Not(In(a, vs)) => inExpr(a, vs, "NOT IN", dataTypes)
case Not(notFilter) =>
newFilter(notFilter).map(BooleanTerm.not(_)).getOrElse(null)
filterToBooleanExpression(notFilter).map(BooleanTerm.not(_)).getOrElse(null)
case And(leftFilter, rightFilter) =>
val leftExpr = newFilter(leftFilter)
val rightExpr = newFilter(rightFilter)
val leftExpr = filterToBooleanExpression(leftFilter)
val rightExpr = filterToBooleanExpression(rightFilter)
if (leftExpr.isDefined && rightExpr.isDefined) {
BooleanTerm.and(leftExpr.getOrElse(null), rightExpr.getOrElse(null))
} else {
null
}
case Or(leftFilter, rightFilter) =>
val leftExpr = newFilter(leftFilter)
val rightExpr = newFilter(rightFilter)
val leftExpr = filterToBooleanExpression(leftFilter)
val rightExpr = filterToBooleanExpression(rightFilter)
if (leftExpr.isDefined && rightExpr.isDefined) {
BooleanTerm.or(leftExpr.getOrElse(null), rightExpr.getOrElse(null))
} else {
Expand Down

0 comments on commit 780ec79

Please sign in to comment.