数值类型
相比于原始的openGauss,dolphin对于数值类型的修改主要为:
- 新增支持可选的修饰符(n),即支持
TINYINT(n)/SMALLINT(n)/BIGINT(n)
的用法,n无实际意义,不影响任何表现。 - 新增
MEDIUMINT(n)
数据类型,是INT4的别名,n无实际作用,不影响任何表现。存储空间为4字节,数据范围为-2,147,483,648 ~ +2,147,483,647
。 - 新增
FIXED[(p[,s])]
数据类型,是NUMERIC类型的别名。用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。未指定精度的情况下,小数点前最大131,072位,小数点后最大16,383位。 - 新增数据类型,是float8的别名。
- 新增
float4/float
支持可选的修饰符(n),即支持float4(n)/float(n)
的用法,当n在 [1,24]之间时,float4(n)/float(n)
代表单精度浮点数;当n在 [25,53]之间时,float4(n)/float(n)
代表双精度浮点数。 - 对于
decimal/dec/fixed/numeric
数据类型,在未指定精度的情况下,默认精度为(10,0)
,即总位数为10,小数位数为0。 - 新增zerofill属性修饰,只是语法上的支持,实际并没有填充零的效果。与UNSIGNED的作用等价。
- 新增cast函数类型转换参数signed/unsigned,其中cast as unsigned将类型转换为uint8,cast as signed将类型转换为int8.
- 新增
float(p,s),double(p,s),real(p,s),double precision(p,s)
的语法,其中float(p,s),real(p,s),double precision(p,s)
大致等价于dec(p,s)
,与dec(p,s)
不同的是,float(p,s),real(p,s),double precision(p,s)
的p和s必须为整数,而double(p,s)
则完全等价于。舍入方式为四舍五入。
表 1 整数类型
示例:
表 2 任意精度型
示例:
表 3 浮点类型
示例: