collength 列值取决于列的数据类型。
基于整数的数据类型 | 长度(以字节计) |
---|---|
SMALLINT | 2 |
DATE、INTEGER 和 SERIAL | 4 |
INT8 和 SERIAL8 | 10 |
BIGINT 和 BIGSERIAL | 8 |
对于 LVARCHAR 类型的 GBase 8s 列,collength 具有来自数据类型声明的 max 值或 2048(如果没有指定最大值)。
collength = (min_space * 256) + max_size
collength + 65536 = (min_space * 256) + max_size
如前面所述,DATE 列在 collength 列中的值为 4。
(length * 256) + (first_qualifier * 16) + last_qualifier
字段限定符 | 值 | 字段限定符 | 值 |
---|---|---|---|
YEAR | 0 | FRACTION(1) | 11 |
MONTH | 2 | FRACTION(2) | 12 |
DAY | 4 | FRACTION(3) | 13 |
HOUR | 6 | FRACTION(4) | 14 |
MINUTE | 8 | FRACTION(5) | 15 |
SECOND | 10 |
例如:如果 DATETIME YEAR TO MINUTE 列长度为 12(例如:YYYY:DD:MO:HH:MI),first_qualifier 值为 0(用于 YEAR),并且 last_qualifier 值为 8(用于 MINUTE),那么 collength 值为 3080(由 (256 * 12) + (0 * 16) + 8 计算所得)。
(precision * 256) + scale
如果列的数据类型为 BYTE 或 TEXT,那么 collength 保存描述符的长度。