[Fix](function) fix pad functions behaviour of empty pad string (#34796)
fix pad functions behaviour of empty pad string
This commit is contained in:
@ -1710,9 +1710,9 @@ public:
|
||||
res_chars, res_offsets);
|
||||
continue;
|
||||
}
|
||||
|
||||
// make compatible with mysql. return empty string if pad is empty
|
||||
if (pad_char_size == 0) {
|
||||
// return NULL when the string to be paded is missing
|
||||
null_map_data[i] = true;
|
||||
StringOP::push_empty_string(i, res_chars, res_offsets);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -7,3 +7,33 @@
|
||||
\N
|
||||
10:00
|
||||
|
||||
-- !rpad1 --
|
||||
|
||||
|
||||
-- !rpad2 --
|
||||
|
||||
|
||||
-- !rpad3 --
|
||||
\N
|
||||
|
||||
-- !rpad4 --
|
||||
\N
|
||||
|
||||
-- !rpad5 --
|
||||
\N
|
||||
|
||||
-- !lpad1 --
|
||||
|
||||
|
||||
-- !lpad2 --
|
||||
|
||||
|
||||
-- !lpad3 --
|
||||
\N
|
||||
|
||||
-- !lpad4 --
|
||||
\N
|
||||
|
||||
-- !lpad5 --
|
||||
\N
|
||||
|
||||
|
||||
@ -43,4 +43,15 @@ suite("test_string_pad_function") {
|
||||
qt_select_rpad """
|
||||
select CASE WHEN table_pad.a = 1 THEN CONCAT(RPAD(b, 2, 0), ':00') END result from table_pad order by result;
|
||||
"""
|
||||
|
||||
qt_rpad1 """ SELECT rpad("", 5, ""); """
|
||||
qt_rpad2 """ SELECT rpad("123", 5, ""); """
|
||||
qt_rpad3 """ SELECT rpad("123", -1, ""); """
|
||||
qt_rpad4 """ SELECT rpad(NULL, 1, ""); """
|
||||
qt_rpad5 """ SELECT rpad("123", 0, NULL); """
|
||||
qt_lpad1 """ SELECT lpad("", 5, ""); """
|
||||
qt_lpad2 """ SELECT lpad("123", 5, ""); """
|
||||
qt_lpad3 """ SELECT lpad("123", -1, ""); """
|
||||
qt_lpad4 """ SELECT lpad(NULL, 0, ""); """
|
||||
qt_lpad5 """ SELECT lpad("123", 2, NULL); """
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user