generateSwitchBranchStatements()
function generateSwitchBranchStatements(adapter, branchId): string[];
Defined in: packages/rxdb-adapter-sqlite-core/src/version/switch_branch.ts:43
生成切换分支要执行的 SQL 语句序列,按执行顺序返回。
Parameters
| Parameter | Type |
|---|---|
adapter | RxDBAdapterSqliteBase |
branchId | string |
Returns
string[]
Remarks
分成数组而不是拼成一整段,是因为结果集的收集按语句边界走:oo1 的 db.exec()
对多语句 SQL 只收第一条「有结果列」的语句的行(evalFirstResult)。切换分支拆成
「熄灭 + 点亮」两条 RETURNING 之后,拼在一起交给一次 execute(),点亮那条的行
就再也进不了 transaction_sqlite_result——目标分支的缓存实体停在 activated = false,
而 SQL 本身执行得好好的,没有任何报错。
所以调用方要么逐条 execute()(switch_branch,它要那些行来派发事件),
要么拼起来一次性执行(只关心写入副作用的路径,如 withTriggersDisabled)。