Skip to content

Commit 1102c71

Browse files
committed
address_review_comments
1 parent 0fc9f93 commit 1102c71

File tree

2 files changed

+19
-12
lines changed

2 files changed

+19
-12
lines changed

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

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ fn spark_read_side_padding_internal<T: OffsetSizeTrait>(
120120
string.parse().unwrap(),
121121
length.unwrap() as usize,
122122
truncate,
123-
)),
123+
)?),
124124
_ => builder.append_null(),
125125
}
126126
}
@@ -140,7 +140,7 @@ fn spark_read_side_padding_internal<T: OffsetSizeTrait>(
140140
string.parse().unwrap(),
141141
length,
142142
truncate,
143-
)),
143+
)?),
144144
_ => builder.append_null(),
145145
}
146146
}
@@ -149,7 +149,11 @@ fn spark_read_side_padding_internal<T: OffsetSizeTrait>(
149149
}
150150
}
151151

152-
fn add_padding_string(string: String, length: usize, truncate: bool) -> String {
152+
fn add_padding_string(
153+
string: String,
154+
length: usize,
155+
truncate: bool,
156+
) -> Result<String, DataFusionError> {
153157
// It looks Spark's UTF8String is closer to chars rather than graphemes
154158
// https://stackoverflow.com/a/46290728
155159
let space_string = " ".repeat(length);
@@ -161,11 +165,17 @@ fn add_padding_string(string: String, length: usize, truncate: bool) -> String {
161165
.nth(length)
162166
.map(|(i, _)| i)
163167
.unwrap_or(string.len());
164-
string[..idx].parse().unwrap()
168+
match string[..idx].parse() {
169+
Ok(string) => Ok(string),
170+
Err(err) => Err(DataFusionError::Internal(format!(
171+
"Failed adding padding string {} error {:}",
172+
string, err
173+
))),
174+
}
165175
} else {
166-
string
176+
Ok(string)
167177
}
168178
} else {
169-
string + &space_string[char_len..]
179+
Ok(string + &space_string[char_len..])
170180
}
171181
}

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -408,12 +408,9 @@ class CometExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelper {
408408
}
409409
}
410410
test("Verify rpad expr support for second arg instead of just literal") {
411-
withTable("t1") {
412-
val value = "IfIWasARoadIWouldBeBent"
413-
sql("create table t1(c1 varchar(100), c2 int) using parquet")
414-
sql(s"insert into t1 values('$value', 10)")
415-
sql(s"insert into t1 values((${null}, 10))")
416-
val res = sql("select rpad(c1,c2) , rpad(c1,5) from t1 order by c1")
411+
val data = Seq(("IfIWasARoadIWouldBeBent", 10), ("తెలుగు", 2))
412+
withParquetTable(data, "t1") {
413+
val res = sql("select rpad(_1,_2) , rpad(_1,2) from t1 order by _1")
417414
checkSparkAnswerAndOperator(res)
418415
}
419416
}

0 commit comments

Comments
 (0)