Changeset 8151340 in Klonkt for src/config/database.js
- Timestamp:
- 09/04/2026 12:05:08 PM (4 days ago)
- Branches:
- main
- Children:
- 9946a68
- Parents:
- aa521c3
- File:
-
- 1 edited
-
src/config/database.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/config/database.js
raa521c3 r8151340 21 21 db.pragma('busy_timeout = 5000'); // wait up to 5s for a lock instead of failing immediately 22 22 db.pragma('synchronous = NORMAL'); // safe with WAL (no torn writes); fewer fsyncs = faster writes 23 24 /** 25 * Tijdstempels in EEN spelling (shaer-a937). 26 * 27 * Deze database draagt twee vormen door elkaar: '2026-08-06 09:02:01' van 28 * CURRENT_TIMESTAMP en '2026-08-06T02:08:01.000Z' van toISOString(). SQLite 29 * vergelijkt ze als TEKST, en op positie 10 staat een 'T' (0x54) tegenover een 30 * spatie (0x20) -- dus binnen dezelfde dag wint de ISO-vorm altijd, hoe laat hij 31 * ook is. Een antwoord van 02:08 kwam zo boven een like van 09:02 te staan. 32 * 33 * `NU_ISO` is wat je SCHRIJFT, `isoSql()` is waarmee je VERGELIJKT of SORTEERT. 34 * De twee horen bij elkaar: het eerste zorgt dat er niets nieuws bijkomt, het 35 * tweede dat wat er al staat toch goed op volgorde komt. 36 * 37 * isoSql valt met COALESCE terug op de RAUWE waarde: strftime geeft NULL op iets 38 * dat het niet als tijd herkent, en zonder die terugval zou zo'n rij uit de 39 * sortering vallen -- of erger, als hij ook geSELECTeerd wordt (de cursor in de 40 * gesprekslezing) zou de client een lege stempel terugkrijgen en zijn plek 41 * kwijtraken. Waar zo'n onleesbare waarde dan LANDT is onbepaald: hij wordt als 42 * tekst vergeleken en 'geen datum' staat nu eenmaal boven '2026-...'. Dat is de 43 * juiste ruil -- data die je niet begrijpt bewaar je, je gooit hem niet weg. 44 * 45 * Ze staan HIER en niet in een dienst omdat ze over de opslag gaan: elke plek 46 * die sorteert importeert `db` toch al uit dit bestand. 47 */ 48 export const NU_ISO = "strftime('%Y-%m-%dT%H:%M:%SZ','now')"; 49 export const isoSql = (expr) => `COALESCE(strftime('%Y-%m-%dT%H:%M:%SZ', ${expr}), ${expr})`; 23 50 24 51 export function initializeDatabase() {
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)