Class BinaryStringDataUtil

java.lang.Object
org.apache.flink.table.data.binary.BinaryStringDataUtil

public class BinaryStringDataUtil extends Object
Util for BinaryStringData.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final org.apache.flink.table.data.binary.BinaryStringData[]
     
    static final org.apache.flink.table.data.binary.BinaryStringData
     
    static final org.apache.flink.table.data.binary.BinaryStringData
     
    static final org.apache.flink.table.data.binary.BinaryStringData
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static org.apache.flink.table.data.binary.BinaryStringData
    concat(Iterable<org.apache.flink.table.data.binary.BinaryStringData> inputs)
     
    static org.apache.flink.table.data.binary.BinaryStringData
    concat(org.apache.flink.table.data.binary.BinaryStringData... inputs)
    Concatenates input strings together into a single string.
    static org.apache.flink.table.data.binary.BinaryStringData
    concatWs(org.apache.flink.table.data.binary.BinaryStringData separator, Iterable<org.apache.flink.table.data.binary.BinaryStringData> inputs)
     
    static org.apache.flink.table.data.binary.BinaryStringData
    concatWs(org.apache.flink.table.data.binary.BinaryStringData separator, org.apache.flink.table.data.binary.BinaryStringData... inputs)
    Concatenates input strings together into a single string using the separator.
    static org.apache.flink.table.data.binary.BinaryStringData
    hash(byte[] bytes, MessageDigest md)
    Calculate the hash value of the given bytes use MessageDigest.
    static org.apache.flink.table.data.binary.BinaryStringData
    hash(org.apache.flink.table.data.binary.BinaryStringData str, String algorithm)
     
    static org.apache.flink.table.data.binary.BinaryStringData
    hash(org.apache.flink.table.data.binary.BinaryStringData str, MessageDigest md)
    Calculate the hash value of a given string use MessageDigest.
    static boolean
    isEmpty(org.apache.flink.table.data.binary.BinaryStringData str)
     
    static boolean
    isSpaceString(org.apache.flink.table.data.binary.BinaryStringData str)
     
    static org.apache.flink.table.data.binary.BinaryStringData
    keyValue(org.apache.flink.table.data.binary.BinaryStringData str, byte split1, byte split2, org.apache.flink.table.data.binary.BinaryStringData keyName)
    Parse target string as key-value string and return the value matches key name.
    static org.apache.flink.table.data.binary.BinaryStringData
    reverse(org.apache.flink.table.data.binary.BinaryStringData str)
    Reverse each character in current string.
    static String
    safeToString(org.apache.flink.table.data.binary.BinaryStringData str)
     
    static org.apache.flink.table.data.binary.BinaryStringData[]
    splitByWholeSeparatorPreserveAllTokens(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData separator)
    Splits the provided text into an array, separator string specified.
    static org.apache.flink.table.data.binary.BinaryStringData
    substringSQL(org.apache.flink.table.data.binary.BinaryStringData str, int pos)
     
    static org.apache.flink.table.data.binary.BinaryStringData
    substringSQL(org.apache.flink.table.data.binary.BinaryStringData str, int pos, int length)
     
    static boolean
    toBoolean(org.apache.flink.table.data.binary.BinaryStringData str)
    Parse a StringData to boolean.
    static byte
    toByte(org.apache.flink.table.data.binary.BinaryStringData str)
     
    static int
    toDate(org.apache.flink.table.data.binary.BinaryStringData input)
     
    static org.apache.flink.table.data.DecimalData
    toDecimal(org.apache.flink.table.data.binary.BinaryStringData str, int precision, int scale)
    Parses a BinaryStringData to DecimalData.
    static double
    toDouble(org.apache.flink.table.data.binary.BinaryStringData str)
     
    static float
    toFloat(org.apache.flink.table.data.binary.BinaryStringData str)
     
    static int
    toInt(org.apache.flink.table.data.binary.BinaryStringData str)
    Parses this BinaryStringData to Int.
    static long
    toLong(org.apache.flink.table.data.binary.BinaryStringData str)
    Parses this BinaryStringData to Long.
    static short
    toShort(org.apache.flink.table.data.binary.BinaryStringData str)
     
    static int
    toTime(org.apache.flink.table.data.binary.BinaryStringData input)
     
    static org.apache.flink.table.data.TimestampData
    toTimestamp(org.apache.flink.table.data.binary.BinaryStringData input, int precision)
    Used by CAST(x as TIMESTAMP).
    static org.apache.flink.table.data.TimestampData
    toTimestamp(org.apache.flink.table.data.binary.BinaryStringData input, int precision, TimeZone timeZone)
    Used by CAST(x as TIMESTAMP_LTZ).
    static org.apache.flink.table.data.binary.BinaryStringData
    trim(org.apache.flink.table.data.binary.BinaryStringData str, boolean leading, boolean trailing, org.apache.flink.table.data.binary.BinaryStringData seek)
     
    static org.apache.flink.table.data.binary.BinaryStringData
    trim(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)
    Walk each character of current string from both ends, remove the character if it is in trim string.
    static org.apache.flink.table.data.binary.BinaryStringData
    trimLeft(org.apache.flink.table.data.binary.BinaryStringData str)
     
    static org.apache.flink.table.data.binary.BinaryStringData
    trimLeft(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)
    Walk each character of current string from left end, remove the character if it is in trim string.
    static org.apache.flink.table.data.binary.BinaryStringData
    trimRight(org.apache.flink.table.data.binary.BinaryStringData str)
     
    static org.apache.flink.table.data.binary.BinaryStringData
    trimRight(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)
    Walk each character of current string from right end, remove the character if it is in trim string.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • NULL_STRING

      public static final org.apache.flink.table.data.binary.BinaryStringData NULL_STRING
    • TRUE_STRING

      public static final org.apache.flink.table.data.binary.BinaryStringData TRUE_STRING
    • FALSE_STRING

      public static final org.apache.flink.table.data.binary.BinaryStringData FALSE_STRING
    • EMPTY_STRING_ARRAY

      public static final org.apache.flink.table.data.binary.BinaryStringData[] EMPTY_STRING_ARRAY
  • Constructor Details

    • BinaryStringDataUtil

      public BinaryStringDataUtil()
  • Method Details

    • splitByWholeSeparatorPreserveAllTokens

      public static org.apache.flink.table.data.binary.BinaryStringData[] splitByWholeSeparatorPreserveAllTokens(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData separator)
      Splits the provided text into an array, separator string specified.

      The separator is not included in the returned String array. Adjacent separators are treated as separators for empty tokens.

      A null separator splits on whitespace.

       "".splitByWholeSeparatorPreserveAllTokens(*)                 = []
       "ab de fg".splitByWholeSeparatorPreserveAllTokens(null)      = ["ab", "de", "fg"]
       "ab   de fg".splitByWholeSeparatorPreserveAllTokens(null)    = ["ab", "", "", "de", "fg"]
       "ab:cd:ef".splitByWholeSeparatorPreserveAllTokens(":")       = ["ab", "cd", "ef"]
       "ab-!-cd-!-ef".splitByWholeSeparatorPreserveAllTokens("-!-") = ["ab", "cd", "ef"]
       

      Note: returned binary strings reuse memory segments from the input str.

      Parameters:
      separator - String containing the String to be used as a delimiter, null splits on whitespace
      Returns:
      an array of parsed Strings, null if null String was input
    • toBoolean

      public static boolean toBoolean(org.apache.flink.table.data.binary.BinaryStringData str) throws org.apache.flink.table.api.TableException
      Parse a StringData to boolean.
      Throws:
      org.apache.flink.table.api.TableException
    • hash

      public static org.apache.flink.table.data.binary.BinaryStringData hash(byte[] bytes, MessageDigest md)
      Calculate the hash value of the given bytes use MessageDigest.
    • hash

      public static org.apache.flink.table.data.binary.BinaryStringData hash(org.apache.flink.table.data.binary.BinaryStringData str, MessageDigest md)
      Calculate the hash value of a given string use MessageDigest.
    • hash

      public static org.apache.flink.table.data.binary.BinaryStringData hash(org.apache.flink.table.data.binary.BinaryStringData str, String algorithm) throws NoSuchAlgorithmException
      Throws:
      NoSuchAlgorithmException
    • toDecimal

      public static org.apache.flink.table.data.DecimalData toDecimal(org.apache.flink.table.data.binary.BinaryStringData str, int precision, int scale) throws NumberFormatException
      Parses a BinaryStringData to DecimalData.
      Returns:
      DecimalData value if the parsing was successful.
      Throws:
      NumberFormatException
    • toLong

      public static long toLong(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatException
      Parses this BinaryStringData to Long.

      Note that, in this method we accumulate the result in negative format, and convert it to positive format at the end, if this string is not started with '-'. This is because min value is bigger than max value in digits, e.g. Long.MAX_VALUE is '9223372036854775807' and Long.MIN_VALUE is '-9223372036854775808'.

      This code is mostly copied from LazyLong.parseLong in Hive.

      Throws:
      NumberFormatException
    • toInt

      public static int toInt(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatException
      Parses this BinaryStringData to Int.

      Note that, in this method we accumulate the result in negative format, and convert it to positive format at the end, if this string is not started with '-'. This is because min value is bigger than max value in digits, e.g. Integer.MAX_VALUE is '2147483647' and Integer.MIN_VALUE is '-2147483648'.

      This code is mostly copied from LazyInt.parseInt in Hive.

      Note that, this method is almost same as `toLong`, but we leave it duplicated for performance reasons, like Hive does.

      Throws:
      NumberFormatException
    • toShort

      public static short toShort(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatException
      Throws:
      NumberFormatException
    • toByte

      public static byte toByte(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatException
      Throws:
      NumberFormatException
    • toDouble

      public static double toDouble(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatException
      Throws:
      NumberFormatException
    • toFloat

      public static float toFloat(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatException
      Throws:
      NumberFormatException
    • toDate

      public static int toDate(org.apache.flink.table.data.binary.BinaryStringData input) throws DateTimeException
      Throws:
      DateTimeException
    • toTime

      public static int toTime(org.apache.flink.table.data.binary.BinaryStringData input) throws DateTimeException
      Throws:
      DateTimeException
    • toTimestamp

      public static org.apache.flink.table.data.TimestampData toTimestamp(org.apache.flink.table.data.binary.BinaryStringData input, int precision) throws DateTimeException
      Used by CAST(x as TIMESTAMP).
      Throws:
      DateTimeException
    • toTimestamp

      public static org.apache.flink.table.data.TimestampData toTimestamp(org.apache.flink.table.data.binary.BinaryStringData input, int precision, TimeZone timeZone) throws DateTimeException
      Used by CAST(x as TIMESTAMP_LTZ).
      Throws:
      DateTimeException
    • keyValue

      public static org.apache.flink.table.data.binary.BinaryStringData keyValue(org.apache.flink.table.data.binary.BinaryStringData str, byte split1, byte split2, org.apache.flink.table.data.binary.BinaryStringData keyName)
      Parse target string as key-value string and return the value matches key name. If accept any null arguments, return null. example: keyvalue('k1=v1;k2=v2', ';', '=', 'k2') = 'v2' keyvalue('k1:v1,k2:v2', ',', ':', 'k3') = NULL
      Parameters:
      split1 - separator between key-value tuple.
      split2 - separator between key and value.
      keyName - name of the key whose value you want return.
      Returns:
      target value.
    • substringSQL

      public static org.apache.flink.table.data.binary.BinaryStringData substringSQL(org.apache.flink.table.data.binary.BinaryStringData str, int pos)
    • substringSQL

      public static org.apache.flink.table.data.binary.BinaryStringData substringSQL(org.apache.flink.table.data.binary.BinaryStringData str, int pos, int length)
    • concat

      public static org.apache.flink.table.data.binary.BinaryStringData concat(org.apache.flink.table.data.binary.BinaryStringData... inputs)
      Concatenates input strings together into a single string. Returns NULL if any argument is NULL.
    • concat

      public static org.apache.flink.table.data.binary.BinaryStringData concat(Iterable<org.apache.flink.table.data.binary.BinaryStringData> inputs)
    • concatWs

      public static org.apache.flink.table.data.binary.BinaryStringData concatWs(org.apache.flink.table.data.binary.BinaryStringData separator, org.apache.flink.table.data.binary.BinaryStringData... inputs)
      Concatenates input strings together into a single string using the separator. Returns NULL If the separator is NULL.

      Note: CONCAT_WS() does not skip any empty strings, however it does skip any NULL values after the separator. For example, concat_ws(",", "a", null, "c") would yield "a,c".

    • concatWs

      public static org.apache.flink.table.data.binary.BinaryStringData concatWs(org.apache.flink.table.data.binary.BinaryStringData separator, Iterable<org.apache.flink.table.data.binary.BinaryStringData> inputs)
    • reverse

      public static org.apache.flink.table.data.binary.BinaryStringData reverse(org.apache.flink.table.data.binary.BinaryStringData str)
      Reverse each character in current string.
      Returns:
      a new string which character order is reverse to current string.
    • trim

      public static org.apache.flink.table.data.binary.BinaryStringData trim(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)
      Walk each character of current string from both ends, remove the character if it is in trim string. Return the new substring which both ends trim characters have been removed.
      Parameters:
      trimStr - the trim string
      Returns:
      A subString which both ends trim characters have been removed.
    • trimLeft

      public static org.apache.flink.table.data.binary.BinaryStringData trimLeft(org.apache.flink.table.data.binary.BinaryStringData str)
    • isEmpty

      public static boolean isEmpty(org.apache.flink.table.data.binary.BinaryStringData str)
    • isSpaceString

      public static boolean isSpaceString(org.apache.flink.table.data.binary.BinaryStringData str)
    • trimLeft

      public static org.apache.flink.table.data.binary.BinaryStringData trimLeft(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)
      Walk each character of current string from left end, remove the character if it is in trim string. Stops at the first character which is not in trim string. Return the new substring.
      Parameters:
      trimStr - the trim string
      Returns:
      A subString which removes all of the character from the left side that is in trim string.
    • trimRight

      public static org.apache.flink.table.data.binary.BinaryStringData trimRight(org.apache.flink.table.data.binary.BinaryStringData str)
    • trimRight

      public static org.apache.flink.table.data.binary.BinaryStringData trimRight(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)
      Walk each character of current string from right end, remove the character if it is in trim string. Stops at the first character which is not in trim string. Return the new substring.
      Parameters:
      trimStr - the trim string
      Returns:
      A subString which removes all of the character from the right side that is in trim string.
    • trim

      public static org.apache.flink.table.data.binary.BinaryStringData trim(org.apache.flink.table.data.binary.BinaryStringData str, boolean leading, boolean trailing, org.apache.flink.table.data.binary.BinaryStringData seek)
    • safeToString

      public static String safeToString(org.apache.flink.table.data.binary.BinaryStringData str)