From b0d03592716369edb390f7811a5d4d530bb0cfe2 Mon Sep 17 00:00:00 2001 From: Xiu Guo Date: Thu, 24 Dec 2015 20:08:35 -0800 Subject: [PATCH] [SPARK-12521][SQL] JDBCRelation does not honor lowerBound/upperBound --- .../sql/execution/datasources/jdbc/JDBCRelation.scala | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JDBCRelation.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JDBCRelation.scala index f9300dc2cb529..21edf05ad58c4 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JDBCRelation.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JDBCRelation.scala @@ -58,10 +58,15 @@ private[sql] object JDBCRelation { var i: Int = 0 var currentValue: Long = partitioning.lowerBound var ans = new ArrayBuffer[Partition]() - while (i < numPartitions) { - val lowerBound = if (i != 0) s"$column >= $currentValue" else null + while (i < numPartitions && currentValue <= partitioning.upperBound) { + val lowerBound = s"$column >= $currentValue" currentValue += stride - val upperBound = if (i != numPartitions - 1) s"$column < $currentValue" else null + val upperBound = + if (i != numPartitions - 1 && currentValue <= partitioning.upperBound) { + s"$column < $currentValue" + } else { + s"$column <= ${partitioning.upperBound}" + } val whereClause = if (upperBound == null) { lowerBound