# 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 clean` - `make -C dist clean` - `make -C dist PG_CONFIG=/usr/lib/postgresql//bin/pg_config` - `sudo make -C dist PG_CONFIG=/usr/lib/postgresql//bin/pg_config install` - [ ] Restart cluster after install when `shared_preload_libraries` includes `storage_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 PASSED` for each supported version before release. ## 3. Plan-shape gates (must be explicit) - [ ] Parallel grouped query with `count/sum/min/max` must show `StorageEngineVectorGroupAgg` in EXPLAIN. - [ ] The same grouped query must show parallel execution in EXPLAIN (contains `Parallel`). - [ ] Parallel grouped `avg(...)` must fallback (no `StorageEngineVectorGroupAgg`). - [ ] 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 ON` result 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.