Binary Functions
crc32(binary) -> bigint
计算“二进制”的 crc32 校验和。
from_base64(string) -> varbinary
将 Base64 编码的字符串解码回其原始二进制形式。
此函数能够处理完全填充和未填充的 Base64 编码字符串。
部分填充的 Base64 字符串不受支持,并将返回“UserError”状态。
Examples
--------
Query with padded Base64 string:
SELECT from_base64('SGVsbG8gV29ybGQ='); -- [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
Query with non-padded Base64 string:
SELECT from_base64('SGVsbG8gV29ybGQ'); -- [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
Query with partial-padded Base64 string:
SELECT from_base64('SGVsbG8gV29ybGQgZm9yIHZlbG94IQ=');
-- UserError: Base64::decode() - invalid input string: string length is not a multiple of 4.
在上面的示例中,完全填充和未填充的 Base64 字符串(“SGVsbG8gV29ybGQ=”和“SGVsbG8gV29ybGQ”)均解码为文本
“Hello World”的二进制表示。部分填充的 Base64 字符串“SGVsbG8gV29ybGQgZm9yIHZlbG94IQ=”将导致“UserError”
状态,表示 Base64 字符串无效。
from_base64url(string) -> varbinary
使用URL 安全字母表:https://www.rfc-editor.org/rfc/rfc4648#section-5将 base64 编码表示中的“string”数据解码为 varbinary。
from_big_endian_32(varbinary) -> integer
从 32 位 2 的补码大端“二进制”解码“整数”值。
from_big_endian_64(varbinary) -> bigint
从 64 位 2 的补码大端“二进制”解码“bigint”值。
from_hex(string) -> varbinary
从十六进制编码的“字符串”解码二进制数据。
from_ieee754_32(binary) -> real
以 IEEE 754 单精度浮点格式解码 32 位大端“二进制”。
如果输入长度短于/长于 32 位,则会引发用户错误。
from_ieee754_64(binary) -> double
以 IEEE 754 双精度浮点格式解码 64 位大端“二进制”。
如果输入长度短于/长于 64 位,则会引发用户错误。
hmac_md5(binary, key) -> varbinary
使用给定的“key”计算“binary”的 md5 HMAC。
hmac_sha1(binary, key) -> varbinary
使用给定的“密钥”计算“二进制”的 sha1 的 HMAC。
hmac_sha256(binary, key) -> varbinary
使用给定的“密钥”计算“二进制”的 sha256 HMAC。
hmac_sha512(binary, key) -> varbinary
使用给定的“密钥”计算“二进制”的 sha512 HMAC。
length(binary) -> bigint
以字节为单位返回“二进制”的长度。
lpad(binary, size, padbinary) -> varbinary
:noindex:
使用 ``padbinary`` 将 ``binary`` 左侧填充为 ``size`` 个字节。
如果 ``size`` 小于 ``binary`` 的长度,则结果将被截断为 ``size`` 个字符。``size`` 不能为负数,
并且 ``padbinary`` 必须非空。``size`` 的最大值为 1MiB。
如果 ``size`` 小于 ``binary`` 的长度,
``binary`` 将从右侧截断以适应 ``size``。
md5(binary) -> varbinary
计算“二进制”的 md5 哈希值。
rpad(binary, size, padbinary) -> varbinary
使用 ``padbinary`` 将 ``binary`` 右侧填充至 ``size`` 个字节。
如果 ``size`` 小于 ``binary`` 的长度,则结果将被截断为 ``size`` 个字符。``size`` 不能为负数,
且 ``padbinary`` 必须非空。``size`` 的最大值为 1MiB。
如果 ``size`` 小于 ``binary`` 的长度,
``binary`` 将从右侧截断以适应 ``size``。
sha1(binary) -> varbinary
计算“二进制”的 SHA-1 哈希值。
sha256(binary) -> varbinary
计算“二进制”的 SHA-256 哈希值。
sha512(binary) -> varbinary
计算“二进制”的 SHA-512 哈希值。
spooky_hash_v2_32(binary) -> varbinary
计算“二进制”的 SpookyHashV2 32 位哈希值。
spooky_hash_v2_64(binary) -> varbinary
计算“二进制”的 64 位 SpookyHashV2 哈希值。
to_base64(binary) -> varchar
将“二进制”编码为 base64 字符串表示形式。
to_base64url(binary) -> varchar
使用“URL 安全字母表 <https://www.rfc-editor.org/rfc/rfc4648#section-5>”将“二进制”编码为 base64 字符串表示形式。
to_big_endian_32(integer) -> varbinary
以 32 位 2 的补码大端格式对“整数”进行编码。
to_big_endian_64(bigint) -> varbinary
以 64 位 2 的补码大端格式对“bigint”进行编码。
to_hex(binary) -> varchar
Encodes ``binary`` into a hex string representation.
to_ieee754_32(real) -> varbinary
根据 IEEE 754 单精度浮点格式,以 32 位大端二进制对“real”进行编码。
to_ieee754_64(double) -> varbinary
根据 IEEE 754 双精度浮点格式,以 64 位大端二进制形式对“double”进行编码。
xxhash64(binary) -> varbinary
计算“二进制”的 xxhash64 哈希值。