This is an automated email from the ASF dual-hosted git repository.
maxgekk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/master by this push:
new abc2dc03fc8 [SPARK-39052][SQL] Support Literal.create(Char, StringType)
abc2dc03fc8 is described below
commit abc2dc03fc8f910ab95054205cdea4e3cb25801f
Author: Hyukjin Kwon <[email protected]>
AuthorDate: Thu Apr 28 07:53:50 2022 +0300
[SPARK-39052][SQL] Support Literal.create(Char, StringType)
### What changes were proposed in this pull request?
This is sort of a followup of
https://github.com/apache/spark/commit/54fcaafb094e299f21c18370fddb4a727c88d875.
`Literal.create` should also support `Char` too.
### Why are the changes needed?
To make the support of external type `Char` same as `Literla.apply`.
### Does this PR introduce _any_ user-facing change?
No, this isn't exposed to users. `Literal.create(Char, StringType)` isn't
also used in the current codebase internally. This PR is just for completeness.
### How was this patch tested?
Unittests were added.
Closes #36389 from HyukjinKwon/SPARK-39052.
Authored-by: Hyukjin Kwon <[email protected]>
Signed-off-by: Max Gekk <[email protected]>
---
.../scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala | 1 +
.../org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala | 1 +
.../spark/sql/catalyst/expressions/LiteralExpressionSuite.scala | 4 ++++
3 files changed, 6 insertions(+)
diff --git
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala
index 3e6d31e79b7..263d3734217 100644
---
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala
+++
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala
@@ -499,6 +499,7 @@ object CatalystTypeConverters {
*/
def convertToCatalyst(a: Any): Any = a match {
case s: String => StringConverter.toCatalyst(s)
+ case c: Char => StringConverter.toCatalyst(c.toString)
case d: Date => DateConverter.toCatalyst(d)
case ld: LocalDate => LocalDateConverter.toCatalyst(ld)
case t: Timestamp => TimestampConverter.toCatalyst(t)
diff --git
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala
index b559e219882..bf194a2288b 100644
---
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala
+++
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala
@@ -152,6 +152,7 @@ class CatalystTypeConvertersSuite extends SparkFunSuite
with SQLHelper {
val converter =
CatalystTypeConverters.createToCatalystConverter(StringType)
val expected = UTF8String.fromString("X")
assert(converter(chr) === expected)
+ assert(CatalystTypeConverters.convertToCatalyst('a') ===
UTF8String.fromString("a"))
}
test("SPARK-33390: Make Literal support char array") {
diff --git
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/LiteralExpressionSuite.scala
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/LiteralExpressionSuite.scala
index 6ce51f1eec8..80e7a3206aa 100644
---
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/LiteralExpressionSuite.scala
+++
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/LiteralExpressionSuite.scala
@@ -247,6 +247,10 @@ class LiteralExpressionSuite extends SparkFunSuite with
ExpressionEvalHelper {
// scalastyle:on
}
+ test("SPARK-39052: Support Char in Literal.create") {
+ checkEvaluation(Literal.create('a', StringType), "a")
+ }
+
test("construct literals from java.time.LocalDate") {
Seq(
LocalDate.of(1, 1, 1),
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]