GoogleSQL for Spanner supports the following hash functions.
Function list
| Name | Summary |
|---|---|
FARM_FINGERPRINT | Computes the fingerprint of a STRING or BYTES value, using the FarmHash Fingerprint64 algorithm. |
SHA1 | Computes the hash of a STRING or BYTES value, using the SHA-1 algorithm. |
SHA256 | Computes the hash of a STRING or BYTES value, using the SHA-256 algorithm. |
SHA512 | Computes the hash of a STRING or BYTES value, using the SHA-512 algorithm. |
FARM_FINGERPRINT
FARM_FINGERPRINT(value) Description
Computes the fingerprint of the STRING or BYTES input using the Fingerprint64 function from the open-source FarmHash library. The output of this function for a particular input will never change.
Return type
INT64
Examples
WITH example AS ( SELECT 1 AS x, "foo" AS y, true AS z UNION ALL SELECT 2 AS x, "apple" AS y, false AS z UNION ALL SELECT 3 AS x, "" AS y, true AS z ) SELECT *, FARM_FINGERPRINT(CONCAT(CAST(x AS STRING), y, CAST(z AS STRING))) AS row_fingerprint FROM example; /*---+-------+-------+----------------------+ | x | y | z | row_fingerprint | +---+-------+-------+----------------------+ | 1 | foo | true | -1541654101129638711 | | 2 | apple | false | 2794438866806483259 | | 3 | | true | -4880158226897771312 | +---+-------+-------+----------------------*/ SHA1
SHA1(input) Description
Computes the hash of the input using the SHA-1 algorithm. The input can either be STRING or BYTES. The string version treats the input as an array of bytes.
This function returns 20 bytes.
Return type
BYTES
Example
SELECT SHA1("Hello World") as sha1; -- Note that the result of SHA1 is of type BYTES, displayed as a base64-encoded string. /*------------------------------+ | sha1 | +------------------------------+ | Ck1VqNd45QIvq3AZd8XYQLvEhtA= | +------------------------------*/ SHA256
SHA256(input) Description
Computes the hash of the input using the SHA-256 algorithm. The input can either be STRING or BYTES. The string version treats the input as an array of bytes.
This function returns 32 bytes.
Return type
BYTES
Example
SELECT SHA256("Hello World") as sha256; SHA512
SHA512(input) Description
Computes the hash of the input using the SHA-512 algorithm. The input can either be STRING or BYTES. The string version treats the input as an array of bytes.
This function returns 64 bytes.
Return type
BYTES
Example
SELECT SHA512("Hello World") as sha512;