Skip to content

Commit 61d7db3

Browse files
committed
int_to_binary
1 parent c30a51e commit 61d7db3

2 files changed

Lines changed: 16 additions & 34 deletions

File tree

spark/src/main/scala/org/apache/comet/expressions/CometCast.scala

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -276,13 +276,8 @@ object CometCast extends CometExpressionSerde[Cast] with CometExprShim {
276276
Compatible()
277277
case DataTypes.FloatType | DataTypes.DoubleType | _: DecimalType =>
278278
Compatible()
279-
case DataTypes.BinaryType =>
280-
if (evalMode == CometEvalMode.LEGACY) {
281-
Compatible()
282-
} else {
283-
Unsupported(
284-
Some(s"Spark does not support byte to binary conversion in ${evalMode} eval mode"))
285-
}
279+
case DataTypes.BinaryType if (evalMode == CometEvalMode.LEGACY) =>
280+
Compatible()
286281
case _ =>
287282
unsupported(DataTypes.ByteType, toType)
288283
}
@@ -295,13 +290,8 @@ object CometCast extends CometExpressionSerde[Cast] with CometExprShim {
295290
Compatible()
296291
case DataTypes.FloatType | DataTypes.DoubleType | _: DecimalType =>
297292
Compatible()
298-
case DataTypes.BinaryType =>
299-
if (evalMode == CometEvalMode.LEGACY) {
300-
Compatible()
301-
} else {
302-
Unsupported(
303-
Some(s"Spark does not support short to binary conversion in ${evalMode} eval mode"))
304-
}
293+
case DataTypes.BinaryType if (evalMode == CometEvalMode.LEGACY) =>
294+
Compatible()
305295
case _ =>
306296
unsupported(DataTypes.ShortType, toType)
307297
}
@@ -316,13 +306,7 @@ object CometCast extends CometExpressionSerde[Cast] with CometExprShim {
316306
Compatible()
317307
case _: DecimalType =>
318308
Compatible()
319-
case DataTypes.BinaryType =>
320-
if (evalMode == CometEvalMode.LEGACY) {
321-
Compatible()
322-
} else {
323-
Unsupported(
324-
Some(s"Spark does not support int to binary conversion in ${evalMode} eval mode"))
325-
}
309+
case DataTypes.BinaryType if (evalMode == CometEvalMode.LEGACY) => Compatible()
326310
case _ =>
327311
unsupported(DataTypes.IntegerType, toType)
328312
}
@@ -337,13 +321,7 @@ object CometCast extends CometExpressionSerde[Cast] with CometExprShim {
337321
Compatible()
338322
case _: DecimalType =>
339323
Compatible()
340-
case DataTypes.BinaryType =>
341-
if (evalMode == CometEvalMode.LEGACY) {
342-
Compatible()
343-
} else {
344-
Unsupported(
345-
Some(s"Spark does not support long to binary conversion in ${evalMode} eval mode"))
346-
}
324+
case DataTypes.BinaryType if (evalMode == CometEvalMode.LEGACY) => Compatible()
347325
case _ =>
348326
unsupported(DataTypes.LongType, toType)
349327
}

spark/src/test/scala/org/apache/comet/CometCastSuite.scala

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,9 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
211211
castTest(
212212
generateBytes(),
213213
DataTypes.BinaryType,
214-
hasIncompatibleType = usingParquetExecWithIncompatTypes, testAnsi = false, testTry = false)
214+
hasIncompatibleType = usingParquetExecWithIncompatTypes,
215+
testAnsi = false,
216+
testTry = false)
215217
}
216218

217219
ignore("cast ByteType to TimestampType") {
@@ -286,7 +288,9 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
286288
castTest(
287289
generateShorts(),
288290
DataTypes.BinaryType,
289-
hasIncompatibleType = usingParquetExecWithIncompatTypes, testAnsi = false, testTry = false)
291+
hasIncompatibleType = usingParquetExecWithIncompatTypes,
292+
testAnsi = false,
293+
testTry = false)
290294
}
291295

292296
ignore("cast ShortType to TimestampType") {
@@ -396,7 +400,7 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
396400

397401
test("cast LongType to BinaryType") {
398402
// Spark does not support ANSI or Try mode
399-
castTest(generateLongs(), DataTypes.BinaryType , testAnsi = false, testTry = false)
403+
castTest(generateLongs(), DataTypes.BinaryType, testAnsi = false, testTry = false)
400404
}
401405

402406
ignore("cast LongType to TimestampType") {
@@ -1361,7 +1365,7 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
13611365
checkSparkAnswerAndOperator(df)
13621366
}
13631367

1364-
if (testTry){
1368+
if (testTry) {
13651369
// try_cast() should always return null for invalid inputs
13661370
val df2 =
13671371
data.select(col("a"), col("a").try_cast(toType)).orderBy(col("a"))
@@ -1427,9 +1431,9 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
14271431
}
14281432

14291433
// try_cast() should always return null for invalid inputs
1430-
if (testTry){
1434+
if (testTry) {
14311435
val df2 =
1432-
data.select(col("a"), col("a").cast(toType)).orderBy(col("a"))
1436+
data.select(col("a"), col("a").try_cast(toType)).orderBy(col("a"))
14331437
if (hasIncompatibleType) {
14341438
checkSparkAnswer(df2)
14351439
} else {

0 commit comments

Comments
 (0)