feat(job-array-single-wal-record): wire array expansion into live apply

Adds case WAL_JOB_ARRAY_SUBMIT to apply_committed_entry() (the live
apply pump / boot replay dispatch seam): calls restore_job_array()
(task 3.1) instead of restore_job(), and on success fires
HOOK_DETAIL_JOB_NEW exactly once carrying every newly created
element in restore_job_array()'s own out_new_jobs list -- never once
per element. No hook fires on an idempotent no-op (-EEXIST) or any
genuine construction failure, honestly propagating task 3.1's
documented bulk-insert-phase residual gap rather than papering over
it. apply_wal_entry() (standby catch-up) is untouched -- task 3.3.

Task 3.2 of job-array-single-wal-record.
This commit is contained in:
Rongsong Shen 2026-07-14 14:46:03 +00:00
parent 7c755dc4d7
commit 0c4573b54a
3 changed files with 281 additions and 1 deletions

View file

@ -60,7 +60,7 @@
- _Boundary: Array Apply Expansion_
- _Depends: 1.3_
- [ ] 3.2 Wire array expansion into live apply
- [x] 3.2 Wire array expansion into live apply
- Call 3.1's primitive from the live-apply/boot-replay dispatch path for the new WAL record type
- After a successful expansion, fire the existing job-created notification exactly once, carrying every newly created element in one list — never once per element
- Observable: applying one committed array record produces exactly one notification event carrying all N elements