Update JIT tuple deforming code for virtual generated columns
David Rowley <drowley@postgresql.org>
Update JIT tuple deforming code for virtual generated columns The JIT deforming code contains an optimization that determines which columns are guaranteed to exist in the tuple. That's used to allow skipping of reading the tuple's natts when the code only needs to deform attributes that are guaranteed to always exist in all tuples. 83ea6c540 missed updating this code to account for VIRTUAL generated columns. These are stored as NULLs in the tuple, but may be defined as NOT NULL. This could result in the code thinking more columns are guaranteed to exist than actually do. Author: David Rowley <dgrowleyml@gmail.com> Reviewed-by: Chao Li <li.evan.chao@gmail.com> Backpatch-through: 18 Discussion: https://postgr.es/m/1151393.1781734980@sss.pgh.pa.us
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/jit/llvm/llvmjit_deform.c | modified | +24 −12 |
| src/test/regress/expected/generated_virtual.out | modified | +42 −0 |
| src/test/regress/sql/generated_virtual.sql | modified | +21 −0 |
Discussion
- Fix tuple deformation with virtual generated NOT NULL columns 22 messages · 2026-06-04 → 2026-06-19