@@ -25,6 +25,7 @@ use datafusion::common::{cast::as_generic_string_array, DataFusionError, ScalarV
2525use datafusion:: physical_plan:: ColumnarValue ;
2626use 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
2930pub 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" ,
0 commit comments