Skip to content

Commit dccd14a

Browse files
committed
rebase
1 parent 241680f commit dccd14a

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

native/spark-expr/src/static_invoke/char_varchar_utils/read_side_padding.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use datafusion::common::{cast::as_generic_string_array, DataFusionError, ScalarV
2525
use datafusion::physical_plan::ColumnarValue;
2626
use std::sync::Arc;
2727

28+
const SPACE: &str = " ";
2829
/// Similar to DataFusion `rpad`, but not to truncate when the string is already longer than length
2930
pub fn spark_read_side_padding(args: &[ColumnarValue]) -> Result<ColumnarValue, DataFusionError> {
3031
spark_read_side_padding2(args, false)
@@ -46,13 +47,13 @@ fn spark_read_side_padding2(
4647
array,
4748
truncate,
4849
ColumnarValue::Scalar(ScalarValue::Int32(Some(*length))),
49-
" ",
50+
SPACE,
5051
),
5152
DataType::LargeUtf8 => spark_read_side_padding_internal::<i64>(
5253
array,
5354
truncate,
5455
ColumnarValue::Scalar(ScalarValue::Int32(Some(*length))),
55-
" ",
56+
SPACE,
5657
),
5758
// Dictionary support required for SPARK-48498
5859
DataType::Dictionary(_, value_type) => {
@@ -62,14 +63,14 @@ fn spark_read_side_padding2(
6263
dict.values(),
6364
truncate,
6465
ColumnarValue::Scalar(ScalarValue::Int32(Some(*length))),
65-
" ",
66+
SPACE,
6667
)?
6768
} else {
6869
spark_read_side_padding_internal::<i64>(
6970
dict.values(),
7071
truncate,
7172
ColumnarValue::Scalar(ScalarValue::Int32(Some(*length))),
72-
" ",
73+
SPACE,
7374
)?
7475
};
7576
// col consists of an array, so arg of to_array() is not used. Can be anything
@@ -105,14 +106,14 @@ fn spark_read_side_padding2(
105106
dict.values(),
106107
truncate,
107108
ColumnarValue::Scalar(ScalarValue::Int32(Some(*length))),
108-
" ",
109+
SPACE,
109110
)?
110111
} else {
111112
spark_read_side_padding_internal::<i64>(
112113
dict.values(),
113114
truncate,
114115
ColumnarValue::Scalar(ScalarValue::Int32(Some(*length))),
115-
" ",
116+
SPACE,
116117
)?
117118
};
118119
// col consists of an array, so arg of to_array() is not used. Can be anything
@@ -130,13 +131,13 @@ fn spark_read_side_padding2(
130131
array,
131132
truncate,
132133
ColumnarValue::Array(Arc::<dyn Array>::clone(array_int)),
133-
" ",
134+
SPACE,
134135
),
135136
DataType::LargeUtf8 => spark_read_side_padding_internal::<i64>(
136137
array,
137138
truncate,
138139
ColumnarValue::Array(Arc::<dyn Array>::clone(array_int)),
139-
" ",
140+
SPACE,
140141
),
141142
other => Err(DataFusionError::Internal(format!(
142143
"Unsupported data type {other:?} for function rpad/read_side_padding",

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ class CometExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelper {
408408
}
409409
}
410410
test("Verify rpad expr support for second arg instead of just literal") {
411-
val data = Seq(("IfIWasARoadIWouldBeBent", 50), ("తెలుగు", 2))
411+
val data = Seq(("IfIWasARoadIWouldBeBent", 10), ("తెలుగు", 2))
412412
withParquetTable(data, "t1") {
413413
val res = sql("select rpad(_1,_2) , rpad(_1,2) from t1 order by _1")
414414
checkSparkAnswerAndOperator(res)
@@ -419,8 +419,8 @@ class CometExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelper {
419419
val data = Seq(("IfIWasARoadIWouldBeBent", 10), ("hi", 2))
420420
withParquetTable(data, "t1") {
421421
val res = sql(
422-
"select rpad(_1,_2,'?'), rpad(_1,_2,'??') , rpad(_1,2, '??'), hex(rpad(unhex('aabb'), 5)), rpad(_1, 5, '??') " +
423-
"from t1 order by _1")
422+
""" select rpad(_1,_2,'?'), rpad(_1,_2,'??') , rpad(_1,2, '??'), hex(rpad(unhex('aabb'), 5)), |
423+
rpad(_1, 5, '??') from t1 order by _1) """.stripMargin)
424424
checkSparkAnswerAndOperator(res)
425425
}
426426
}

0 commit comments

Comments
 (0)