数值类型

    相比于原始的openGauss,dolphin对于数值类型的修改主要为:

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

    示例: