snuyanzin commented on code in PR #29004:
URL: https://github.com/apache/flink/pull/29004#discussion_r3836540859
##########
flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/functions/SqlFunctionUtils.java:
##########
@@ -310,28 +310,18 @@ public static String lpad(String base, int len, String
pad) {
return "";
}
- char[] data = new char[len];
- char[] baseChars = base.toCharArray();
- char[] padChars = pad.toCharArray();
+ // Lengths are counted in characters (code points) rather than UTF-16
code units, so that a
+ // supplementary-plane character is never truncated into an unpaired
surrogate.
+ final int keepEnd = endOfFirstCodePoints(base, len);
+ final int baseLen = base.codePointCount(0, keepEnd);
- // the length of the padding needed
- int pos = Math.max(len - base.length(), 0);
+ final StringBuilder sb = new StringBuilder(len);
Review Comment:
why do we need `StringBuilder` which is a way less performant?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]