账本数据库使用的数据类型
账本数据库使用HASH16数据类型来存储行级hash摘要或表级hash摘要,使用HASH32数据类型来存储全局hash摘要或者历史表校验hash。
名称 |
描述 |
存储空间 |
范围 |
---|---|---|---|
HASH16 |
以无符号64位整数存储。 |
8字节 |
0 ~ +18446744073709551615 |
HASH32 |
以包含16个无符号整型元素数的组存储。 |
16字节 |
16个元素的无符号整型数组能够包含的取值范围。 |
HASH16数据类型用来在账本数据库中存储行级或表级hash摘要。在获得长度为16个字符的十六进制字符串的hash序列后,系统将调用hash16in函数将该序列转换为一个无符号64位整数存储进HASH16类型变量中。示例如下:
十六进制字符串:e697da2eaa3a775b 对应的无符号64位整数:16615989244166043483 十六进制字符串:ffffffffffffffff 对应的无符号64位整数:18446744073709551615
示例:
gaussdb=# CREATE TABLE hash16test(id int, data hash16); gaussdb=# INSERT INTO hash16test VALUES (1, 'e697da2eaa3a775b'); gaussdb=# SELECT * FROM hash16test; id | data ----+---------------------------------- 1 | e697da2eaa3a775b (1 row) gaussdb=# DROP TABLE hash16test;
HASH32数据类型用来在账本数据库中存储全局hash摘要或者历史表校验hash。在获得长度为32个字符的十六进制字符串的hash序列后,系统将调用hash32in函数将该序列转换到一个包含16个无符号整型元素的数组中。示例如下:
十六进制字符串:685847ed1fe38e18f6b0e2b18c00edee 对应的HASH32数组:[104,88,71,237,31,227,142,24,246,176,226,177,140,0,237,238]
示例:
gaussdb=# CREATE TABLE hash32test(id int, data hash32); gaussdb=# INSERT INTO hash32test VALUES (1, '685847ed1fe38e18f6b0e2b18c00edee'); gaussdb=# SELECT * FROM hash32test; id | data ----+---------------------------------- 1 | 685847ed1fe38e18f6b0e2b18c00edee (1 row) gaussdb=# DROP TABLE hash32test;