openGauss数据类型(6)

本文详细介绍了OpenGauss数据库支持的列存表各种数据类型,包括数值、货币、字符、日期时间、XML以及账本数据库特有的HASH16和HASH32类型及其用途。此外,还提到了启用XML类型和使用HASH类型时的配置要求。
摘要由CSDN通过智能技术生成

列存表支持的数据类型

列存表支持的数据类型如表17所示。

表 17 列存表支持的数据类型

类别

数据类型

长度

是否支持

Numeric Types

smallint

2

支持

integer

4

支持

bigint

8

支持

decimal

-1

支持

numeric

-1

支持

real

4

支持

double precision

8

支持

smallserial

2

支持

serial

4

支持

bigserial

8

支持

largeserial

-1

支持

Monetary Types

money

8

支持

Character Types

character varying(n), varchar(n)

-1

支持

character(n), char(n)

n

支持

character、char

1

支持

text

-1

支持

nvarchar2

-1

支持

name

64

不支持

Date/Time Types

timestamp with time zone

8

支持

timestamp without time zone

8

支持

date

4

支持

time without time zone

8

支持

time with time zone

12

支持

interval

16

支持

big object

clob

-1

支持

blob

-1

不支持

other types

不支持

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

以无符号64位整数存储。

8字节

0 ~ +18446744073709551615

HASH32

以包含16个的无符号整型元素数的组存储。

16字节

16个元素的无符号整型数组能够包含的取值范围

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]
  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值