列存表支持的数据类型
列存表支持的数据类型如表17所示。
表 17 列存表支持的数据类型
XML类型
openGauss支持XML类型,使用示例如下。
openGauss= CREATE TABLE xmltest ( id int, data xml );
openGauss= INSERT INTO xmltest VALUES (1, 'one');
openGauss= INSERT INTO xmltest VALUES (2, 'two');
openGauss= SELECT * FROM xmltest ORDER BY 1;
id | data
----+--------------------
1 | one
2 | two
(2 rows)
openGauss= SELECT xmlconcat('', NULL, '');
xmlconcat
(1 row)
openGauss= SELECT xmlconcat('', NULL, '');
xmlconcat
(1 row)
说明:
- 该功能默认未开启,如需使用,需要重新使用build.sh脚本编译数据库,修改./configure配置参数,在其中加入--with-libxml参数。
- 在执行编译之前,需要先执行yum install -y libxml2-devel,否则会有"configure: error: library 'xml2' (version >= 2.6.23) is required for XML support"的报错。
- 在执行编译之前,需要三方库二进制文件中dependency操作系统环境/libobs/comm/lib加入到系统环境变量LD_LIBRARY_PATH中,否则会报错"libiconv.so不存在"。
账本数据库使用的数据类型
账本数据库使用HASH16数据类型来存储行级hash摘要或表级hash摘要,使用HASH32数据类型来存储全局hash摘要或者历史表校验hash。
表 18 账本数据库HASH类型
HASH16数据类型用来在账本数据库中存储行级或表级hash摘要,在获得长度为16个字符串的十六进制字符串的hash序列后,系统将调用hash16in函数将该序列转换为一个无符号64位整数存储进HASH16类型变量中。示例如下:
十六进制字符串:e697da2eaa3a775b 对应的无符号64位整数:16615989244166043483
十六进制字符串:ffffffffffffffff 对应的无符号64位整数:18446744073709551615
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]