SabrinaZhaozyf commented on code in PR #9114: URL: https://github.com/apache/pinot/pull/9114#discussion_r934981212
########## pinot-common/src/main/java/org/apache/pinot/common/function/scalar/StringFunctions.java: ########## @@ -560,4 +562,42 @@ public static String decodeUrl(String input) throws UnsupportedEncodingException { return URLDecoder.decode(input, StandardCharsets.UTF_8.toString()); } + + /** + * @param input binary data + * @return Base64 encoded String + */ + @ScalarFunction + public static String binaryToBase64(byte[] input) { + return Base64.getEncoder().encodeToString(input); + } + + /** + * @param input string to be encoded + * @return Base64 encoded String + */ + @ScalarFunction + public static String toBase64(String input) { + return toBase64(input, "UTF-8"); + } + + /** + * @param input String encoded with user specified encodeScheme + * @return Base64 encoded String + */ + @ScalarFunction + public static String toBase64(String input, String encodeScheme) { + byte[] inputBytes = input.getBytes(Charset.forName(encodeScheme)); + return Base64.getEncoder().encodeToString(inputBytes); + } + + /** + * @param input Base64 encoded String + * @return decoded string + */ + @ScalarFunction + public static String fromBase64(String input) { Review Comment: Resolved - `fromBase64` will decode into byte[] (the layer from byte[] to String is removed now) and the user can decide to encode the byte[] to UTF8 strings or other charsets by calling other functions such as `fromUtf8`. -- 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: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org