主
- 添加了支持
生成的列 (计算列),允许您在创建表时定义一个列,该表的值将根据另一列的内容自动计算。 生成的列可以是虚拟的(每次访问时动态生成)或存储在数据库中(每次更新相关列时保存)。 生成的列的内容仅在读取模式下可用(仅通过修改参与计算的另一列中的值来进行更改)。 例如:创建表 t1(
一个整数主键,
b 智力,
文本,
d INT 始终生成为 (a*abs(b)) VIRTUAL,
e 文本生成始终为 (substr(c,b,b+1)) 存储
); - 添加了 PRAGMA
可信模式 , 环境SQLITE_DBCONFIG_TRUSTED_SCHEMA 以及程序集选项“-DSQLITE_TRUSTED_SCHEMA”,它允许您控制包含的保护攻击 通过修改数据库中的数据模式。 主动保护限制在触发器、视图、CHECK 和 DEFAULT 语句、索引和生成列中使用 SQL 函数(未标记为 SQLITE_INNOCUOUS)。 除非使用 SQLITE_VTAB_INNOCUOUS 标志显式声明虚拟表,否则还会禁用触发器和视图中虚拟表的使用。 - 实现了为应用程序中定义的 SQL 函数分配属性的能力
SQLITE_INNOCUOUS (无害函数不依赖于外部参数,不能用于执行恶意操作)和SQLITE_DIRECTONLY (只能在SQL查询中直接调用,不能在触发器、视图和数据结构图中使用); - 添加模块
uid 实现处理 UUID 的功能 (RFC-4122); - 添加了 PRAGMA
硬堆限制 和功能sqlite3_hard_heap_limit64() 控制最大堆大小; - 在PRAGMA中
函数列表 添加了每个函数的类型、属性和参数数量的输出; - 到虚拟表 DBSTAT
添加 数据聚合模式; - sqlite3_open_v2() 实现了 SQLITE_OPEN_NOFOLLOW 选项,该选项允许您禁用符号链接的打开;
- 为了论证
PATH ,传递给 JSON 函数,添加了对“#-N”数组表示法的支持; - 在内存分配系统中
后备 实现了对两个独立内存池的支持,每个内存池可用于分配不同大小的块(分离允许您扩展lookaside系统的使用,同时将分配给每个连接的缓冲区大小从120减少到48知识库); - PRAGMA 支持已停止
遗留文件格式 ,它与 VACUUM、生成列和降序索引不兼容(可以通过 sqlite3_db_config() 中的 SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 标志返回旧格式支持)。
来源: opennet.ru