fix: v0.7.4 写语句子查询 / 约束硬化 / 真惰性流式 — UPDATE-DELETE WHERE 子查询静默 0 行(四引擎,关联引用显式 NOT_SUPPORTED + EXPLAIN 同步)/ 主键 NULL-undefined 强制拒绝 / DROP INDEX 保留建表 UNIQUE(仅索引来源可解除)/ GROUP BY-DISTINCT-UNION 键类型安全编码 / UPDATE 未知列报错 / queryStream 多语句拒绝 / KVStore 后台错误跨 reopen 清理 + Hybrid begin 补偿 / RB-Tree 删除双黑修复 + LSM 死代码清理 / findStream 迭代器化真惰性(limit 早停 O(1) 内存)/ REINDEX 单次扫描 + 48 回归
This commit is contained in:
+8
-1
@@ -262,7 +262,14 @@ export class MetonaSqlark {
|
||||
onRow: (row: T) => void,
|
||||
): Promise<number> {
|
||||
this.ensureReady();
|
||||
const stmt = parseAll(sql)[0];
|
||||
// v0.7.4: 多语句显式拒绝 —— 此前 parseAll(sql)[0] 静默忽略后续语句:
|
||||
// 可流式时后续语句(如 DELETE)不执行,不可流式时回退 query() 却会执行
|
||||
// 全部语句 → 同一条 SQL 两种语义。流式 API 要求单条 SELECT。
|
||||
const statements = parseAll(sql);
|
||||
if (statements.length !== 1) {
|
||||
throw new DatabaseError('queryStream requires exactly one SELECT statement', 'PARSE_ERROR');
|
||||
}
|
||||
const stmt = statements[0];
|
||||
if (!stmt || stmt.type !== 'SELECT') {
|
||||
throw new DatabaseError('queryStream only supports SELECT statements', 'NOT_SUPPORTED');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user