Contents
Vectorization + Parallel Checklist
Objective: guarantee that vectorized execution is not only correct, but actively used in parallel plans where supported.
1. Build and deployment hygiene
- [ ] For each target PG version, run a clean build before install:
make -C dist/src/backend/engine cleanmake -C dist cleanmake -C dist PG_CONFIG=/usr/lib/postgresql/<v>/bin/pg_configsudo make -C dist PG_CONFIG=/usr/lib/postgresql/<v>/bin/pg_config install
- [ ] Restart cluster after install when
shared_preload_librariesincludesstorage_engine. - [ ] Validate no cross-version symbol contamination in installed library.
2. Correctness matrix
- [ ] Run full suite on PG 15, 16, 17, 18, 19.
- [ ] Keep matrix artifacts in
dist/tests/bench/matrix_YYYYMMDD[_tag]/. - [ ] Require
ALL 155 TESTS PASSEDfor each supported version before release.
3. Plan-shape gates (must be explicit)
- [ ] Parallel grouped query with
count/sum/min/maxmust showStorageEngineVectorGroupAggin EXPLAIN. - [ ] The same grouped query must show parallel execution in EXPLAIN (contains
Parallel). - [ ] Parallel grouped
avg(...)must fallback (noStorageEngineVectorGroupAgg). - [ ] PG15 numeric plain aggregate must fallback (no
StorageEngineVectorAgg).
4. Result-equivalence gates
- [ ] For vectorized-supported shapes, enforce
VEC OFF == VEC ON. - [ ] For fallback shapes, enforce
VEC ONresult equals native/fallback result. - [ ] Add no-crash checks (
rc == 0) for all fallback-sensitive shapes.
5. Performance sanity gates (non-flaky)
- [ ] Run
EXPLAIN (ANALYZE, COSTS OFF, TIMING OFF, SUMMARY ON)for a representative parallel grouped shape. - [ ] Parse execution time for vectorized and native plans.
- [ ] Enforce wide catastrophe threshold only (current: vectorized <= 5x native).
- [ ] Keep stricter SLO checks in benchmark pipelines, not in unit/regression suite.
6. Release evidence
- [ ] Add plan excerpts proving vectorized parallel path to release notes.
- [ ] Add fallback excerpts proving safe degradation for unsupported shapes.
- [ ] Link matrix summary file and benchmark artifacts in CHANGELOG entry.