Turns what PHP enumerated into the ordered unit list.
Kept in JS, and pure, so the ordering rules are gate-testable without an
interpreter. The order is DbUpdateController::triggerBatch()'s, not an
improvement on it:
every allowed hook_update_N in dependency order;
only if post-updates are pending, a full cache flush, then each
hook_post_update_NAME in the registry's own sorted order;
a final full cache flush, unconditionally -- batchFinished() flushes even
when there was nothing to do;
maint_off.
Each "full cache flush" expands to UPDB_FLUSH_STEPS, eleven bounded units, when
flushSplit is true (the default). With flushSplit: false it is one unit that
calls drupal_flush_all_caches() -- which cannot fit a free-plan invocation,
measured at 282.9 ms in wasm, so that setting requires allowUnbounded as well
and exists for paid plans only.
Turns what PHP enumerated into the ordered unit list.
Kept in JS, and pure, so the ordering rules are gate-testable without an interpreter. The order is
DbUpdateController::triggerBatch()'s, not an improvement on it:hook_update_Nin dependency order;hook_post_update_NAMEin the registry's own sorted order;batchFinished()flushes even when there was nothing to do;maint_off.Each "full cache flush" expands to
UPDB_FLUSH_STEPS, eleven bounded units, whenflushSplitis true (the default). WithflushSplit: falseit is one unit that callsdrupal_flush_all_caches()-- which cannot fit a free-plan invocation, measured at 282.9 ms in wasm, so that setting requiresallowUnboundedas well and exists for paid plans only.