Rockset

    Hash Functions

    This page covers the various hash functions supported by Rockset.

    Note that the functions in this page take bytes arguments and return bytes values. You may pass in a string as argument (it will be encoded as UTF-8), and you may convert the returned bytes to string using, for instance, TO_HEX().

    Hash Functions

    HASH

    HASH(x, digest)

    Computes the hash of the bytes value x using digest, where digest is one of the OpenSSL digest methods md5, sha1, sha256, or sha512 (case insensitive).

    SELECT
        HASH('foo', 'md5')
    'rL0Y20zC+Fzt72VPzMSk2A=='
    SELECT
        HASH('foo', 'sha1')
    'C+7Hteo/D9vJXQ3UfzxbwnXaijM='
    SELECT
        HASH('foo', 'sha256')
    'LCa0a2j/xo/5m0U8HTBBNBNCLXBkg7+g+YpeiGJm564='
    SELECT
        HASH('foo', 'sha512')
    '9/u6bgY2+JDlb7vzKD5STG+jIErimDgtYkdB0NxmODJuKCxBvl5CVNiCB3LFUYosWowMf37aGVlKfrU5RT4e1w=='

    HASH_COMBINE

    HASH_COMBINE(x, ...)

    Computes a unique hash over all input arguments. Order matters for the input arguments, and all types are supported, though any null argument results in a null return value.

    SELECT
        HASH_COMBINE(1, 'foo', true)
    'Ha+UEYFyOiFt0wYOEWR9PA=='
    SELECT
        HASH_COMBINE('foo', null)
    null

    ID_HASH

    ID_HASH(x, ...)

    Equivalent of TO_BASE64(HASH_COMBINE(args...)). Useful when constructing a custom value for _id in an ingest transformation, e.g. SELECT ID_HASH(field1, field2) AS _id.

    SELECT
        ID_HASH('foo', 35)
    'NSzQujFA9oP0ABXeC5q9Xg=='

    MD5

    MD5(x)

    Computes the MD5 hash of the bytes value x.

    SELECT
        MD5('foo')
    'rL0Y20zC+Fzt72VPzMSk2A=='
    SELECT
        MD5('')
    '1B2M2Y8AsgTpgAmY7PhCfg=='
    SELECT
        MD5(null)
    null

    SHA1

    SHA1(x)

    Computes the SHA1 hash of the bytes value x.

    SELECT
        SHA1('foo')
    'C+7Hteo/D9vJXQ3UfzxbwnXaijM='
    SELECT
        SHA1('')
    '2jmj7l5rSw0yVb/vlWAYkK/YBwk='
    SELECT
        SHA1(null)
    null

    SHA256

    SHA256(x)

    Computes the SHA256 hash of the bytes value x.

    SELECT
        SHA256('foo')
    'LCa0a2j/xo/5m0U8HTBBNBNCLXBkg7+g+YpeiGJm564='
    SELECT
        SHA256('')
    '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='
    SELECT
        SHA256(null)
    null

    SHA512

    SHA512(x)

    Computes the SHA512 hash of the bytes value x.

    SELECT
        SHA512('foo')
    '9/u6bgY2+JDlb7vzKD5STG+jIErimDgtYkdB0NxmODJuKCxBvl5CVNiCB3LFUYosWowMf37aGVlKfrU5RT4e1w=='
    SELECT
        SHA512('')
    'z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg=='
    SELECT
        SHA512(null)
    null

    XXH3_64

    XXH3_64(x[, seed])

    Computes the 64 bit XXH3 hash of x using seed as the seed. seed is optional, default value is 0.

    SELECT
        XXH3_64('foo', 1122)
    2259966778267089194
    SELECT
        XXH3_64('', 1122)
    4199586300600163007
    SELECT
        XXH3_64(null, 1122)
    null

    HMAC Functions

    HMAC_MD5

    HMAC_MD5(x, key)

    Computes the MD5 HMAC of the bytes value x using key as the key.

    SELECT
        HMAC_MD5('foo', 'bar')
    'Mbbbnl60rdtC8abKBzZ63A=='
    SELECT
        HMAC_MD5('foo', null)
    null

    HMAC_SHA1

    HMAC_SHA1(x, key)

    Computes the SHA1 HMAC of the bytes value x using key as the key.

    SELECT
        HMAC_SHA1('foo', 'bar')
    'hdFVxV7ShqMAvRzxJN4I2H6RTzo='
    SELECT
        HMAC_SHA1('foo', null)
    null

    HMAC_SHA256

    HMAC_SHA256(x, key)

    Computes the SHA256 HMAC of the bytes value x using key as the key.

    SELECT
        HMAC_SHA256('foo', 'bar')
    'FHkzIYqqvAuLEKKzpcNGhMjZQ0G88QpHNtxycPd0GFE='
    SELECT
        HMAC_SHA256('foo', null)
    null

    HMAC_SHA512

    HMAC_SHA512(x, key)

    Computes the SHA512 HMAC of the bytes value x using key as the key.

    SELECT
        HMAC_SHA512('foo', 'bar')
    'JCV9chBYKmXHMexVFZyBhMwkwCSJRT5YWH9x9EwjotYbS3IVSonRey1JRIqEUuoGb0/FaivOrUXAiFcv/M2z2A=='
    SELECT
        HMAC_SHA512('foo', null)
    null

    HMAC

    HMAC(x, key, digest)

    Computes the HMAC of the bytes value x using key as the key and digest as the digest method, where digest is is one of the OpenSSL digest methods md5, sha1, sha256, or sha512 (case insensitive).

    SELECT
        HMAC('foo', 'bar', 'md5')
    'Mbbbnl60rdtC8abKBzZ63A=='
    SELECT
        HMAC('foo', 'bar', 'sha256')
    'FHkzIYqqvAuLEKKzpcNGhMjZQ0G88QpHNtxycPd0GFE='