Skip to content

Commit 4d00ed0

Browse files
committed
Move pattern matching code out of repeatedly called function.
1 parent f27288e commit 4d00ed0

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetFilters.scala

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,18 @@ private[sql] object ParquetFilters {
5757
v: java.lang.String,
5858
mode: StringFilter.Mode) extends UserDefinedPredicate[Binary] with Serializable {
5959

60+
private val compare = mode match {
61+
case StringFilter.STARTS_WITH =>
62+
(x: java.lang.String) => x.startsWith(v)
63+
case StringFilter.ENDS_WITH =>
64+
(x: java.lang.String) => x.endsWith(v)
65+
case StringFilter.CONTAINS =>
66+
(x: java.lang.String) => x.contains(v)
67+
}
68+
6069
override def keep(value: Binary): Boolean = {
6170
val str = value.toStringUsingUTF8()
62-
mode match {
63-
case StringFilter.STARTS_WITH =>
64-
str.startsWith(v)
65-
case StringFilter.ENDS_WITH =>
66-
str.endsWith(v)
67-
case StringFilter.CONTAINS =>
68-
str.contains(v)
69-
}
71+
compare(str)
7072
}
7173

7274
override def canDrop(statistics: Statistics[Binary]): Boolean = false

0 commit comments

Comments
 (0)