mirror of
https://github.com/fumiama/fumidb.git
synced 2026-06-09 04:30:34 +08:00
finish insert row & find row by pk
This commit is contained in:
21
api/types.md
21
api/types.md
@@ -15,27 +15,34 @@
|
||||
| 5 | double | 直接存储 |
|
||||
|
||||
## 字符串
|
||||
> 字符串为变长的可索引的字节数组,长度最大不超过uint16(65535字节)。
|
||||
> 字符串为变长的可索引的字节数组,长度最大不超过uint16(65535字节)。实际上出于性能考虑,实现时限制长度不超过`2048`字节。
|
||||
|
||||
> 一旦字符串插入表中,其长度就不再可变。如需改变需要删除再添加。
|
||||
### 类型列表
|
||||
| 类型代号 | 类型 | 存储方式 |
|
||||
| --- | --- | --- |
|
||||
| 6 | string | 下一个哈希相同的数据项的指针+uint16长度+该长度的数据(字节数组) |
|
||||
|
||||
## 二进制数据块
|
||||
> 二进制数据块为变长的不参与索引的字节数组,长度最大不超过uint32。
|
||||
> 二进制数据块为变长的不参与索引的字节数组,长度最大不超过uint16(65535字节)。实际上出于性能考虑,实现时限制长度不超过`2048`字节。
|
||||
|
||||
> 一旦二进制数据块插入表中,其长度就不再可变。如需改变需要删除再添加。
|
||||
### 类型列表
|
||||
| 类型代号 | 类型 | 存储方式 |
|
||||
| --- | --- | --- |
|
||||
| 7 | binary | uint32长度+直接存储的数据(字节数组) |
|
||||
| 7 | binary | uint16长度+直接存储的数据(字节数组) |
|
||||
|
||||
## 类型修饰符
|
||||
> 类型修饰符占据类型代号的高2位,通过或运算与基础代号结合
|
||||
|
||||
> 对于可空属性,会在其值前添加一字节,指示其是否为空,如果为空则为 true
|
||||
|
||||
> 对于外键修饰符,将会在表头标明其外键连接到的表头指针
|
||||
|
||||
| 类型代号 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| 0x00 | null | 无修饰:允许重复、可空、非外键 |
|
||||
| 0x40 | unique | 不允许重复 |
|
||||
| 0x80 | nonnull | 非空 |
|
||||
| 0xc0 | foreignkey | 外键 |
|
||||
| 0x10 | unique | 不允许重复 |
|
||||
| 0x20 | nonnull | 非空 |
|
||||
| 0x40 | foreignkey | 外键 |
|
||||
|
||||
特别地,对于外键修饰符,将会在表头标明其外键连接到的表头指针。
|
||||
Reference in New Issue
Block a user