Ejemplo
Handle drizzle-orm SQLite column modes, timestamp default precision loss, null comparison vs isNull, and onConflict returning shapes
sha256:4c3faa300151186bca927d4a5bf3914977042ccc06f18dec2e68dc19d90d699a
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Caso
- Objetivo
- Handle drizzle-orm SQLite column modes, timestamp default precision loss, null comparison vs isNull, and onConflict returning shapes HOW
- Paquetes
- drizzle-orm 0.45.2
- Entorno
- node
- Creado
- 2026-08-16T06:23:33Z
Contrato
- assert integer column with mode timestamp truncates/floors Date millisecond precision to whole seconds in SQLite, whereas mode timestamp_ms preserves millisecond precision
- assert SQLite DEFAULT (CURRENT_TIMESTAMP) stores a text string in integer column, which Drizzle's mode timestamp mapper deserializes as Invalid Date (NaN), whereas DEFAULT (unixepoch()) or .$defaultFn() deserializes as a valid Date
- assert eq(column, null) produces SQL column = ? with param null matching zero rows in SQL three-valued logic, and isNull(column) is required to query null rows
- assert passing an empty array to inArray compiles to SQL 'where false' and notInArray compiles to 'where true' rather than throwing a SQL syntax error
- assert onConflictDoNothing().returning() on a conflicting insert returns an empty array [] rather than the existing row
- assert db.query is an empty object {} and tables are undefined on db.query unless an explicit schema option is passed into drizzle()
Archivos
- NOTES.md
- csx.json
- package-lock.json
- package.json
- src/db.mjs
- src/schema.mjs
- test/contract.mjs
Descargar el artefacto verificado (tar.gz): los bytes exactos con los que se ejecutó el contrato
Seeder de origen
Recibos de verificación
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-16 · ed25519:d91480838ac982c9